測試護欄 - Amazon Bedrock

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

測試護欄

建立護欄後,即可使用工作草稿DRAFT) 版本。工作草稿是護欄的版本,您可以持續編輯和迭代,直到您達到滿意的使用案例組態為止。您可以測試 Guardrail 的工作草稿或其他版本,以查看組態是否適合您的使用案例。編輯工作草稿中的組態,並測試不同的提示,以查看護欄評估和攔截提示或回應的程度。

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

Console
測試護欄,查看是否封鎖有害內容
  1. AWS Management Console 使用IAM具有 Amazon Bedrock 許可 的角色登入 ,並在 開啟 Amazon Bedrock 主控台https://console.aws.amazon.com/bedrock/

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

  3. 測試視窗會出現在右側。您可以在測試視窗中使用下列選項:

    1. 依預設, Guardrail 的工作草稿會在測試視窗中使用。若要測試不同版本的護欄,請選擇測試視窗頂端的工作草稿,然後選擇版本。

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

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

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

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

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

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

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

API

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

請求格式

使用和不使用串流叫用模型的請求端點如下所示。Replace (取代) modelId 使用模型的 ID。

  • InvokeModel – POST /model/modelId/叫用 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 使用您要套用至請求和模型回應之 guardrail 的 Guardrail 識別符進行設定。

  • X-Amzn-Bedrock-GuardrailVersion 使用您要套用至請求和模型回應的護欄版本進行設定。

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

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

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

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

  • 您會停用 guardrail,但在請求內文中指定amazon-bedrock-guardrailConfig欄位。

  • 您可以啟用 guardrail,但 contentType不是 application/json

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

注意

用於 Cohere Command 模型,如果您使用 guardrail,您只能在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"] } } }

如果您啟用 guardrail,回應會傳回下列欄位。

  • amazon-bedrock-guardrailAction – 指定護欄是否 INTERVENEDNONE)。

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

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

    • input – 包含下列有關 guardrail 評估提示的詳細資訊:

      • 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 – 有關 guardrail 對模型回應評估的詳細資訊清單。清單中的每個項目都是符合物件格式的input物件。如需詳細資訊,請參閱 input 欄位。