Web検索の利用
このチャプターのゴール
- Web検索を利用したRAGの構築方法が理解できている
データソース(Web検索)の利用
本チャプターでは、Web検索結果をデータソースとしてRAGを構築する方法について見ていきます。
前チャプターで解説した「ナレッジデータストア」は、「専門知識を蓄積する情報のバケツ」と表現しました。
つまり、情報を入れておく「静的」なバケツです。チューニング済みのうまく整理されたデータを入れておけば、非常に精度の高いRAGの仕組みを構築可能です。一方で、古いデータは定期的にアップデートしなければいけなかったり、データを二重管理しなければいけないデメリットがあります。
一方で、会話の度にWeb検索を行い、リアルタイムに情報を取得できれば、上記の課題は解決します。それが本チャプターでの「Web検索」の利用です。miiboでは、Web検索を行う先を「データソース」と呼びます。
利用方法
「会話の設定」 -> 「高度な会話の設定」から、「Web検索用のデータソース」を開きます。
https://miibo.dev/admin/dataSources
ここから「データソースの追加」を行うことができます。
利用可能なAPI
Googleの提供する「Programable Search Engine(プログラム可能な検索エンジン)」を利用できます。
https://programmablesearchengine.google.com/intl/ja_jp/about/
※ 「Google Custom Search」
Google Custom Search
Googleの検索結果をデータソースに利用することができます。内部の処理としては、Google Custom Search APIを利用し、Web全体の検索、もしくは特定のサイト内の検索の結果を取得し、プロンプトに挿入します。具体的な設定方法については後述します。
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. miiboでデータソースを設定する
検索IDとAPIキーを取得できたらmiiboのコンソールに戻ります。
「高度な設定」 -> 「データソース」のページに移動しましょう。
https://miibo.dev/admin/dataSources
「データソースを追加」をクリックします。

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

エージェント設定画面の「AIによる応答の設定」の画面に移動します。
上記が、データソースのラベルを入力する項目です。ここに、先程作成したデータソースのラベルを入力して保存しましょう。
Web検索時に本文を解析し精度を高める
「Web検索時に本文を解析し精度を高める」を✅すると、より精度が向上します。
チェックをしない場合、Web検索結果のタイトルとスニペットと呼ばれる領域がプロンプトに挿入されます。下記のような検索結果の、タイトルとその下に表示されている短文がプロンプトに挿入されるイメージです。
チェックをすると、上位の検索結果のページの本文を取得し、プロンプトに含めるようになります。それにより、より具体な情報を取得が可能になります。
※ページの解析を行う分、応答の速度が著しく低下することに注意が必要です。
広範囲なWeb検索を行う場合、参考にしたURLの表示に✅を付け、会話の中で引用元が明らかになるように設定を行いましょう。
プロンプトで下記の指示を書くことも有効です。
応答の参考にした前提データにURLが含まれる場合は、下記のフォーマットで出力を行ってください。
URL: <参考にした情報のURL>
:::
会話のテスト
AIに質問を投げかけてみましょう。検索エンジンに設定したスコープで引っかかるであろう情報を聞いてみましょう。
この例では、今放送中の大河ドラマを答えてくれました!
ウェブ検索を裏で行い、検索結果を加味した応答をAIがしてくれています。
以上の方法で、ウェブサイトの情報を加味してAIに応答をさせることができました。このアプローチを採ることにより、言語モデルの学習データが古いことによる課題を緩和させることができます。
上記の例では、Web全体の検索結果を反映させていますが、カスタム検索で特定のWebサイトに範囲を絞れば、よりそのサイトの領域について詳しい会話をさせることができます。
※【RAG構築】データソース(Web検索)の利用特定のWebサイトに絞る場合は、Google Custom Searchでうまく検索をかけられるか予めご確認することをおすすめします。サイトによっては、うまく検索でサイト内のコンテンツを引っ張れない可能性があります。
Updated 9 months ago