

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

# 查詢知識庫並擷取資料
<a name="kb-test-retrieve"></a>

**重要**  
防護機制只會套用至輸入和從 LLM 產生的回應。它們不會套用至執行時期從知識庫擷取的參考。

設定知識庫之後，您可以查詢知識庫，以及使用 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) API 操作，從與查詢相關的來源資料中查詢和擷取區塊。您也可以[使用重新排名模型](rerank.md)，而不是預設的 Amazon Bedrock 知識庫排名器，在擷取期間對來源區塊進行相關性排名。

若要了解如何查詢知識庫，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

------
#### [ Console ]

**若要測試您的知識庫**

1.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 在左側導覽窗格中選擇**知識庫**。

1. 在**知識庫**區段中，執行下列其中一個動作：
   + 選擇您要測試的知識庫旁的選項按鈕，然後選取**測試知識庫**。測試視窗從右側展開。
   + 選擇您要測試的知識庫。測試視窗從右側展開。

1. 在測試視窗中，清除**產生查詢的回應**，以傳回直接從您的知識庫擷取的資訊。

1. (選用) 選取組態圖示 (![Icon showing three horizontal sliders at different positions for adjusting settings.](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/icons/configurations.png)) 以開啟**組態**。如需組態的詳細資訊，請參閱 [設定和自訂查詢和回應產生](kb-test-config.md)。

1. 在聊天視窗的文字方塊中輸入查詢，然後選取**執行**以傳回知識庫的回應。

1. 來源區塊會依相關性順序直接傳回。從資料來源擷取的影像也可以傳回為來源區塊。

1. 若要查看傳回區塊的詳細資訊，請選取**顯示來源詳細資訊**。
   + 若要查看您為查詢設定的組態，請展開**查詢組態**。
   + 若要檢視來源區塊的詳細資訊，請選擇其旁邊的向右箭頭 (![Right-pointing filled caret icon.](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/icons/caret-right-filled.png)) 來展開它。您可以看到下列資訊：
     + 來源區塊的原始文字。若要複製此文字，請選擇複製圖示 (![Copy icon represented by two overlapping documents.](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/icons/copy.png))。如果您使用 Amazon S3 存放資料，請選擇外部連結圖示 (![Icon of a square with an arrow pointing outward from its top-right corner.](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/icons/external.png)) 以導覽至包含該檔案的 S3 物件。
     + 如果您使用 Amazon S3 存放資料，則為與來源區塊相關聯的中繼資料。屬性/欄位索引鍵和值是在與來源文件相關聯的 `.metadata.json` 檔案中定義。如需詳細資訊，請參閱 [設定和自訂查詢和回應產生](kb-test-config.md) 中的**中繼資料和篩選**區段。

**聊天選項**
+ 切換以透過開啟**產生回應**，以根據擷取的來源區塊來產生回應。如果您變更設定，聊天視窗中的文字將全部清除。
+ 若要清除聊天視窗，請選取掃帚圖示 (![Broom icon representing cleaning or clearing functionality.](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/icons/broom.png))。
+ 要複製聊天視窗中的所有輸出，請選取複製圖示 (![Copy icon represented by two overlapping documents.](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/icons/copy.png))。

------
#### [ API ]

若要查詢知識庫並僅從資料來源傳回相關文字，請使用 [Amazon Bedrock 代理人執行時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)傳送 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) 請求。

下列是必要欄位：


****  

| 欄位 | 基本描述 | 
| --- | --- | 
| knowledgeBaseId | 指定要查詢的知識庫。 | 
| retrievalQuery | 包含指定查詢的 text 欄位。 | 
| guardrailsConfiguration | 包含 guardrailsConfiguration 欄位，例如 guardrailsId 和 guardrailsVersion，以搭配請求使用您的防護機制 | 

以下是選填欄位:


****  

| 欄位 | 使用案例 | 
| --- | --- | 
| nextToken | 若要傳回下一批次的回應 (請參閱下方的回應欄位)。 | 
| retrievalConfiguration | 包含用於自訂向量搜尋的[查詢組態](kb-test-config.md)。如需詳細資訊，請參閱 [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html)。 | 

您可以透過在 [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html) 中包含 `rerankingConfiguration` 欄位，在預設 Amazon Bedrock 知識庫排名模型上使用重新排名模型。`rerankingConfiguration` 欄位會對應至 [VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html) 物件，您可以在其中指定要使用的重新排名模型、要包含的任何其他請求欄位、在重新排名期間篩選掉文件的中繼資料屬性，以及重新排名後要傳回的結果數目。如需詳細資訊，請參閱 [VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html)。

**注意**  
如果您指定的 `numberOfRerankedResults` 值大於 [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html) 中的 `numberOfResults` 值，傳回的結果數目上限將會是 `numberOfResults` 的值。例外情況是，如果您使用查詢分解 (如需詳細資訊，請參閱 [設定和自訂查詢和回應產生](kb-test-config.md) 中的**查詢修改**一節。如果您使用查詢分解，則 `numberOfRerankedResults` 最多可達 `numberOfResults` 的五倍。

回應會傳回來自資料來源的來源區塊，作為 `retrievalResults` 欄位中 [KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html) 物件的陣列。每個 [KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html) 都包含下列欄位：


****  

| 欄位 | 說明 | 
| --- | --- | 
| 內容 | 在 text 中包含文字來源區塊，或在 byteContent 欄位中包含影像來源區塊。如果內容是影像，則會以下列格式傳回 Base64 編碼內容的資料 URI：data:image/jpeg;base64,{{${base64-encoded string}}}。 | 
| 中繼資料 | 包含每個中繼資料屬性作為索引鍵，而中繼資料值作為索引鍵對應的 JSON 值。 | 
| location | 包含來源區塊所屬文件的 URI 或 URL。 | 
| 分數 | 文件的關聯性分數。您可以使用此分數來分析結果的排名。 | 

如果來源區塊的數量超過回應中可以容納的數量，則會在 `nextToken` 欄位中傳回值。在另一個請求中使用該值來傳回下一批結果。

如果擷取的資料包含影像，回應也會傳回下列回應標頭，其中包含回應中傳回的來源區塊中繼資料：
+ `x-amz-bedrock-kb-byte-content-source` – 包含影像的 Amazon S3 URI。
+ `x-amz-bedrock-kb-description` – 包含影像的 Base64 編碼字串。

**注意**  
您無法在[設定中繼資料篩選條件](kb-test-config.md)時篩選這些中繼資料回應標頭。

**多模式查詢**  
對於使用多模式內嵌模型的知識庫，您可以使用文字或影像進行查詢。`retrievalQuery` 欄位支援影像查詢`multimodalInputList`的欄位：

**注意**  
如需設定和使用多模式知識庫的完整指引，包括在 Nova 和 BDA 方法之間進行選擇，請參閱 [建立多模態內容的知識庫](kb-multimodal.md)。

您可以使用 `multimodalInputList` 欄位查詢映像：

```
{
    "knowledgeBaseId": "EXAMPLE123", 
    "retrievalQuery": {
        "multimodalInputList": [
            {
                "content": {
                    "byteContent": "base64-encoded-image-data"
                },
                "modality": "IMAGE"
            }
        ]
    }
}
```

或者，您只能使用 `text` 欄位來查詢文字：

```
{
    "knowledgeBaseId": "EXAMPLE123",
    "retrievalQuery": {
        "text": "Find similar shoes"
    }
}
```

**常見的多模式查詢模式**  
以下是一些常見的查詢模式：

Image-to-image搜尋  
上傳映像以尋找視覺效果相似的映像。範例：上傳紅色 Nike 鞋子的相片，在您的產品目錄中尋找類似的鞋子。

文字型搜尋  
使用文字查詢來尋找相關內容。範例：「尋找類似的鞋子」，使用文字描述來搜尋您的產品目錄。

視覺化文件搜尋  
搜尋文件中的圖表、圖表或視覺元素。範例：上傳圖表影像以在文件集合中尋找類似的圖表。

**在 Nova 和 BDA 之間選擇多模態內容**  
使用多模式內容時，請根據您的內容類型和查詢模式選擇您的方法：


**Nova 與 BDA 決策矩陣**  

| 內容類型 | 使用 Nova 多模態內嵌 | 使用 Bedrock 資料自動化 (BDA) 剖析器 | 
| --- | --- | --- | 
| 影片內容 | 視覺說故事焦點 （運動、廣告、示範）、視覺元素的查詢、最少的語音內容 | 重要的語音/敘述 （簡報、會議、教學課程）、對口語內容的查詢、需要文字記錄 | 
| 音訊內容 | 音樂或音效識別、非語音音訊分析 | 播客、採訪、會議、任何需要轉錄的語音內容 | 
| 影像內容 | 視覺相似性搜尋、image-to-image擷取、視覺內容分析 | 從影像擷取文字、文件處理、OCR 要求 | 

**注意**  
Nova 多模式內嵌無法直接處理語音內容。如果您的音訊或影片檔案包含重要的口語資訊，請使用 BDA 剖析器先將語音轉換為文字，或改為選擇文字內嵌模型。

**多模式查詢限制**  
以下是多模式查詢的一些限制：
+ 目前版本中的每個查詢最多一個映像
+ 映像查詢僅支援多模式內嵌模型 (Titan G1 或 Cohere Embed v3)
+ 具有多模式內嵌模型和 S3 內容儲存貯體的知識庫不支援 RetrieveAndGenerate API
+ 如果您使用純文字內嵌模型將映像查詢提供給知識庫，則會傳回 4xx 錯誤

**多模式 API 回應結構**  
擷取多模態內容的回應包含其他中繼資料：
+ **來源 URI：**指向原始 S3 儲存貯體位置
+ **補充 URI：**指向多模式儲存貯體中的複本
+ **時間戳記中繼資料：**包含於視訊和音訊區塊，以啟用精確的播放位置

**注意**  
使用 API 或 SDK 時，您需要在應用程式中處理檔案擷取和時間戳記導覽。主控台會透過增強型影片播放和自動時間戳記導覽來自動處理此問題。

------

**注意**  
如果您在產生回應時收到提示超過字元限制的錯誤，您可以使用下列方式縮短提示：  
減少擷取結果的數目上限 (這會縮短 [知識庫提示範本：協調和產生](kb-test-config.md#kb-test-config-prompt-template) 中 $search\_results$ 預留位置的填入內容)。
以使用較小區塊的分塊策略重新建立資料來源 (這會縮短 [知識庫提示範本：協調和產生](kb-test-config.md#kb-test-config-prompt-template) 中 $search\_results$ 預留位置的填入內容)。
縮短提示範本。
縮短使用者查詢 (這會縮短 [知識庫提示範本：協調和產生](kb-test-config.md#kb-test-config-prompt-template) 中 $query$ 預留位置的填入內容)。