查詢組態 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

查詢組態

當您查詢知識庫以自訂擷取和回應產生時,您可以修改組態。若要深入了解設定以及如何在主控台或 API 中修改設定,請從下列主題中選取。

搜尋類型會定義如何查詢知識庫中的資料來源。以下是可能的搜尋類型:

  • 默認-Amazon 基岩為您決定搜索策略。

  • 混合 — 結合搜尋向量嵌入 (語義搜尋) 與搜尋原始文字。目前只有包含可篩選文字欄位的 Amazon OpenSearch 無伺服器向量存放區才支援混合搜尋。如果您使用不同的向量存放區,或 Amazon OpenSearch 無伺服器向量存放區不包含可篩選的文字欄位,則查詢會使用語意搜尋。

  • 語義 — 僅搜尋向量嵌入。

若要瞭解如何定義搜尋類型,請選取與您選擇的方法相對應的標籤,然後依照下列步驟操作。

Console

請依照中的主控台步驟執行查詢知識庫並傳回結果或產生回應。當您開啟 [設定] 窗格時,您會看到下列 [搜尋類型] 選項:

  • 預設 — Amazon 基岩會決定哪種搜尋策略最適合您的向量存放區組態。

  • 混合 — Amazon 基岩同時使用向量嵌入和原始文字來查詢知識庫。只有當您使用設定可篩選文字欄位的 Amazon OpenSearch 無伺服器向量存放區時,才能使用此選項。

  • 語義 — Amazon 基岩使用其向量嵌入查詢知識庫。

API

當您提出RetrieveRetrieveAndGenerate請求時,請包含對應至KnowledgeBaseRetrievalConfiguration物件的retrievalConfiguration欄位。若要查看此欄位的位置,請參閱 API 參考資料中的RetrieveRetrieveAndGenerate要求內文。

下列 JSON 物件會顯示物件中設定搜尋類型設定所需的最小欄位:KnowledgeBaseRetrievalConfiguration

"retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC" } }

overrideSearchType欄位中指定搜尋類型。您有下列選項:

  • 如果您未指定值,Amazon Bdrock 會決定哪種搜尋策略最適合您的向量存放區組態。

  • 混合 — Amazon 基岩同時使用向量嵌入和原始文本查詢知識庫。只有當您使用設定可篩選文字欄位的 Amazon OpenSearch 無伺服器向量存放區時,才能使用此選項。

  • 語義 — Amazon 基岩使用其向量嵌入查詢知識庫。

查詢分解是用於將複雜的查詢分解為更小,更易於管理的子查詢的技術。這種方法可以幫助檢索更準確和相關的信息,尤其是當初始查詢是多方面或過於廣泛時。啟用此選項可能會導致對您的知識庫執行多個查詢,這可能有助於更準確的最終回應。

例如,對於諸如 「2022 年 FIFA 世界杯,阿根廷或法國誰在比賽中得分更高?」 ,Amazon 基岩知識庫可能會先生成以下子查詢,然後再生成最終答案:

  1. 阿根廷在 2022 年國際足聯世界盃決賽中得分多少球?

  2. 法國在 2022 年國際足聯世界盃決賽中得分多少球?

Console
  1. 建立和同步資料來源,或使用現有的知識庫。

  2. 轉到測試窗口並打開配置面板。

  3. 啟用查詢重新配方。

API
POST /retrieveAndGenerate HTTP/1.1 Content-type: application/json { "input": { "text": "string" }, "retrieveAndGenerateConfiguration": { "knowledgeBaseConfiguration": { "orchestrationConfiguration": { // Query decomposition "queryTransformationConfiguration": { "type": "string" // enum of QUERY_DECOMPOSITION } }, ...} }

當根據資訊擷取產生回應時,您可以使用推論參數來進一步控制推論期間模型的行為,並影響模型的輸出。若要瞭解如何修改推論參數,請選取與您選擇的方法相對應的標籤,然後依照下列步驟操作。

Console

若要在查詢知識庫並傳回結果或產生回應查詢知識庫時修改推論參數,請遵循中的主控台步驟。當您開啟「組態」窗格時,您會看到「推論參數」區段。視需要修改參數。

若要在與文件聊天時修改推論參數,請依照中的步驟執行使用知識庫與文件資料聊天。在「組態」窗格中,展開「推論參數」區段,並視需要修改參數。

API

您可以在呼叫 RetrieveAndGenerateAPI 時提供模型參數。您可以在 (如果您查詢知識庫) 或 knowledgeBaseConfiguration (如果您與文件聊天) 的inferenceConfig欄位中提供推論參數來自訂模型。externalSourcesConfiguration

inferenceConfig欄位中有一個textInferenceConfig欄位,其中包含下列參數,您可以:

  • 溫度

  • topP

  • maxTokenCount

  • 停止序列

您可以在externalSourcesConfiguration和的inferenceConfig欄位中使用下列參數來自訂模型knowledgeBaseConfiguration

  • 溫度

  • topP

  • maxTokenCount

  • 停止序列

如需每個參數函數的詳細說明,請參閱推論參數

此外,您可以textInferenceConfig透過additionalModelRequestFields地圖提供不支援的自訂參數。您可以使用此參數為特定模型提供唯一的參數,對於唯一參數請參閱。基礎模型的推論參數

如果省略參數textInferenceConfig,則會使用預設值。中未識別的任何參數都textInferneceConfig將被忽略,而中未識別的任何參數都AdditionalModelRequestFields將導致異常。

如果additionalModelRequestFields和中有相同的參數,則會擲回驗證例外狀況TextInferenceConfig

使用模型參數 RetrieveAndGenerate

以下是RetrieveAndGenerate要求主體generationConfigurationinferenceConfig和之additionalModelRequestFields下結構的範例:

"inferenceConfig": { "textInferenceConfig": { "temperature": 0.5, "topP": 0.5, "maxTokens": 2048, "stopSequences": ["\nObservation"] } }, "additionalModelRequestFields": { "top_k": 50 }

正在進行temperature的範例會設定一個 0.5 (為 0.5 top_p maxTokens 的 2048),如果在產生的回應中遇到字串 "\ n 觀察",就會停止產生,並傳遞 50 的自訂top_k值。

當您查詢知識庫時,Amazon 基岩預設會在回應中最多傳回五個結果。每個結果都對應於一個源塊。若要修改要傳回的結果數目上限,請選取與您選擇的方法對應的索引標籤,然後依照下列步驟執行。

Console

請依照中的主控台步驟執行查詢知識庫並傳回結果或產生回應。在「組態」窗格中,展開擷取結果的最大數目

API

當您提出RetrieveRetrieveAndGenerate請求時,請包含對應至KnowledgeBaseRetrievalConfiguration物件的retrievalConfiguration欄位。若要查看此欄位的位置,請參閱 API 參考資料中的RetrieveRetrieveAndGenerate要求內文。

下列 JSON 物件會顯示物件中設定要傳回的結果數目上限所需的最小欄位:KnowledgeBaseRetrievalConfiguration

"retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": number } }

指定要在欄位中傳回的最大擷取結果數目 (請參閱中KnowledgeBaseRetrievalConfigurationnumberOfResults欄位以瞭解可接受的值範圍)。numberOfResults

您的資料來源可以包含要篩選的文件中繼資料屬性/欄位,例如「last_updated」或自目前日期起文件上次更新後的天數。若要在查詢知識庫時使用篩選器,請檢查您的知識庫是否符合下列需求:

  • 設定資料來源連接器時,大多數連接器會編目文件的主要中繼資料提示。如果使用 Amazon S3 儲存貯體做為資料來源,則儲存貯體必須包含至少一個與其相關聯之來源文件名稱相同的.metadata.json檔案。

  • 如果知識庫的向量索引位於 Amazon OpenSearch 無伺服器向量存放區中,請檢查向量索引是否已使用faiss引擎設定。如果向量索引配置了nmslib引擎,則必須執行以下操作之一:

查詢時,您可以使用下列篩選運算子來篩選結果:

篩選運算子
運算子 主控台 API 篩選器名稱 支援的屬性資料類型 篩選結果
等於 = 等於 字符串,數字,布爾 屬性與您提供的值相符
不等於 != 備註 字符串,數字,布爾 屬性與您提供的值不匹配
大於 > 大於 number 屬性大於您提供的值
大於或等於 >= greaterThanOr等於 number 屬性大於或等於您提供的值
小於 < 少於 number 屬性小於您提供的值
小於或等於 <= lessThanOr等於 number 屬性小於或等於您提供的值
In (入) : 字符串列表 屬性在您提供的列表中
不在 !: NOTN 字符串列表 屬性不在您提供的列表中
開頭為 ^ 開始使用 string 屬性以您提供的字串開頭 (僅支援 Amazon OpenSearch 無伺服器向量存放區)

若要合併篩選運算子,您可以使用下列邏輯運算子:

邏輯運算子
運算子 主控台 API 篩選器欄位名稱 篩選結果
以及 安德爾 結果會滿足群組中的所有篩選運算式
或全部 結果至少會滿足群組中其中一個篩選運算式

若要瞭解如何使用中繼資料篩選結果,請選取與您選擇的方法對應的索引標籤,然後依照步驟執行。

Console

請依照中的主控台步驟執行查詢知識庫並傳回結果或產生回應。當您開啟 [組態] 窗格時,您會看到 [篩選器] 區段。下列程序說明不同的使用案例:

  • 若要新增篩選器,請在方塊中輸入中繼資料屬性、篩選運算子和值,以建立篩選運算式。使用空格分隔運算式的每個部分。按 Enter 鍵以新增篩選器。

    如需接受的篩選運算子清單,請參閱上方的篩選運算子表格。當您在 metadata 屬性之後新增空白字元時,也可以看到篩選運算子的清單。

    注意

    您必須用引號括住字串。

    例如,您可以"entertainment"透過新增下列篩選條件來篩選包含genre中繼資料屬性之中繼資料屬性的來源文件的結果:genre = "entertainment"

    添加一個過濾器。
  • 若要新增其他篩選器,請在方塊中輸入另一個篩選表示式,然後按 Enter。您最多可以在該組中添加 5 個過濾器。

    添加另一個過濾器。
  • 依預設,查詢會傳回滿足您提供之所有篩選運算式的結果。若要傳回至少符合其中一個篩選運算式的結果,請在任兩個篩選作業之間選擇下拉式功能表,然後選取

    更改過濾器之間的邏輯操作。
  • 若要合併不同的邏輯運算子,請選取 + 新增群組以新增篩選群組。在新群組中輸入篩選運算式。您最多可以新增 5 個過濾器群組。

    新增篩選器群組以合併不同的邏輯運算子。
  • 若要變更所有篩選群組之間使用的邏輯運算子,請在任兩個篩選群組之間選擇 AND 下拉式功能表,然後選取 OR

    變更篩選群組之間的邏輯作業。
  • 若要編輯篩選器,請選取它,修改篩選作業,然後選擇「套用」。

    編輯篩選條件。
  • 若要移除篩選器群組,請選擇群組旁邊的垃圾桶圖示 ( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. )。若要移除篩選,請選擇篩選旁邊的刪除圖示 ( Close or cancel icon represented by an "X" symbol. )。

    刪除過濾條件或過濾器群組。

下列影像顯示範例篩選器組態,此組態除了類型為"cooking""sports"且作者開頭為的文件外"entertainment",還會傳回在其類型為之後2018撰寫的所有文件"C"

範例篩選器組態。
API

當您提出RetrieveRetrieveAndGenerate請求時,請包含對應至KnowledgeBaseRetrievalConfiguration物件的retrievalConfiguration欄位。若要查看此欄位的位置,請參閱 API 參考資料中的RetrieveRetrieveAndGenerate要求內文。

下列 JSON 物件會顯示物件中針KnowledgeBaseRetrievalConfiguration對不同使用案例設定篩選器所需的最小欄位:

  1. 使用一個篩選運算子 (請參閱上方的篩選運算子表格)。

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } } } }
  2. 使用邏輯運算子 (請參閱上述「邏輯運算子」表格) 最多可合併 5 個。

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] } } }
  3. 使用邏輯運算子將最多 5 個篩選運算子組合到一個篩選群組中,並使用第二個邏輯運算子將該篩選群組與另一個篩選運算子結合。

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } ] } } }
  4. 在另一個邏輯運算子內嵌,最多可合併 5 個篩選群組。您可以創建一個嵌入級別。

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] ] } } }

下表說明您可以使用的篩選器類型:

欄位 支援的值資料類型 篩選結果
equals 字符串,數字,布爾 屬性與您提供的值相符
notEquals 字符串,數字,布爾 屬性與您提供的值不匹配
greaterThan number 屬性大於您提供的值
greaterThanOrEquals number 屬性大於或等於您提供的值
lessThan number 屬性小於您提供的值
lessThanOrEquals number 屬性小於或等於您提供的值
in 字符串列表 屬性在您提供的列表中
notIn 字符串列表 屬性不在您提供的列表中
startsWith string 屬性以您提供的字串開頭 (僅支援 Amazon OpenSearch 無伺服器向量存放區)

若要合併篩選類型,您可以使用下列其中一個邏輯運算子:

欄位 對應至 篩選結果
andAll 最多 5 種過濾器類型的列表 結果會滿足群組中的所有篩選運算式
orAll 最多 5 種過濾器類型的列表 結果至少會滿足群組中其中一個篩選運算式

如需範例,請參閱傳送查詢並包含篩選器 (擷取)傳送查詢並包含篩選器 (RetrieveAndGenerate)

當您查詢知識庫並產生請求回應時,Amazon Bedrock 會使用提示範本,將指示和內容與使用者查詢結合在一起,以建構傳送至模型以產生回應的提示。您可以使用下列工具來設計提示範本:

  • 提示預留位置 — Amazon 基岩知識庫中預先定義的變數,在知識庫查詢期間會在執行時間動態填入。在系統提示中,您會看到這些預留位置,並以$符號包圍。下列清單說明您可以使用的預留位置:

    變數 取代為 模型 是否為必要?
    $ 查詢 傳送至知識庫的使用者查詢。 AnthropicClaude Instant, Anthropic Claude v2.x
    Anthropic Claude 3 Sonnet 否 (自動包含在模型輸入中)
    $ 搜索結果 用於用戶查詢的檢索結果。 全部
    $ 輸出格式指令 $ 格式化回應產生和引用文獻的基本指示。因型號而異。如果您定義了自己的格式指示,我們建議您移除此預留位置。如果沒有此預留位置,回應將不會包含引用文獻。 全部
    $ 當前時間 $ 當前時間。 全部
  • XML 標籤 — Anthropic 模型支援使用 XML 標籤來建構和描述您的提示。使用描述性標籤名稱以獲得最佳結果。例如,在預設的系統提示字元中,您會看到用來描述先前提出問題資料庫的<database>標籤)。如需詳細資訊,請參閱使用指南中的「Anthropic使用 XML 標記」。

如需一般提示工程指導方針,請參閱 提示詞工程指導方針

選擇與您選擇的方法相對應的選項卡,然後按照步驟操作。

Console

請依照中的主控台步驟執行查詢知識庫並傳回結果或產生回應。在測試視窗中,開啟 [產生回應]。然後,在 [設定] 窗格中,展開 [知識庫提示範本] 區段。

  1. 選擇編輯

  2. 視需要在文字編輯器中編輯系統提示,包括提示預留位置和 XML 標籤。若要回復為預設提示樣板,請選擇「重設為預設」。

  3. 完成編輯後,請選擇 Save changes (儲存變更)。若要結束而不儲存系統提示,請選擇「捨棄變更」。

API

當您提出RetrieveAndGenerate請求時,請包含對應至GenerationConfiguration物件的generationConfiguration欄位。若要查看此欄位的位置,請參閱 API 參考中的RetrieveAndGenerate要求主體。

下列 JSON 物件會顯示物件中設定要傳回的GenerationConfiguration最大擷取結果數目所需的最小欄位:

"generationConfiguration": { "promptTemplate": { "textPromptTemplate": "string" } }

textPromptTemplate欄位中輸入您的自訂提示範本,包括必要的提示預留位置和 XML 標籤。如需系統提示中允許的最大字元數,請參閱中的textPromptTemplate欄位GenerationConfiguration

您可以針對您的使用案例和負責任的 AI 政策,為知識庫實作保護措施。您可以建立針對不同使用案例量身打造的多個護欄,並將其套用至多個請求和回應條件,從而提供一致的使用者體驗,並在您的知識庫中標準化安全控制。您可以設定拒絕的主題,以禁止不受歡迎的主題和內容篩選器,以封鎖模型輸入和回應中的有害內容。如需詳細資訊,請參閱 Amazon 基岩護欄

注意

克勞德 3 十四行詩和俳句目前不支持使用帶有上下文接地的護欄進行知識庫。

如需一般提示工程指導方針,請參閱 提示詞工程指導方針

選擇與您選擇的方法相對應的選項卡,然後按照步驟操作。

Console

請依照中的主控台步驟執行查詢知識庫並傳回結果或產生回應。在測試視窗中,開啟 [產生回應]。然後,在「規劃」窗格中,展開「護欄」區段。

  1. 在「護欄」區段中,選擇護欄的「名稱」和「版本」。如果您想查看所選護欄和版本的詳細資訊,請選擇 [檢視]。

    或者,您可以透過選擇護欄連結來建立新的護欄

  2. 完成編輯後,請選擇 Save changes (儲存變更)。若要結束而不儲存,請選擇捨棄變更

API

當您提出RetrieveAndGenerate請求時,請在中包含guardrailsConfiguration欄位,以generationConfiguration便將護欄與請求搭配使用。若要查看此欄位的位置,請參閱 API 參考中的RetrieveAndGenerate要求主體。

下列 JSON 物件顯示在中設定所需的GenerationConfiguration最小欄位guardrailsConfiguration

"generationConfiguration": { "guardrailsConfiguration": { "guardrailsId": "string", "guardrailsVersion": "string" } }

指定所選護欄guardrailsVersionguardrailsId和。