生成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用コードは、ここから -->
~
<!-- ここまで --->
使い方
- 特定のテーマや背景知識に基づいた質問に対応するためには、それらに関するテキストファイルをアップロードしてAIの知識ベースを拡張してください。アップロードは任意です。
ファイルをアップロードしない場合、一般的な情報を基に回答されます。
アップロードするファイルは、文字コードUTF-8の.txt形式の英語ファイル名としてください。日本語ファイル名や、あまり大きなファイル(3~4万字程度以上)は利用できません。 - 一度ファイルをアップロードすると、その内容がセッション中保存され、以後そのファイル内容が参照されます。
新しいファイルを使用したい場合は、「チャットを初期化」してからアップロードしてください。 - テキストボックスに質問や指示(プロンプト)を入力してください。
- 送信ボタンをクリックすると、AIからの回答が表示され、音声で読み上げられます。
「音声停止」ボタンを押すと、音声再生がストップします。(AIからの応答には時間がかかることがあります。送信ボタンを連打することなく、そのまましばらくお待ちください。)
読み上げをしたくない場合は「音声読み上げを有効にする」のチェックを外してください。 - チャットウインドウは、ウインドウ右上の「×」をクリックすると閉じることができます。
システム構成例
以下のディレクトリ構成を参考にしてください:
- ルートディレクトリ: /
- apikey/config.php: OpenAIで取得したAPIキーをセット
- html/bubble_chat.html: チャットフォームを含むメインページ(このページ)
- html/bubble_chat.php: AIチャット機能を処理するバックエンドスクリプト
採用するGPTモデルや、応答トークン数などをセット
(サンプルチャットは、「model: gpt-3.5-turbo」「max_tokens: 256」をセット) - html/bubble_session_reset.php: セッション情報クリア―用スクリプト
- html/css/bubble_style.css: ページのスタイリングを定義するCSSファイル
- html/js/bubble_script.js: JavaScriptのインタラクションを処理するファイル
⇒ファイル一式のZIPファイルをダウンロードする(解凍してご自由に使用してください)
設定内容及びカスタマイズ
- 1. apikey/config.php
- ファイル内に、OpenAIから取得したAPIキーをセットしてください。apikey/はウェブからはアクセスできない場所としてください。
define('OPENAI_API_KEY', 'あなたのAPIキー'); - 2. html/bubble_chat.html
- ウェブベースAIチャットシステムのホーム画面です。お好きにカスタマイズしてください。
- 3. html/bubble_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/bubble_session_reset.php
- セッション情報クリア―用スクリプト。通常、修正の必要はありません。
- 5. html/css/bubble_style.css
- ページのスタイリングを定義するCSSファイルです。お好きにカスタマイズしてください。
- 6. html/js/bubble_script.js
- JavaScriptのインタラクションを処理するファイルです。通常、修正の必要はありません。
詳細な設定やカスタマイズ方法については、各ファイルのコメントやChatGPTのドキュメントを参照してください。
知識ベースサンプルファイル(AIに関する情報)
文字コードutf-8で以下の内容のファイルを作成して、ファイルアップロードに利用してください。
この文章内に書かれている内容について質問をしてみてください。例)「AIの医療分野への応用について教えてください」「機械学習について知りたい」「AIの将来性はどうですか?」「ファイル内容を簡単にまとめてください」等
※免責事項
- 当サイトから提供されるファイルの利用に際しては、自己の責任において行ってください。
- 提供されるファイルの内容や使用方法に関して、当サイトは一切の責任を負いかねます。
- 提供されるファイルが正確・安全であることや特定の目的に適していることを保証するものではありません。
- ファイルの利用に関する全てのリスクは、ユーザー自身が負うものとします。
- ファイルの利用によって生じたいかなる損害や問題に対しても、当サイトは責任を負いかねます。
- ファイルの利用にあたっては、ユーザー自身が適切な注意と判断を行い、必要に応じて専門家に相談することをお勧めします。
- AIの回答にはハルシネーション(AIが現実とは異なる情報を提供する)といわれる現象がありますことをご理解の上、利用してください。