『Google Vertex AI Search&Conversationを使用してRAGチャットボットを構築する』

『Google Vertex AIを活用したRAGチャットボット構築』

ソース: 著者図

Googleは最近、彼らの管理されたRAG(取得強化生成器)サービス、Vertex AI Search & ConversationをGA(一般提供)にリリースしました。このサービスは、以前Google Enterprise Searchとして知られており、既に繁栄しているLLM(大規模言語モデル)チャットボット市場にさらなる競争をもたらします。

本記事では、LLMパワードチャットボットの構築に関するRAGフレームワークについてのいくつかの知識を持っていることを前提とします。以下の図は、LangchainからのRAGの良い紹介を提供します。

ソース: https://python.langchain.com/docs/use_cases/question_answering/

この記事では、Google Vertex AI Search & Conversationを使用してLLMチャットボットを設定することに主眼を置いています(この記事の残りでは、Vertex AI Searchを使用します)。

ソリューションダイアグラム

ソース: 著者図

Datastore

Vertex AI Searchは現在、html、pdf、およびcsv形式のソースデータをサポートしています。

ソース: https://cloud.google.com/generative-ai-app-builder/docs/agent-data-store

Vertex AI Searchは現在、html、pdf、およびcsv形式のソースデータをサポートしています。ソースデータはGoogleの検索インデックスから収集されます(Google検索で使用される同じインデックスです)。これは、ウェブサイト情報を抽出するための別個のスクレイピングメカニズムが必要な他のプロバイダと比べて主な利点です。

非構造化データ(現在はpdfとhtmlのみサポートされています)の場合、ファイルはまずCloud Storageバケットにアップロードする必要があります。このストレージバケットは、利用可能などの任意のリージョンに配置できます。

⚠️ Vertex AI Searchのデータストアは、Cloud Storageとは異なります。これは、他のプロバイダでしばしば「ベクトルデータベース」として参照されるものと似ています。

Vertex AI Searchの各アプリには現在独自のデータストアがあります。単一のアプリの下に複数のデータストアを持つことも可能です。

ソース: 著者のGCP環境のスクリーンショット

デモンストレーションの目的で、オンラインで利用可能な学生ハンドブックのサンプルPDFを使用します(https://www.bcci.edu.au/images/pdf/student-handbook.pdf)。注意:私たちはこの組織とは関連していません(オンラインで見つけることができるサンプルPDFです)

ステップ1 – PDFファイルの準備:

Pythonを使用してシングルのPDFハンドブックを複数のページに分割します。これにはわずか数秒かかります。

from PyPDF2 import PdfWriter, PdfReaderinputpdf = PdfReader(open("student-handbook.pdf", "rb"))for i in range(len(inputpdf.pages)):    output = PdfWriter()    output.add_page(inputpdf.pages[i])    with open("./split_pdfs_student_handbook/document-page%s.pdf" % i, "wb") as outputStream:        output.write(outputStream)

ステップ2 — GCSバケットへのアップロード:

PDFファイルをGoogle Cloud Storageにアップロードする必要があります。Googleコンソールを使用するか、お好きな言語でGCP SDKを使用することができます。

単一のPDF文書のみが必要な場合は、このデモでは「clickops」を使用します。

PDFファイルをCloud Storageバケットにドロップしましょう。

Source: Author’s screenshot from GCP environemnt

ステップ3 — アプリとデータストアのセットアップ:

Source: Author’s screenshot from GCP environment

GCPコンソールで、「Search and Conversation」を検索し、「アプリの作成」をクリックします。チャットアプリのタイプを選択します。会社とエージェントの名前を設定してアプリを構成します。注意:エージェントはグローバルリージョンでのみ利用可能です。

Source: Author’s screenshot from GCP environment

次に、データストアを作成します。 「Cloud Storage」を選択し、ステップ2で作成したバケットを選択します。

Source: Author’s screenshot from GCP environment

次に、データストアを作成するように求められます。これは、意味的検索とLLMのための埋め込みを格納するためのベクトルデータストアです。

「Cloud Storage」を選択します。次に、前のステップで作成したCloud Storageを選択します。

Source: Author’s screenshot from GCP environment

次に、「続行」をクリックします。その後、埋め込みが開始されます。このプロセスは、データの量に応じて数分から1時間かかる場合があります。また、GCPには非同期クライアントが利用可能なSDKライブラリがあり、プロセス全体を迅速化することができます。それ以外の場合は、常にGCPコンソールを使用することができます。デフォルトでは同期APIコールが使用されます。

進行状況はアクティビティタブで確認できます。

Source: Author’s screenshot from GCP environment

インポートが完了したら、左側の「プレビュー」に移動します。これにより、Dialogflow CXコンソールに移動します。

ステップ4 — Dialogflow:

Source: Author’s screenshot from GCP environment

Dialogflowコンソールで、「スタートページ」をクリックします。右側にデータストアの設定が開きます。同時に複数のデータストア(ウェブサイト、PDFなど)を選択することができます。この場合、ステップ3で作成した学生ハンドブックにしておきます。

データストア設定の下で、「Generator」を見つけてください。

Source: Author’s screenshot from GCP environment

以下のプロンプトを追加してください:

あなたはThe Best Collegeで働く仮想アシスタントです。学生ハンドブックに基づいて一般的なアドバイスを提供します。常に礼儀正しく建設的な言葉で応答してください。前回の会話:$conversation \nこれがユーザーの質問です:$last-user-utterance \n次に知っておく必要のある文脈情報があります:$request.knowledge.answers \nこちらがあなたの回答です:

$conversation、$last-user-utterance、$request.knowledge.answersはDialogflowのパラメーターです。

Source: Author’s screenshot from GCP environment

‘Input Parameter’に$last-user-utteranceと入力してください。これにより、ユーザーの質問がジェネレーターに渡されます。’Output Parameter’には$request.generative.student-assistant-responseと入力してください。必ずトップの「保存」ボタンを押してください!

Source: Author’s screenshot from GCP environment

Agentが言う部分には、$request.generative.student-assistant-responseと入力するのを忘れないでください。これにより、ジェネレーターからの出力がエージェントのチャットで受け取られることが保証されます。

ステップ5 – テストと統合:

このボットをテストするには、右上隅の「Test Agent」シミュレータをクリックするか、左側の「Manage Tab」を使用して統合を選択することができます。個人的には、「Dialogflow Messenger」を使用して「Test Agent」よりも好みます。なぜなら、最終的な応答形式が表示されるからです。

Source: Author’s screenshot from GCP environment

Dialogflow Messengerをクリックしたら、「非認証APIの有効化」を選択してください。これはテスト用です。実際のケースでは、認証の要件に応じてこれを有効にするかどうかを選択できます。

Source: Author’s screenshot from GCP environment
Source: Author’s screenshot from GCP environment

さあ、質問を入力してください。RAGが生成した回答は、学生ハンドブックPDFに基づいています。また、下部に参照リンクが付いています。クリックすると、該当する情報が含まれているPDFのページに移動します。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

「EUのAI法はAI規制のグローバルスタンダードを設定し、アジアの国々は慎重な姿勢を維持する」

欧州連合は、著作権保護やAI生成コンテンツの開示に関する規則を含むAI法案を提案しており、人工知能(AI)の規制において先...

人工知能

「ネクサスフローのNexusRaven-V2がGPT-4を自分のゲームで打ち負かす方法!」

人工知能の急速に進化する風景の中で、確立されたAIモデルの支配に挑戦する新たな候補が現れました。テックサークルで話題の...

人工知能

「生成AIの規制」

生成型の人工知能(AI)が注目を集める中、この技術を規制する必要性が高まっていますなぜなら、この技術は大規模な人口に対...

AIニュース

「Azure OpenAIを使用した企業文書とのチャット」

大規模言語モデル(LLM)のようなChatGPTは、インターネット上の大量のテキストから訓練される際に、数十億のパラメータ内に...

人工知能

「仕事の未来:スキルアップしないと取り残される」

AIの仕事への二重の影響、再スキル化の重要性、および労働者、企業、政府などに関連する倫理的な課題を探求してください

データサイエンス

AIはETLの再発明に時間を浪費する必要はない

「AIコミュニティはデータ統合を再発明しようとしていますが、現在のETLプラットフォームは既にこの問題を解決していますなぜ...