お久しぶりです。遠藤です。
興味本位でChatGPT Plusをしばらく使っていたのですが、毎月20ドル(約3000円)かかるし外部アプリでの利用はほとんどできないし…ということで、APIを契約してみることにしました。
APIは先払いで、10ドル分購入する、といった使い方ができるので使いすぎて破産する、といった心配はありません。今回は30ドル分購入して、自身の事務所ホームページ(WordPress)にチャットBotを設置してみることにしました。
チャット用プラグインを入れよう
チャット用プラグインは、AI Engineを選びました。
現時点でChatGPT APIを使えるチャットBotプラグインは限られていて、有名どころだと、「AI Engine」か「AI Power」のようです。両方ともに無料のプラグインを提供しているので、インストールして試しに使ってみると良いかもしれません。
ブラウザはGoogle Chromeがオススメです(翻訳)
AI EngineならびにAI Engineにまつわる解説ページ、ブログ、YouTube等は、基本的に英語で書かれたものが多く、日本語解説はほとんどありません。
Google Chromeの翻訳機能が便利なので、多用しましょう。
また、DeepL翻訳のプラグインを併せてインストールしておくと便利です。
DeepL翻訳は、画面全体を翻訳する場合は有料課金となりますが、一部を翻訳する場合は無料、しかも精度の高い翻訳が可能です。
また、AI Engineでは、Discordにてかなり活発なやりとりが行われています(2023/09/16現在)。
Discordをブラウザ(Chrome)で開くと、ブラウザ上で右クリックが機能せず、Googleの翻訳がうまく機能しなくなります。そこで「Google Chrome™の右クリックを有効にする」という、そのままの名前のプラグインを入れましょう。
右クリックが効かなくなったところで、このプラグインをONにすると、右クリックが作動、翻訳ができるようになります。
AI Engineの設定を行う
さて、それではGoogle翻訳で日本語化されたAI Engineを見ていきましょう。
まず、設定画面でChatGPTのAPIキーを入れましょう。APIキーはOpenAIのサイトで発行します。(発行手順は省略します)
左下に「松ぼっくり」とありますが、これは「Pinecone」(パインコーン)の訳です。私はこれを「ピンスワン」と発音し、人に笑われた過去があります。AI Engineの場合、この機能を使う場合は有料版にアップグレードする必要があります。
さて「Pinecone」は、embedding(=埋め込み)を行うために利用する、ベクトル型のデータベースです。Pineconeを使うためには、Pineconeにアカウントを作り、APIをゲットする必要があります。
Pineconeがちょっとクセモノです
Pineconeはアカウントを作成後、プロジェクトがすでに作成された状態で立ち上がります。右上に「Chatbot Application(Free Tier)」と表示されているはずなので、それをクリック。
ポップアップ表示されますので、「View all Projects」をクリックしましょう。
表示された「Chatbot Application」はEnvironment(環境)が「gcp-starter」ですが、この環境だとAIEngineが動かないので、このプロジェクトを削除する必要があります。
プロジェクトの「…」をクリックし、「Delete」をクリックします。
「Chatbot Application」の文字を入力し、プロジェクトを削除します。
新しいプロジェクトを作ります。「Create a Project」をクリックしましょう。
ここまできたらあと少し。「Choose an Environment」で、Freeプランを選択します。「gcp-starter」以外であればなんでもOKです。選んだら右下にある「Create Project」をクリック。プロジェクト作成を完了させましょう。
しばらくは「作成中だよ!」な画面が表示されますが、気にしなくて構いません。
左バーより、「API Keys」をクリック。表示されたAPIをAIEngineの設定画面から入力してあげましょう。そうすると使い始めることができます。
Pineconeの設定がおわったら…
Pineconeに用語を詰め込むことで、ChatGPT上に存在しない情報を提供することが可能になります。たとえば「事務所の電話番号」「遠藤の好きな食べ物」「建設業許可の標準処理期間」などの情報を入れてあげれば、その内容を考慮した上で回答してくれるようになります。
Pinecone上に作成するINDEX(索引)は、AIEngine上から作成します。「embedding」タブを開くと、右上に「Index」「Setting」タブが表示されていますので、「Setting」タブから新しいINDEXを作成すると良いでしょう。
このデータベースがベクトル型であることには意味があります。例として、私が「学者辞典」というサイトを作成することにしましょう。「カール・ポランニー」「カール・マルクス」「マイケル・ポランニー」の3人の情報を「embedding(埋め込み)」すると、Chat上で「カール」について尋ねると、「カール・ポランニー」「カール・マルクス」に重みが置かれるようになります。
「ハンガリー生まれの社会学者」と投げ込めば、より内容に近しいものとしてカール・ポランニーとマイケル・ポランニーに高いScoreが与えられます。(どちらも正解なので、近しく高いScoreとなる) これがベクトル型のデータベースです。「暗黙知を生み出した人」と投げ込んだ場合、マイケル・ポランニーに重み付けが行われます。
さて、このベクトル型データベースPineconeに用語を登録する作業は、AI Engineですべて行います。詳細・作業手順は公式サイトにてご確認ください。
重み付けの要らない情報(かつ、常にBotに把握してもらいたい情報)については、チャットBotの設定タブに、最低限必要な情報をダイレクトに打ち込むのもありです。間違って答えられると困るような内容は、ここに入力しておくと吉かと思います。
また、チャットによっては一つの回答が長文になる可能性も。そうすると読みづらいだけでなく、トークンを消費し費用が増大しがちになりますので、回答文字数上限も指示しておくと良いでしょう。
AIチャットBot、けっこう身近になってきてマス
これまでチャットボットなんて大企業のホームページでしかお見かけしませんでしたし、問い合わせに適した内容が返ってくることなんてマレな使いづらいサービスでした。
ところがChatGPTの普及により、我々のようなアーリーアダプター層でも手が届くようになってきたところです。個人サイトにチャットBotが搭載できるなんて、ね。
まだまだ素人には手を出しにくい分野ですが、今後一気に普及しそうな気がします。問題はどうやってマネタイズにつなげていくか、ですね。
今日はそんなころで!