生成AI(ChatGPT等)のAPIをPHPで利用
■ AIバブルWebチャットシステム(事前複数ナレッジファイル・アップロードタイプ、スマホ対応)
自サーバーで「AI Webチャット」運用
当ページでは、最新の生成AI技術であるChatGPT等を活用したWebチャットシステムについて紹介します。
リアルタイムでの質問応答、音声読み上げ機能、直感的なインターフェイスを備え、あらゆる疑問に迅速に対応します。
従来のFAQシステムや検索エンジンとは異なり、当システムはユーザーの質問の意図を理解し、より人間らしい回答をします。
あらかじめ複数のナレッジベースファイルをアップロードし、ファイルを選んでチャットすることができます。
ご自身が所有する分野別のファイルを使用することで、従業員教育、顧客対応、特定の商品対応チャット、研究支援用などに幅広く活用できます。
システムの特徴
- ChatGPTなどの自然言語処理技術を、API機能を利用することにより自サーバーから活用できます。
- ユーザーが自然な言葉で質問を投げかけ、AIがその意図を理解し、適切な回答を生成します。
- 生成AIの適用モデルを変更することも可能です。
- スクリプトには、PHP、JavaScriptを用いています。
- リアルタイムでのAIとのメッセージのやり取りを行います。
- 音声読み上げによりアクセシビリティを向上することができます。
- 複数のファイルをAIのナレッジベースに追加でき、特定の分野における専門的な質問に対しても、AIが正確な回答を提供できるようになります。
導入方法
導入に必要な手順は以下の通りです:
- 必要なファイル(HTML、CSS、JavaScript、PHP)をダウンロードしてください。
- ご自身のウェブサーバーにファイルをアップロードしてください。
- OpenAI(or その他)から取得したAPIキーをconfig.phpファイルに設定してください。
- 以下のHTMLコードをご自身のチャットシステムを含むページに挿入してください。
当ページのソースコード内下部(画面上で右クリック->「ページソースの表示」で見えます)の
<!--- Chat用コードは、ここから --!>
~
<!-- ここまで --->
- ナレッジベースファイルを、サーバー上の所定場所にFTPでアップロードしてください。
使い方
- 特定のテーマや背景知識に基づいた質問に対応するためには、それらに関するテキストファイルをアップロードしてAIのナレッジベースを拡張しておいてください。アップロードは任意です。
ファイルをアップロードしない場合、一般的な情報を基に回答されます。
アップロードするファイルは、文字コードUTF-8の.txt形式としてください。英語ファイル名としてください。ファイル内の文字数は、3~4万字程度以内としてください。ファイルがこれらの条件を満たさないと正しく処理されません。 - チャットを利用する場合、目的とするファイルをプルダウンメニューから選んでください。ファイルを選択しない場合、一般的な情報から回答されます。
- テキストボックスに質問や指示(プロンプト)を入力してください。
- 送信ボタンをクリックすると、AIからの回答が表示され、音声で読み上げられます。
「音声停止」ボタンを押すと、音声再生がストップします。(AIからの応答には時間がかかることがあります。送信ボタンを連打することなく、そのまましばらくお待ちください。)
読み上げをしたくない場合は「音声読み上げを有効にする」のチェックを外してください。 - 「チャットを初期化」すると、テキストボックス内容などがクリアーされます。
- チャットウインドウは、ウインドウ右上の「×」をクリックすると閉じることができます。
システム構成例
以下のディレクトリ構成を参考にしてください:
- ルートディレクトリ: /
- apikey/config.php: OpenAIで取得したAPIキーをセット
- html/select_chat.html: チャットフォームを含むメインページ(このページ)
- html/select_chat.php: AIチャット機能を処理するバックエンドスクリプト
採用するGPTモデルや、応答トークン数などをセット
(サンプルチャットは、「model: gpt-3.5-turbo」「max_tokens: 256」をセット) - html/select_loadfile.php: ナレッジベースファイルの呼び出し用スクリプト
- html/select_reset.php: チャット内容クリア―用スクリプト
- html/css/select_styles.css: ページのスタイリングを定義するCSSファイル
- html/js/select_script.js: JavaScriptのインタラクションを処理するファイル
- knowledge/: ナレッジベースファイルをアップロード(あらかじめサーバー上にディレクトリを作成してください)
⇒ファイル一式のZIPファイルをダウンロードする(解凍してご自由に使用してください)
設定内容及びカスタマイズ
- 1. apikey/config.php
- ファイル内に、OpenAIから取得したAPIキーをセットしてください。apikey/はウェブからはアクセスできない場所としてください。
define('OPENAI_API_KEY', 'あなたのAPIキー'); - 2. html/select_chat.html
- ウェブベースAIチャットシステムのホーム画面です。お好きにカスタマイズしてください。
- 3. html/select_chat.php
- AIチャット機能を処理するバックエンドスクリプトです。
$data = [
'model' => 'gpt-3.5-turbo',
'max_tokens' => 400, // AIより戻される上限トークン数を設定
'messages' => [
['role' => 'system', 'content' => 'You are a helpful assistant.'],
['role' => 'user', 'content' => $sanitizedContent . " " . $userPrompt],
],
];
この箇所で設定値の変更が可能です。modelを「gtp-4」にしたり、トークン数を変更することなどができます。
詳しくは、ChatGPTのマニュアルをご参照ください。 - 4. html/css/select_loadfile.php
- ナレッジベースファイルの呼び出し用スクリプト。通常、修正の必要はありません。
- 4. html/css/select_reset.php
- チャット内容クリア―用スクリプト。通常、修正の必要はありません。
- 5. html/css/select_styles.css
- ページのスタイリングを定義するCSSファイルです。お好きにカスタマイズしてください。
- 6. html/js/select_script.js
- JavaScriptのインタラクションを処理するファイルです。通常、修正の必要はありません。
詳細な設定やカスタマイズ方法については、各ファイルのコメントやChatGPTのドキュメントを参照してください。
ナレッジベースサンプルファイル(AIに関する情報)
文字コードutf-8のテスト用ナレッジベースファイルです。サーバー上の knowledge/ ディレクトリ上にアップロードしてご利用ください。動作確認後は削除してください。
この文章内に書かれている内容について質問をしてみてください。例)「AIの医療分野への応用について教えてください」「機械学習について知りたい」「AIの将来性はどうですか?」「ファイル内容を簡単にまとめてください」等
※免責事項
- 当サイトから提供されるファイルの利用に際しては、自己の責任において行ってください。
- 提供されるファイルの内容や使用方法に関して、当サイトは一切の責任を負いかねます。
- 提供されるファイルが正確・安全であることや特定の目的に適していることを保証するものではありません。
- ファイルの利用に関する全てのリスクは、ユーザー自身が負うものとします。
- ファイルの利用によって生じたいかなる損害や問題に対しても、当サイトは責任を負いかねます。
- ファイルの利用にあたっては、ユーザー自身が適切な注意と判断を行い、必要に応じて専門家に相談することをお勧めします。
- AIの回答にはハルシネーション(AIが現実とは異なる情報を提供する)といわれる現象がありますことをご理解の上、利用してください。