『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で革新する方法」

AIと機械学習は医療研究のやり方を変えつつありますAIが薬剤探索、ゲノミクス、およびタンパク質の折りたたみに革新をもたら...

データサイエンス

ベクトルデータベース:初心者向けガイド!

ベクトルデータベースに入力すると、データの拡大する景色によって引き起こされる課題の解決策として現れた技術革新です

機械学習

「AIと産業のデジタル化の時代に、開かれたUSDに開発者が注目」 Note OpenUSD refers to an open-source software library called USD (Universal Scene Description), which is commonly used in computer graphics and animation.

スマートファクトリーから次世代の鉄道システムまで、世界中の開発者と企業は、あらゆるスケールで産業のデジタル化の機会を...

AI研究

東京理科大学の研究者は、材料科学におけるこれまで知られていなかった準結晶相を検出する深層学習モデルを開発しました

物質における新しい結晶構造を発見する探求は、電子から製薬まで幅広い産業において重要な意味を持ち、科学的な探求の中核と...

機械学習

「メタに立ち向かい、開発者を強力にサポートするために、アリババがAIモデルをオープンソース化」

重要な進展として、中国の電子商取引巨人であるアリババが、強力な人工知能モデルをサードパーティの開発者に公開することを...

機械学習

2023年にディープラーニングのためのマルチGPUシステムを構築する方法

「これは、予算内でディープラーニングのためのマルチGPUシステムを構築する方法についてのガイドです特に、コンピュータビジ...