Vertex AI Agent Builderを徹底解説!

記事タイトルとURLをコピーする

G-gen の杉村です。当記事では Google の生成 AI 技術利用してチャットボットエージェントや検索エンジンを簡単に作成できる Vertex AI Agent Builder を解説します。

概要

Vertex AI Agent Builder とは

Vertex AI Agent Builder とは、Google の生成 AI 技術利用して、チャットボットエージェントや検索エンジンを簡単に開発できる Google Cloud プロダクトです。当サービスには、大きく分けて「Vertex AI Agents」「Vertex AI Search」の2機能があります。

Vertex AI Agents はチャットボット機能です。ドキュメント(ファイル)やウェブサイトのリンクをもとに、LLM (Large Language Model) が利用者の質問に対して回答を生成します。作成されたエージェントは、チャットボット開発用の Google Cloud サービスである Dialogflow CX の agent として機能します。

Vertex AI Search は AI を活用したドキュメントや Web サイトの検索機能を提供するフルマネージドなプラットフォームです。Google ドライブ、Confluence、JIRA、Salesforce、ServiceNow などのサードパーティ製品を接続することもできます(2024年7月現在、許可リスト付き Preview)。また、ユーザーが閲覧しているコンテンツに類似したコンテンツを推奨するための Recommendation apps を作成する機能もあります。

いずれの機能もフルマネージドで提供されておりインフラの構築・運用を意識する必要がなく、API 経由で自社の Web サイトやアプリから呼び出して利用します。開発用の Web UI (Google Cloud コンソール) が用意されており、設定や調整、動作確認はこの画面から行うことが可能です。

名称の変遷

当サービスは、Preview 時代は Generative AI App Builder または Gen App Builder と呼ばれていましたが、2023年8月29日の GA 時に「Vertex AI Search and Conversation」と改称されました。さらに、2024年4月に「Vertex AI Agent Builder」という現在の名称に変更されました。

そのため、公式ドキュメントや解説動画、パートナー各社の資料やブログ記事などには、旧来の名称で記載されていることがあります。

ユースケース

社内検索エンジン

この例は、Vertex AI Agent Builder の1機能である Vertex AI Search を使った、社内検索エンジンです。テキストや Microsoft Word で作成された社内ドキュメントをデータソースとして、社内従業員向けのポータルサイトから利用します。

検索時は、人間が普段使うような自然言語で検索できます。また結果返答には、質問に対する要約や対象ドキュメントへのリンクを含ませることができます。一度質問したことに対して、追加質問を重ねて行うようなマルチターン検索 (Multi-turn) を行うこともできます。

社内検索エンジン

顧客対応補助

以下の例は、Vertex AI による PaLM API の呼び出しと組み合わせることで、顧客からの問い合わせ業務を補助する仕組みを示しています。

顧客対応補助

RAG の実現

RAG とは Retrieval Augmented Generation の略称であり、生成 AI によるテキスト生成などに、外部データソースを用いて情報の根拠付けを行うアーキテクチャのことです。

生成 AI が誤った情報を生成してしまうことを「ハルシネーション」と言います。RAG アーキテクチャでは、インターネットの Web サイトや事前に準備したドキュメント集などをデータセットとして、生成する情報に組み込んだり脚注のような形で参考情報として添付することでハルシネーションを軽減します。

Vertex AI Agent Builder では Web サイトや PDF、Word ファイル、パワーポイントのスライドなどをデータストアとする RAG を容易に構築できます。

なお Web サイトをデータストアとする場合、Vertex AI Search で要約文を生成するには当該 Web サイトのドメイン認証(DNS レコードを追加する等)が必要ですが、以下の記事のように、LangChain 等を用いて自前で実装することでドメイン認証なしで実現することもできます。

blog.g-gen.co.jp

料金

Vertex AI Agents と Vertex AI Search ではクエリ回数に対する従量課金です。また、利用するオプション機能ごとに単価が異なります。

これに加えて、いずれの機能でもデータインデックス料金が発生します。これは回答に用いる根拠データとして取り込んだデータの容量に応じて課金されます。

料金単価は、以下の公式ページをご覧ください。

Vertex AI Agents

Vertex AI Agents とは

Vertex AI Agents とは、チャットボット用のエージェントを構築する機能です。元となるデータをウェブサイトのリンク、もしくは Cloud Storage 上の非構造化データとしてインポートさせることで、生成 AI がそれらを元にした回答を生成します。

Vertex AI Agents で構築されたチャットボットは API 経由で利用したり、Diaglogflow CX という別の Google Cloud サービスの「エージェント」として利用可能になります。API 経由で自社の Web サイトなどから呼び出すことで、チャットボットとして機能します。

Dialogflow は Vertex AI Agent Builder の公開以前から存在する Google Cloud のチャットボット構築ツールで、類似サービスとして Amazon Web Services (AWS) の Amazon Lex があります。Dialogflow の standard なエディションが Dialogflow ES で、advanced なエディションが Dialogflow CX という位置づけになります。

当機能のユースケースとしては、ウェブサイトのチャットボットや FAQ の提示、社内の従業員向けヘルプデスクなどが想定されています。

Dialogflow 側の開発画面

2種類のエージェント

エージェントには2種類あります。Data store agents と、Agent apps です。後者の Agent apps では、人間の自然言語による指示から、LLM(Gemini)が Python のコードを生成して実行するなど、柔軟な処理を行わせることができます。同機能については、以下の記事で紹介されています。

https://blog.g-gen.co.jp/entry/trial-for-vertex-ai-agent-builder

対応言語

英語、フランス語、スペイン語、ポルトガル語、ヒンディー語など10の言語に対応しています。日本語は Preview 段階です (2024年7月現在)。

Tools とコード実行(Code Interpreter)

Vertex AI Agents で作成される agent は、人間から与えられたタスクを、外部の仕組みを利用して処理していきます。このとき agent から利用される外部の仕組みを Tools と呼びます。

Google が用意する組み込みの Tools も存在し、これは Build-in tools と呼ばれます。その中には、ソースコードを生成して実行する Code Interpreter があります。Code Interpreter は、人間からの自然言語による指示に基づき、Python コードを生成して実行します。

以下の記事では、Code Interpreter を使って agent を開発する方法が紹介されています。

blog.g-gen.co.jp

デプロイ

Vertex AI Agents を利用可能にするにはいくつかの方法があります。

Dialogflow CX integration を用いると Google Chat、Slack、Facebook Messenger や LINE など、公式にサポートされているプラットフォームとエージェントを比較的容易に接続できます。

もしくは Dialogflow の API 経由で自社 Web サイトやアプリから呼び出すことも可能です。

Vertex AI Search

Vertex AI Search とは

Vertex AI Search は、LLM (Large Language Model) を使って企業内外のデータを横断検索し、利用者に適切な検索結果を返すためのアプリです。データストアとして元データを登録すれば、あとは API 経由で自社 Web サイトや自社アプリから呼び出すことができます。

Google 検索のごとく、キーワード検索、画像検索、検索キーワードのオートコンプリートやスニペット表示ができるほか、検索に対する回答を要約して表示 (Preview)、利用者の検索傾向を分析 (Preview)、など多様な機能を備えています。

開発 UI における検索プレビュー画面の様子

対応言語

英語、フランス語、スペイン語、ポルトガル語、ヒンディー語、日本語などの言語に対応しています。

日本語は2024年7月現在、フォローアップ検索など一部の機能だけがサポート対象外になっています。

サードパーティ製品との接続

Vertex AI Search を Google ドライブ、Confluence、JIRA、Salesforce、ServiceNow などのサードパーティ製品を接続し、検索対象とすることができます。

ただし2024年7月現在、当機能は「許可リスト付き Preview」の状態であり、使用するには Google に申請が必要です。また Preview 中の機能であるため、SLA やサポートの対象外となります。

オートコンプリート

Google 検索のように、検索キーワードのオートコンプリートが利用可能です。

データストアが構造化データや非構造化データの場合は、データストア内のドキュメントに基づいてオートコンプリートが生成されます。データストアが Web サイトの場合は、過去の検索履歴から生成されます。過去履歴の反映は利用開始から数日かかります。

スニペットと抽出コンテンツ

Vertex AI Search ではスニペットや抽出回答 (Extractive answers)、抽出セグメント (Extractive segments) を返すこともできます。

スニペットは、各検索結果の下に表示される、ドキュメントの抜粋です。

抽出回答 (Extractive answers) は、検索結果から関連性が高い一部分を抜粋したものです。Google 検索でいうところの「強調スニペット」がこれにあたり、検索結果の中でも最も関連性が高いと思われるドキュメントの一部抜粋を最上部に表示しています。

抽出セグメント (Extractive segments) は、抽出回答よりさらに長く抜粋したもので、LLM にインプットして新たな回答文を生成する時などに用います。

以下のスクリーンショットは Vertex AI Search ではありませんが、参考として Google 検索でスニペットや抽出回答がどの部分に当たるかを示したものです。

Google 検索の場合 (Vertex AI Search & Conversation の画面ではありません)

検索結果の要約

検索結果の要約 (search summary) はトップの、あるいは複数の検索結果をサマリして検索結果として表示する機能です。要約は前述の抽出回答 (Extractive answers) から生成されるものです。

要約を得るには、検索クエリの送信時にリクエストに contentSearchSpec.summarySpec を含ませます。その際に、トップ何位のドキュメントまでを要約に含ませるかを指定することができます。

また要約には引用元 (Citations) ドキュメントを明示させたり、情報サイトを求めるだけでサマリを作るべきではないクエリにはサマリを返さない、脚注に情報ソースを表示など、豊富なオプションがあります。プロンプトを挿入して、要約結果をカスタマイズすることも可能です (Customized summaries)。

当機能の利用には、アプリで Enterprise edition features と Advanced LLM features を両方有効化する必要があります。また Web サイトへの検索の場合は Advanced website indexing を有効化することが必要であり、対象 Web サイトのドメイン認証が必要になります(後述)。

フォローアップ検索

フォローアップ検索 (Search with follow-ups) は生成 AI の機能を活かしてより先進的な検索を行う機能です。以下が含まれます。

  • Natural language query processing : 自然言語による質問文の意図を汲んで検索結果を返す
  • Context awareness : 先の質問を背景として考慮に入れて回答する
  • Multi-turn (マルチターン) : ある質問に続けて追加の質問が可能

すなわち以下のようなやりとりができることであると、公式ドキュメントでは示されています。

あなた : メキシコで休暇を過ごすのにベストな時期はいつ?  
フォローアップ検索 : メキシコでの休暇に最適な時期は、11月から4月の乾季です。  
あなた : 為替レートはいくら?  
フォローアップ検索 : 1USD は約17.65メキシコペソです。  
あなた : 12 月の平均気温は何度?  
フォローアップ検索 : 平均気温は70~78°F の範囲です。カンクンの平均気温は約77°F です。  

現在のところフォローアップ検索は非構造化データストアと Web サイトに対して有効化できます。Web サイトへの検索の場合は Advanced website indexing の有効化が必要であり、対象 Web サイトのドメイン認証が必要になります(後述)。

ウェブサイトへのウィジェット追加

Vertex AI Search アプリに対して検索クエリを投げて結果を得るには、Google Cloud の Web API を IAM 認証に基づいてコールする方法のほか、JavaScript でウィジェットとして埋め込む方法もあります。

Vertex AI Search の開発 UI からは、自社ウェブサイト等に簡単にウィジェットを追加するための JavaScript コードを得ることができます。

ウィジェット方式では JWT または OAuth による認証をかけるか、公開検索エンジンとするかを、アプリごとに選択可能です。

さらに許可対象とする呼び出し元ドメイン名もホワイトリスト登録できます。

分析

検索の回数、クリックスルーレート (CTR)、デバイス情報などの分析情報を確認することができます。当機能は2023年10月現在、Preview です。

アプリのオプション

Enterprise edition features

Vertex AI Search アプリを作成する際に Enterprise edition features を有効化/無効化から選択することができます。アプリ作成時に有効化/無効化を選択できるほか、後からの変更も可能です。

Enterprise edition features を有効化すると、以下の機能を利用できます。

  • Web サイト検索 (Web をデータストアとして利用するのに必須)
  • 画像検索
  • 抽出回答 (Extractive answers)
  • Search with follow-ups (マルチターン検索等。Advanced LLM features とセットで利用)

Web サイトをデータストアとして検索するには、有効化が必須です。また有効化することで、マルチターン検索や自然言語での検索が可能になります

Enterprise edition features を有効化すると、クエリあたりの料金単価は高くなります。

Advanced LLM features

Vertex AI Search アプリを作成する際に Search LLM Add-On を有効化/無効化から選択することができます。後から変更することも可能です。

Search LLM Add-On を有効化すると、検索結果の要約や、Enterprise edition features 有効化と組み合わせて Search with follow-ups が利用可能になります。ただし、クエリあたりの料金単価は高くなります。

機能と対応するオプション

ある機能を使うためにどのオプションを有効化する必要があるかは、以下のドキュメントに表でまとめられていますので、ご参照ください。

コンポーネント

概要

ここまで Vertex AI Agent Builder の3つの機能を解説しました。ここからは Vertex AI Agent Builder の開発に用いられるオブジェクト単位である「アプリ」と「データストア」について解説します。

Vertex AI Agent Builder の Vertex AI Agents や Vertex AI Search はアプリ (Apps) というかたまりで管理され、それぞれのアプリが使うデータはデータストアという単位で管理されます。

作成したアプリの一覧

アプリ

アプリ (Apps) は「チャット(Vertex AI Agents)」「検索(Vertex AI Search)」「レコメンデーション(Recommendation apps)」「Agent」のいずれかの機能を選んで作成する、ひとまとまりの設定単位です。

例として「検索(Vertex AI Search)」アプリを作成するときは、アプリ名やエディション、有効化する検索機能 (オートコンプリートや LLM による要約など)、検索対象のデータストア、などを選択します。

データストア

データストアとは

「チャット(Vertex AI Agents)」アプリや「検索(Vertex AI Search)」アプリやはデータストアとして取り込んだ情報を基に、利用者からの質問・検索に回答します。

データストアにはウェブサイト、テキストドキュメントなどを取り込むことが可能です。より正確には、以下のようなフォーマットのデータを取り込み可能です。

データストアタイプ フォーマット 取り込み方式
Web HTML / PDF ドメイン名や URL で指定。Google Search Index で収集
非構造化データ HTML / PDF / DOCS / PPTX Cloud Storage または API 経由でアップロード
構造化データ CSV / JSON / BigQuery table Cloud Storage、BigQuery、API 経由でアップロード

Web データストア

Web タイプのデータストアは、その名の通り Web サイトを取り込むためのデータストアです。Web サイト内の HTML のほか PDF ファイルもインデックスされます。サイト全体を取り込むことも、一部を指定して取り込んだり、逆に一部を除外することもできます。

Google が検索エンジンに Web サイトを取り込むときに用いる「Google Search Index」で情報が収集されるため、Web サイトはインターネットからアクセスできる必要があります。

また Advanced website indexing を有効化することで検索結果の要約やフォローアップ検索等を実現できます。これを有効化するにはサイトの正当な所有者であることを示すためドメインの認証が必要です。ドメインの認証には Google 検索の最適化にも使われる Google Search Console と呼ばれる Google の Web ツールを使います。「ドメインの DNS ゾーンに指定の TXT レコードを追加する」「ページに Google Analytics のトラッキングコードを挿入する」「HTML ファイルを特定 URL にアップロードする」などの方法でドメイン認証を行うことができます。ドメイン認証は、Advanced でない通常のインデックス作成であれば不要です。

非構造化データストア

非構造化 (Unstructured) タイプのデータストアは、PDF や HTML をファイルとして直接取り込むためのデータストアです。また PPTX (Microsoft PowerPoint) や DOCX (Microsoft Word) のファイルにも対応しています (Preview)。

ファイルは原則として Cloud Storage バケット経由でアップロードします。アップロードするファイルには「タイトル」と「URL」をメタデータとして付与することができ、付与した場合はチャットボットが利用者に返答する際に、その URL を添付して回答することができます。これにより利用者は、インターネットに接していない内部 Web サイトを情報源として参照することができます。

データストアへの取り込み指示は、メタデータ無しの場合は単純に Cloud Storage バケットやそのパスを指定します。メタデータ有りの場合は、取り込み対象ファイルの Cloud Storage URL とメタデータ情報を JSONL 形式で記述したり、BigQuery テーブルに格納して、これに対して取り込みを指示します。

構造化データストア

構造化 (Structured) タイプのデータストアは、Vertex AI Conversation では FAQ (よくある質問) を取り込むために、Vertex AI Search や Recommendations では E コマースやカタログを取り込むために用います。

Vertex AI Conversation 用には (質問),(回答),(タイトル),(URL) の形式で CSV ファイルとしてデータを登録します。チャットボットが回答する際に (タイトル) と (URL) を参考情報として添付するため、ここに社内 Web サイトなどの情報を登録しておくことが可能です。データ登録時には (タイトル) と (URL) はオプションです。

Vertex AI Search・Recommendations 向けには BigQuery テーブルか、JSON (NDJSON/JSONL) 形式でデータを用意します。API 経由でデータ投入することも可能です。スキーマは自動検知させることも、明示的にスキーマ情報を与えることもできます。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。