本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
知識庫擷取組態
使用協同運作 AI 代理器時,您可以設定擷取工具,讓您的 AI 代理器搜尋知識庫並傳回相關資訊以回答使用者問題。
每個擷取工具都會查詢單一知識庫。透過設定多個擷取工具,您可以讓 AI 代理器同時查詢多個知識庫,或根據使用者的問題智慧地選取要搜尋的知識庫。明確定義的工具描述和提示指示可讓模型自動將查詢路由到最相關的知識庫。
您可以在兩個層級控制 AI 代理器查詢內容的方式:
-
知識庫層級:設定多個擷取工具來查詢不同的知識庫。當您的內容組織成多個知識庫時,請使用此方法。
-
內容層級:使用內容分割僅查詢單一知識庫中的特定內容。
如何將協同運作代理程式設定為查詢多個知識庫
您可以設定多個擷取工具來查詢不同的知識庫。根據您的使用案例,您可以:
同時查詢所有知識庫 (平行調用)
根據請求的內容查詢特定知識庫 (條件式調用)
設定多個擷取工具
這兩種組態都需要相同的初始設定。請先完成這些步驟,然後遵循特定使用案例的指示。
-
從 AWS 主控台,您可以選擇新增整合並遵循引導式體驗來新增其他知識庫。在此範例中,我們新增 demo-byobkb 作為額外的知識庫。
-
從 AI 代理程式設計工具,建立新的協調 AI 代理程式,並編輯預設擷取工具
-
將現有的知識庫與擷取工具建立關聯。AI 代理器將使用此知識庫作為預設值
-
新增其他工具,選擇 Amazon Connect 做為命名空間,然後選擇擷取 AI 工具的類型
-
現在選取要在預設知識庫之外建立關聯的其他知識庫
-
從「擷取」開始命名每個額外的擷取工具 (例如Retrieve2、Retrieve3、RetrieveProducts、RetrievePolicies)。
-
接著,設定工具說明和範例。組態會根據您的使用案例而有所不同。下列各節涵蓋兩個案例:同時查詢所有知識庫,以及選擇性地查詢知識庫。
同時查詢所有知識庫
當您希望代理程式為每個查詢同時搜尋所有知識庫時,請使用此組態。
設定工具指示
-
透過複製預設擷取工具中的指示和範例,填入工具指示。
-
選擇新增按鈕以建立新的擷取工具。您的工具清單現在應該有新的擷取工具。
您現在有第二個擷取工具。若要同時使用所有擷取工具,您必須使用指示來修改提示,以同時叫用它們。如果沒有此變更,只會使用一個擷取工具。
更新您的平行調用提示
-
修改提示,指示其使用多個擷取工具。預設協同運作提示無法直接編輯,因此您需要使用變更建立副本。
透過複製符合您使用案例的預設協同運作提示來建立新的提示。在此範例中,我們從 AgentAssistanceOrchestration 提示中複製 。
-
選擇建立按鈕,系統會將您導向至您可以修改提示的頁面。
-
根據您的協同運作類型修改提示:
-
對於客服人員協助協同運作提示:
在協同運作提示中尋找編號規則區段。本節一開始的行類似:
Your goal is to resolve the customer's issue while also being responsive. While responding, follow these important rules:將以下內容新增為本節中的最後一個編號規則:
CRITICAL - Multiple Retrieve Tools: When multiple Retrieve-type tools are available ([Retrieve], [Retrieve2]), you MUST invoke ALL of them simultaneously for any search request. Never use only one Retrieve tool when multiple are available-always select and invoke them together to ensure comprehensive results from all knowledge sources. -
對於自助式協同運作提示:
找到
core_behavior區段。在該區段中新增下列規則:CRITICAL - Multiple Retrieve Tools: When multiple Retrieve-type tools are available ([Retrieve], [Retrieve2]), you MUST invoke ALL of them simultaneously for any search request. Never use only one Retrieve tool when multiple are available—always invoke them together to ensure comprehensive results from all knowledge sources.
注意
將括號預留位置取代為您的實際工具名稱。
-
選擇性地查詢知識庫
當您希望客服人員根據問題或內容類型選取適當的知識庫時,請使用此組態。
為每個知識庫設定工具指示
與平行調用不同,每個擷取工具都需要描述何時應使用的不同指示。這包括預設的擷取工具 — 您必須更新其指示,以將其與其他擷取工具區分開來。使用描述性名稱來反映每個知識庫的內容 (例如RetrieveProducts、RetrievePolicies),以協助模型選取正確的工具。
-
針對每個擷取工具,包括預設值,撰寫說明其相關知識庫內容及使用時機的特定指示。
-
選擇新增按鈕以建立新的擷取工具。您的工具清單現在應該有新的擷取工具。
您現在有第二個擷取工具。若要讓客服人員根據內容選取適當的工具,您必須修改提示,其中包含何時使用每個工具的指示。
更新您的條件式調用提示
-
修改提示,指示其根據內容選擇適當的擷取工具。預設協同運作提示無法直接編輯,因此您需要使用變更建立副本。
透過複製符合您使用案例的預設協同運作提示來建立新的提示。在此範例中,我們從 AgentAssistanceOrchestration 提示中複製 。
-
選擇建立按鈕,系統會將您導向至您可以修改提示的頁面。
-
根據您的協同運作類型修改提示:
-
對於客服人員協助協同運作提示:
在協同運作提示中尋找編號規則區段。本節一開始的行類似:
Your goal is to resolve the customer's issue while also being responsive. While responding, follow these important rules:將以下內容新增為本節中的最後一個編號規則:
CRITICAL - Retrieve Tool Selection: You have multiple Retrieve tools. Each queries a different knowledge base. You MUST select only ONE tool per question based on the topic. - [Retrieve] contains [description]. - [Retrieve2] contains [description]. Evaluate the question, match it to the most relevant tool, and invoke only that tool. -
對於自助式協同運作提示:
找到
core_behavior區段。在該區段中新增下列規則:CRITICAL - Retrieve Tool Selection: You have multiple Retrieve tools. Each queries a different knowledge base. You MUST select only ONE tool per question based on the topic. - [Retrieve] contains [description]. - [Retrieve2] contains [description]. Evaluate the question, match it to the most relevant tool, and invoke only that tool.
注意
將括號預留位置取代為您的實際工具名稱、描述和範例問題。
準確工具選擇的最佳實務
模型選取正確擷取工具的能力取決於幾個因素:工具名稱、工具描述、工具範例和提示指示。請遵守下列準則:
-
使用描述性工具名稱:RetrieveProducts 或 RetrievePolicies 等名稱可協助模型了解每個工具的用途。
-
請具體說明:避免模糊的描述,例如「一般資訊」。列出每個知識庫處理的特定主題、文件類型或問題類別。
-
新增範例問題:在工具說明中包含範例問題,以協助模型了解預期的使用案例。
-
避免重疊:確保工具名稱、描述和範例是互斥的。重疊的內容可能會導致模型選擇不一致。
-
將術語與使用者語言配對:使用使用者常用的相同字詞和片語,而不只是內部術語或技術術語。
除了此處提供的範例之外,您的使用案例可能需要額外的提示修改。
-
內容分割
內容分割可讓您標記知識庫內容,並根據這些標籤篩選擷取結果。當您的 LLM 工具查詢知識庫時,它可以指定僅擷取符合這些標籤內容的標籤,以啟用特定內容子集的目標回應。
注意
內容分割不適用於 Web 爬蟲程式資料來源類型。
依資料來源類型標記內容
標記內容的程序會根據您的資料來源類型而有所不同。
S3、Salesforce、SharePoint、Zendesk 和 ServiceNow
建立知識庫之後,您可以將標籤套用至個別內容項目以進行分割。標籤會在內容層級套用,這表示每個內容都必須個別標記。
若要標記內容,請使用 Amazon Connect TagResource API。此 API 可讓您以程式設計方式將標籤新增至知識庫內容,然後可用於擷取期間的內容分割篩選。
如需標記內容的範例,請參閱內容分割研討會
在擷取工具中使用標籤
標記內容後,您可以透過在擷取工具組態中指定標籤篩選條件來篩選擷取結果。
-
在擷取工具組態中,導覽至覆寫輸入值區段。
-
新增鍵/值對以定義標籤篩選條件。您需要兩個覆寫,才能依單一標籤進行篩選。在此範例中,我們使用
equals做為篩選運算子:-
將 屬性金鑰設定為
retrievalConfiguration.filter.equals.key,並將 值作為標籤名稱 (例如,number)。
-
將 屬性金鑰設定為
retrievalConfiguration.filter.equals.value,並將 值作為標籤值 (例如,one)。
-
您可以使用開頭為 的任何篩選條件組態retrievalConfiguration.filter來定義標籤篩選條件。
Bedrock 知識庫
對於 Bedrock 知識庫資料來源,內容不會儲存為 Amazon Connect 資源,因此無法透過 TagResource API 進行標記。相反地,您必須直接在 Bedrock 知識庫資料來源上定義中繼資料欄位。
如需 S3 資料來源,請參閱《Amazon Bedrock S3 資料來源連接器使用者指南》中的文件中繼資料欄位一節。
如需其他資料來源類型,請參閱 Amazon Bedrock 文件中的擷取期間的自訂轉換。
在擷取工具中使用中繼資料欄位
Bedrock 知識庫會自動在所有檔案上提供內建中繼資料欄位。您可以使用這些欄位,使用上述範例中顯示的相同組態方法,在擷取工具中篩選擷取結果。
若要僅從 Bedrock 知識庫中的特定資料來源擷取結果,請設定篩選條件覆寫,如下所示:
-
retrievalConfiguration.filter.equals.key=x-amz-bedrock-kb-data-source-id -
retrievalConfiguration.filter.equals.value=[your-data-source-id]
這會篩選擷取工具,以僅從該特定資料來源擷取結果。您也可以使用相同的覆寫組態,依您在 Bedrock 資料來源上定義的自訂中繼資料欄位進行篩選。
將引文資料新增至 AI 代理程式追蹤
當您的 AI 代理器使用知識庫回答問題時,您可以擷取引文資料,顯示參考了哪些知識庫內容。此資料包括:
-
contentId — 所參考特定內容項目的識別符
-
title — 參考內容的標題 (例如,"Amazon Connect Overview")
-
knowledgeBaseId — 所使用知識庫的識別符
-
knowledgeBaseArn — 所使用知識庫的 ARN
此知識庫引文資料可透過 ListSpans API 和 AI 代理程式追蹤取得。若要進一步了解,請參閱 ListSpans 和 AI 代理程式追蹤。
注意
如果您使用的是客服人員協助,系統會自動包含引文資料,而且不需要額外的組態。下列步驟僅適用於自助式協同運作提示。
更新您的自助式提示以包含引文
-
若要啟用引用資料,您必須在自助式協同運作提示中更新擷取工具的指示區塊。這會指示模型使用所需的格式,在其回應中包含來源參考。
-
建立預設自助式協同運作提示的副本 (預設提示無法直接編輯)。
-
在複製的提示中,將擷取工具的指示區塊取代為下列項目:
instruction: instruction: |- Search the knowledge base using semantic search to find relevant information. Use the results of the RETRIEVE tool to provide an informed answer to the customer's query. When summarizing retrieve tool results, you MUST include source citations using the format shown in the good examples below. MUST include a <sources> block with the sourceId values from the Retrieve result inside every <message_part> that uses retrieved content. MUST use the exact sourceId string returned by the Retrieve tool. Do not modify, truncate, or fabricate sourceId values. MUST include source citations for ALL information taken from retrieve results. If a message_part is purely conversational (greetings, clarifying questions, hand-offs) and does not use retrieved content, omit the <sources> block. If retrieve returns no results or empty results, acknowledge that you don't have that specific information available. Do not make assumptions or provide information from general knowledge. examples: - |- Good example - single message part with one source: <message> <message_part> <text>Your warranty covers parts replacement for any manufacturing defects during the first year.</text> <sources> <sourceId>warranty_policy_2024</sourceId> </sources> </message_part> </message> - |- Good example - multiple sources contributing to one answer: <message> <message_part> <text>Our check-in time is 3 PM and checkout is 11 AM. Late checkout is available for an additional fee.</text> <sources> <sourceId>checkin_policy</sourceId> <sourceId>fees_addendum</sourceId> </sources> </message_part> </message> - |- Good example - greeting with no retrieval: <message> <message_part> <text>Hello! How can I help you today?</text> </message_part> </message> - |- Bad example - retrieved content with no sources block (avoid this): <message> <message_part> <text>We offer extended warranty coverage beyond the manufacturer's warranty period.</text> </message_part> </message> - |- Bad example - text outside <message_part> (avoid this): <message> <message_part> <text>Your warranty covers parts replacement.</text> <sources> <sourceId>warranty_policy_2024</sourceId> </sources> </message_part> Let me know if you need anything else. </message> - |- Example for no results: <message> <message_part> <text>I don't have specific information about that topic available.</text> </message_part> </message>
-
儲存您的提示並將其與您的 AI 代理器建立關聯。
語音客服人員
<sources> 區塊是中繼資料,不會大聲說出來。這不會影響發起人聽到的內容。
如何驗證
更新您的提示後,請放置測試聯絡人並確認:
-
客服人員正確回答問題。
-
檢查該工作階段的 ListSpans API 回應。用於回答 的知識庫應該在 ListSpans 詳細資訊中顯示為引文。若要進一步了解 ListSpans,請參閱 ListSpans API。