はじめに
ADKの動作確認用に利用していた Vertex AI RAG Engine ですが、無料枠が終了してから料金がかかるようになってしまいました。
安いプランでも一日400円ほどかかるようでもったいなかったので、Vertex AI Search という別のサービスを利用してみることにしました。
Vertex AI Search を使ってみる
Vertex AI Search はRAGと同様の利用ができるようです。
Vertex AI RAG Engine と違い呼び出し回数に対する料金しかかかりません。
データストアの作成はWebUI上から可能です。
作成したデータストアは以下のように表示されます。
黒塗りしているIDはADKからの呼び出しで利用します。
ADKからVertex AI Search を呼び出す
ADKからVertex AI Search を呼び出すことも可能です。
以下サンプルコードになります。
- LLMエージェントのツールとして
VertexAiSearchTool
を定義 -
data_store_id
のIDは以下の値を指定- データストアを作成したGCPのプロジェクトID
- データストアを作成したGCPのロケーション
- コレクション(※データストア作成時に指定しなかったのですが、
default_collection
でいけました) - データストアID
import os
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools import VertexAiSearchTool
from dotenv import load_dotenv
load_dotenv()
DATASTORE_ID = "projects/yourproject/locations/us/collections/default_collection/dataStores/test_id"
instruction = """
あなたはPHPフレームワークFlowに関する質問に答えるエージェントです。
必要に応じてデータストアを見て、質問に答えてください。
"""
root_agent = LlmAgent(
name="flow_rag_agent",
model=os.environ.get("MODEL"),
instruction=instruction,
tools=[VertexAiSearchTool(data_store_id=DATASTORE_ID)]
)
adk web
で動作確認したところ、以下のように呼び出すことができました。
(回答が3つに分かれてますね。直近のADKのアップデートでこうなったのかもですが、理由は不明です。)
おわりに
今回はVertex AI Search をADKで利用する方法をまとめました。私のようにADKをキャッチアップで利用しているだけであれば、RAGを使わずにVertex AI Search を使えるのは安上がりでありがたいです。
ここまでご覧いただきありがとうございました!