2.2.2 検索サービスの接続設定
検索サービスを利用する場合と利用しない場合それぞれで必要な作業があります。必要な作業を以降に示します。
(1) 検索サービスを利用する場合
検索サービスと連携するために接続情報を設定する必要があります。Azure AI Search, Knowledge Bases for Amazon Bedrockとの連携時に必要な情報をそれぞれ以下の表に示します。
|
# |
項目 |
内容 |
|---|---|---|
|
1 |
Azure AI Searchについて必要な情報 |
|
|
2 |
Azure AI Searchとの認証方法 |
|
|
# |
項目 |
内容 |
|---|---|---|
|
1 |
Knowledge Bases for Amazon Bedrockについて必要な情報 |
|
-
検索サービスについて必要な情報の設定
設定ファイル(ai_assistant.yml)の以下の項目に必要な情報を設定します。
-
Azure AI Searchを使用する場合:
service.langchain.tools[].azure_ai_searchにAzure AI Searchについて必要な情報を設定します。
-
Knowledge Bases for Amazon Bedrockを使用する場合:
service.langchain.tools[].aws_knowledge_basesにKnowledge Bases for Amazon Bedrockについて必要な情報を設定します。
Azure AI SearchまたはKnowledge Bases for Amazon Bedrockのどちらか片方のみを使用する場合は以下の設定も必要です。
-
Azure AI Searchのみ使用する場合:
設定ファイルのservice.langchain.tools[]のうちnameがuser_contents_for_aws_kbの設定をコメントアウトしてください。
-
Knowledge Bases for Amazon Bedrockのみ使用する場合:
設定ファイルのservice.langchain.tools[]のうちnameがuser_contentsの設定をコメントアウトしてください。
また,設定ファイルのservice.langchain.prompts[].toolsで指定する値がservice.langchain.tools[]のnameで指定した値のみになるように変更をしてください。
設定ファイルの変更方法は「3.1.1 定義ファイルの変更方法」を参照してください。設定ファイルの詳細は「6.1.1 設定ファイル(ai_assistant.yml)」を参照してください。
-
-
Azure AI Searchとの認証の設定(Azure AI Searchと連携する場合のみ)
連携する検索サービスとの認証のためにAPIキーの登録が必要です。APIキーは生成AI連携のチャット画面からシークレットとして登録します。シークレットの登録方法は「3.1.2 シークレットの追加・変更・削除方法」を参照してください。
表2‒10 登録するAzure AI Searchのシークレット #
シークレットキー
シークレット
1
ai_assistant.service.langchain.tool.< name>※
Azure portalのAzure AI Searchから該当リソースを選択し,[設定]-[Keys]に表示されるPrimary admin keyもしくはSecondary admin keyの値
- 注※
-
<name>には設定ファイル(ai_assistant.yml)でAzure AI Searchを指定したtoolのnameを指定します。
(2) 複数のナレッジを利用する場合(02-40以降)
検索サービスの複数のナレッジ(Azure AI Searchの場合はインデックス,Knowledge Bases for Amazon Bedrockの場合はナレッジID)を横断して検索したい場合は複数の検索ツール(Azure AI Search検索ツールまたはKnowledge Bases for Amazon Bedrock検索ツール)の定義と利用のための設定が必要になります。
-
検索ツールのツールプロンプト定義
ツールプロンプト定義ファイルにツールの名前,説明を定義します。ナレッジ検索エージェントはツールの説明を参照して,実行すべきツールを決定し,検索クエリを作成するため,生成AIがツールを選ぶための情報と検索クエリの作成方法を記載する必要があります。また,利用するナレッジの数だけ作成する必要があります。
Azure AI Search検索ツールを利用する場合はツールプロンプト定義ファイルのazure_ai_search[].nameがuser_contentsを,Knowledge Bases for Amazon Bedrock検索ツールを利用する場合はツールプロンプト定義ファイルのazure_ai_search[].nameがuser_contents_for_aws_kbを参考にしてください。
-
検索ツールの設定
設定ファイルのservice.langchain.tools[]に検索ツールを定義します。ツール名(service.langchain.tools[].name)はツールプロンプト定義ファイルで定義したツール名と一致させる必要があります。Azure AI Search検索ツールの場合はservice.langchain.tools[].azure_ai_searchに,Knowledge Bases for Amazon Bedrock検索ツールの場合はservice.langchain.tools[].aws_knowledge_basesにそれぞれ接続情報を定義します。
-
ナレッジ検索エージェントの設定
ナレッジ検索エージェントをワークフローに定義します。ワークフローの定義は「2.2.3 ワークフローの設定(02-30以降)」を参照してください。
-
ナレッジ検索エージェントと検索ツールの紐づけ
ナレッジ検索エージェントが検索ツールを参照するために,ナレッジ検索エージェントのプロンプトで,利用できる検索ツールを指定します。ナレッジ検索エージェントのプロンプト(service.langchain.prompts[]のnameがknowledge_search_agent)のtoolsに1で定義した検索ツールの名前を列挙します。
-
不要なデフォルト設定の削除
デフォルトで設定ファイルに定義されている検索ツール(service.langchain.prompts[].name==user_contentsおよびservice.langchain.prompts[].name==user_contents_for_aws_kb)が不要な場合はコメントアウトまたは削除してください。
(3) 検索サービスを利用しない場合
-
02-30以降
設定ファイルのワークフローの定義のSupervisor配下のエージェントノード(service.langgraph.workflows[].nodes.supervisor.child_agents[])からknowledge_search_agentを削除してください。また,不要な検索サービスの設定(azure_ai_searchまたはaws_knowledge_basesを指定しているツール定義(service.langchain.tools[]))はコメントアウトまたは削除してください。
-
02-20以前
検索サービスを利用しない場合は,設定ファイル(ai_assistant.yml)のservice.langchain.prompts.toolsとservice.langchain.toolsを変更する必要があります。
service.langchain.prompts.toolsには空文字を指定します。以下に例を示します。
service:
langchain:
prompts:
- name: sys_chat_prompt
type: chat
tools: ""また,service.langchain.toolsに記載されている内容をコメントアウトする必要があります。
設定ファイルの変更方法は「3.1.1 定義ファイルの変更方法」を参照してください。設定ファイルの詳細は「6.1.1 設定ファイル(ai_assistant.yml)」を参照してください。