Chapter 13

Webサイトの情報をデータソースとして扱う

maKunugi
maKunugi
2023.02.19に更新

ここまでのおさらい

ここまでのChapterでは、セリフを手動で追加することで、チャットボットの応答を補填する方法について説明しました。ただ補填するだけでなく、その内容がAIの応答生成時に利用するプロンプトにも影響を与えることも紹介しました。また、シナリオ対話とAIの応答を組み合わせる方法について紹介してきました。

今回取り上げるのは、セリフを追加せず、AIの応答生成にバイアスを掛ける方法の紹介です。

ChatGPT(GPT-3.5)の課題の確認

ここまでのChapterでも解説をしたとおり、GPT-3.5を始めとした大規模言語モデルの課題は、「学習をした年代のデータに回答の内容が偏る」という点です。例えば、下記はChatGPTに今放送中の大河ドラマについて質問をした様子です。

ChatGPTは2021年までのWeb上の情報でトレーニングされています。わからないことを正しくわからないと認識していることは素晴らしいことですが、この例のように、時事ネタに対応することはできません。

「わからない」と正直に答えられているときはまだ良いですが、この課題により、しばしば誤った(古い)情報を回答してしまうこともあります。

また、専門領域の応答に関しては、「間違ったことを、さも合っているかのように話す」ことが課題として指摘されることが多くあります。

meboで作成したAIに今放送中の大河ドラマを聞いたら、下記のような答えが返ってきてしまいました。

データソース機能を利用する

そこで、Web上の最新の情報をAIに考慮させることによって、AIの応答をフレッシュな状態かつ正確な情報にするといったアプローチを行います。これは、meboの「データソース」という機能を用いて実現します。

AIが応答を考える際に、特定のWebサイトの情報を与えておき、参考にさせることができます。

データソース機能とは?

特定の「情報源」を設定します。ユーザーからAIに対して発話がある度に、データソースに対して検索を行い、マッチする結果があれば取得をします。取得した情報を応答を生成する際のプロンプトに挿入し、AIの応答にバイアスをかけます。

meboでは、現在データソースに下記を指定できます。

  1. Google Custom Search
  2. 独自API

Googleの検索結果をデータソースに利用することができます。内部の処理としては、Google Custom Search APIを利用し、Web全体の検索、もしくは特定のサイト内の検索の結果を取得し、プロンプトに挿入します。具体的な設定方法については後述します。

2. 独自API

独自のAPIをデータソースに指定できます。独自のAPIを指定することで、様々なデータをデータソースとして利用することができるようになります。例えば、自社のQ&Aデータを検索できるAPIを作成し、データソースとして連携すると、自社のQ&Aデータを活用することができます。

本書では、APIの構築方法までは詳しく説明しません。設定が可能なAPIの仕様は下記のドキュメントをご参照ください。
https://chill-shoemaker-341.notion.site/f3fa8f10d30c448685fa939260bc709a

今回はGoogle Custom Searchを利用した方法を紹介していきます。

Google Custom Searchの利用準備をする

下記から検索エンジンを作成していきます。
https://programmablesearchengine.google.com/controlpanel/all

右上の「追加」から作成をしていきます。

特定のWebサイト内から検索をしたい場合は、「特定のサイトまたはページを検索」を選択しましょう。今回はウェブサイト全体を検索ターゲットとして進めてみます。

検索エンジンが作成されました。次に「カスタマイズ」をクリックします。

ここに表示される、「検索ID」は後ほど利用します。

次にGCP上でGoogle Custom Search APIを有効化し、APIキーを取得します。APIキーの取得の一連の流れは、下記のサイトで非常にわかりやすく解説されています。こちらのサイトの手順で、Custom Serach APIを利用するためのAPIキーを取得してください。

(外部のサイト)
https://plus-pm.jp/blog/search-rank-check-use-google-custom-search-api/

6. meboでデータソースを設定する

検索IDとAPIキーを取得できたらmeboのコンソールに戻ります。
「高度な設定」 -> 「データソース」のページに移動しましょう。
https://mebo-admin.work/admin/dataSources

「データソースを追加」をクリックします。

「利用するAPI」に「Google Custom Search」を指定し、任意の名前、ラベルを設定しましょう。そして、先程控えておいたAPIキーと検索IDをセットします。
ヘッダーやパラメータはスキップし、「登録する」を押しましょう。

エージェント設定画面のAIの応答の設定に戻ります。GPT-3.5が選択されていると、データソースを設定する項目が表示されています。ここに、先程作成したデータソースのラベルを入力して保存しましょう。

会話のテスト

冒頭の質問と同じ発話を投げかけてみましょう。

今放送中の大河ドラマを答えてくれました!
ウェブ検索を裏で行い、検索結果を加味した応答をGPT-3.5がしてくれています。

まとめ

以上の方法で、ウェブサイトの情報を加味してAIに応答をさせることができました。このアプローチを採ることにより、言語モデルの学習データが古いことによる課題を緩和させることができます。

上記の例では、Web全体の検索結果を反映させていますが、カスタム検索で特定のWebサイトに範囲を絞れば、よりそのサイトの領域について詳しい会話をさせることができます。