測試您的防護機制 - Amazon Bedrock

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

測試您的防護機制

建立防護機制後,即可使用工作草稿 (DRAFT) 版本。工作草稿是防護機制的版本,您可以持續編輯和反覆執行,直到您達到滿意的使用案例組態為止。您可以測試工作草稿或其他版本的防護機制,確保組態符合您的使用案例需求。編輯工作草稿中的組態,並測試不同的提示,以查看防護機制評估及攔截提示或回應的程度。

當您對組態感到滿意時,可以建立防護機制的版本,做為建立版本時,工作草稿組態的快照。您可以在每次修改防護機制時,使用版本來簡化對生產應用程式的防護機制部署。除非您在應用程式中特別使用新版本,否則工作草稿或新建立版本的任何變更都不會反映在您的生成式 AI 應用程式中。

Console
測試防護機制,查看是否封鎖有害內容
  1. 使用具有 Amazon Bedrock 主控台使用許可的 IAM 身分登入AWS 管理主控台。接著,開啟位於 https://console.aws.amazon.com/bedrock 的 Amazon Bedrock 主控台。

  2. 從左側導覽窗格選擇防護機制。然後,在防護機制區段中選取防護機制。

  3. 右側隨即出現測試視窗。在測試視窗中,您有下列選項:

    1. 根據預設,在測試視窗中會使用防護機制的工作草稿。若要測試不同版本的防護機制,請選擇測試視窗頂端的工作草稿,然後選取版本。

    2. 若要選取模型,請選擇選取模型。進行選擇後,請選取套用。若要變更模型,請選擇變更

    3. 提示方塊中輸入提示。

    4. 若要引發模型回應,請選取執行

    5. 模型會在最終回應方塊中傳回回應 (可由防護機制修改)。如果防護機制封鎖或篩選提示或模型回應,則防護機制檢查下會顯示訊息,通知您偵測到防護機制多少違規。

    6. 若要檢視提示或回應中識別並允許超過篩選條件或遭篩選條件封鎖的主題或有害類別,請選取檢視追蹤

    7. 使用提示模型回應索引標籤來檢視由防護機制篩選出或封鎖的主題或有害類別。

您也可以在文字遊樂場中測試防護機制。選取遊樂場,並在測試提示之前,在組態窗格中選取防護機制

API

若要在模型調用中使用防護機制,請傳送 InvokeModelInvokeModelWithResponseStream 請求。或者,如果您要建置對話式應用程式,可以使用 Converse API

要求格式

使用和不使用串流調用模型的請求端點如下所示。將 modelId 取代為要使用的模型 ID。

  • InvokeModel – POST /model/modelId/invoke HTTP/1.1

  • InvokeModelWithResponseStream – POST /model/modelId/invoke-with-response-stream HTTP/1.1

兩個 API 操作的標頭格式如下。

Accept: accept Content-Type: contentType X-Amzn-Bedrock-Trace: trace X-Amzn-Bedrock-GuardrailIdentifier: guardrailIdentifier X-Amzn-Bedrock-GuardrailVersion: guardrailVersion

參數如下所述。

  • Accept 設定為回應中推論內文的 MIME 類型。預設值為 application/json

  • Content-Type 設定為請求中輸入資料的 MIME 類型。預設值為 application/json

  • X-Amzn-Bedrock-Trace 設定為 ENABLED 可啟用追蹤,以查看防護機制封鎖的內容及其原因。

  • 使用您要套用至請求和模型回應之防護機制的防護機制識別符來設定 X-Amzn-Bedrock-GuardrailIdentifier

  • 使用您要套用至請求和模型回應之防護機制的版本來設定 X-Amzn-Bedrock-GuardrailVersion

一般請求內文格式如下列範例所示。tagSuffix 屬性僅用於輸入標記。您也可以使用 streamProcessingMode 在串流上同步或非同步設定防護機制。這只能與 InvokeModelWithResponseStream 搭配使用。

{ <see model details>, "amazon-bedrock-guardrailConfig": { "tagSuffix": "string", "streamProcessingMode": "SYNCHRONOUS" | "ASYNCHRONOUS" } }
警告

在下列情況中,您會收到錯誤

  • 您可以啟用防護機制,但請求內文中沒有 amazon-bedrock-guardrailConfig 欄位。

  • 您可以停用防護機制,但要在請求內文中指定 amazon-bedrock-guardrailConfig 欄位。

  • 您可以啟用防護機制,但 contentType 不是 application/json

若要查看不同模型的請求內文,請參閱 基礎模型的推論請求參數和回應欄位

注意

對於 Cohere Command 模型,如果您使用防護機制,則只能在 num_generations 欄位中指定一代。

如果您啟用防護機制及其追蹤,不論是否使用串流,調用模型的回應一般格式如下。若要查看每個模型的其餘 body 的格式,請參閱 基礎模型的推論請求參數和回應欄位contentType 符合您在請求中指定的內容。

  • InvokeModel

    HTTP/1.1 200 Content-Type: contentType { <see model details for model-specific fields>, "completion": "<model response>", "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": [ "<see model details for model-specific fields>" ], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }
  • InvokeModelWithResponseStream – 每個回應都會傳回文字在 bytes 欄位中的 chunk,以及發生的任何例外狀況。防護機制追蹤只會針對最後一個區塊傳回。

    HTTP/1.1 200 X-Amzn-Bedrock-Content-Type: contentType Content-type: application/json { "chunk": { "bytes": "<blob>" }, "internalServerException": {}, "modelStreamErrorException": {}, "throttlingException": {}, "validationException": {}, "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": ["<see model details for model-specific fields>"], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }

如果您啟用防護機制,回應會傳回下列欄位。

  • amazon-bedrock-guardrailAction – 指定防護機制是否為 INTERVENED (NONE)。

  • amazon-bedrock-trace – 僅在您啟用追蹤時才會顯示。包含追蹤清單,每個追蹤都會提供防護機制所封鎖內容的相關資訊。追蹤包含下列欄位:

    • modelOutput – 包含已封鎖模型輸出的物件。

    • input – 包含下列有關防護機制提示評估的詳細資訊:

      • topicPolicy – 包含 topics,此為違反之每個主題政策的評估清單。每個主題包含以下欄位:

        • name – 主題政策的名稱。

        • type – 指定是否拒絕主題。

        • action – 指定主題已封鎖

      • contentPolicy – 包含 filters,此為違反之每個內容篩選條件的評估清單。每個篩選條件都包含下列欄位:

        • type – 內容篩選條件的類別。

        • confidence – 輸出可分類為屬於有害類別的可信度層級。

        • action – 指定內容已封鎖。此結果取決於防護機制中篩選條件集的強度。

      • wordPolicy – 包含所篩選出的自訂單字和受管單字的集合,以及對這些單字進行對應的評估。每個清單包含下列欄位:

        • customWords – 符合篩選條件的自訂單字清單。

          • match – 符合篩選條件的單字或片語。

          • action – 指定該單字已封鎖。

        • managedWordLists – 符合篩選條件的受管單字清單。

          • match – 符合篩選條件的單字或片語。

          • type – 指定符合篩選條件的受管單字類型。例如,如果符合褻瀆性篩選條件,則為 PROFANITY

          • action – 指定該單字已封鎖。

      • sensitiveInformationPolicy – 包含下列物件,其中包含違反個人身分識別資訊 (PII) 和 regex 篩選條件的評估:

        • piiEntities – 每個違反 PII 篩選條件的評估清單。每個篩選條件包含下列欄位:

          • type – 找到的 PII 類型。

          • match – 符合篩選條件的單字或片語。

          • action – 指定單字是否 BLOCKED 或取代為識別符 (ANONYMIZED)。

        • regexes – 每個違反 regex 篩選條件的評估清單。每個篩選條件包含下列欄位:

          • name – regex 篩選條件的名稱。

          • regex – 找到的 PII 類型。

          • match – 符合篩選條件的單字或片語。

          • action – 指定單字是否 BLOCKED 或取代為識別符 (ANONYMIZED)。

    • outputs – 有關防護機制對模型回應評估的詳細資訊清單。清單中的每個項目都是符合 input 物件格式的物件。如需詳細資訊,請參閱 input 欄位。