本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
包含具有 Converse 的護欄 API
您可以使用 guardrail 來保護您使用 Converse 建立的對話應用程式API。例如,如果您使用 Converse 建立聊天應用程式API,您可以使用護欄來封鎖使用者輸入的不適當內容,以及模型產生的不適當內容。如需 Converse 的相關資訊API,請參閱 與 Converse API操作進行對話。
API 使用護欄呼叫 Converse
若要使用護欄,在呼叫 Converse 或 ConverseStream(用於串流回應) 操作時,您會包含護欄的組態資訊。或者,您可以在您要護欄評估的訊息中選取特定內容。如需有關可與護欄和 Converse 搭配使用的模型的資訊API,請參閱 支援的模型和模型功能。
設定 guardrail 以使用 Converse API
您可以在guardrailConfig
輸入參數中指定護欄的組態資訊。組態包含您要使用的 ID 和護欄版本。您也可以啟用 guardrail 的追蹤,提供 guardrail 封鎖內容的相關資訊。
透過 Converse
操作, guardrailConfig
是一個GuardrailConfiguration物件,如下列範例所示。
{ "guardrailIdentifier": "
Guardrail ID
", "guardrailVersion": "Guardrail version
", "trace": "enabled" }
如果您使用 ConverseStream
,則會傳遞GuardrailStreamConfiguration物件。或者,您可以使用 streamProcessingMode
欄位來指定您希望模型在傳回串流回應區塊之前完成護欄評估。或者,您可以讓模型以非同步方式回應,同時在背景繼續其評估。如需詳細資訊,請參閱設定串流回應行為以篩選內容。
使用 保護訊息以評估有害內容 APIs
當您將訊息 (訊息 ) 傳遞至模型時,護欄會評估訊息中的內容。或者,您也可以指定 guardContent
(GuardrailConverseContentBlock) 欄位來保護訊息中選取的內容。護欄只會評估guardContent
欄位中的內容,而不是訊息的其餘部分。這對於讓護欄僅評估對話中最多的訊息很有用,如下列範例所示。
[ { "role": "user", "content": [ { "text": "Create a playlist of 2 pop songs." } ] }, { "role": "assistant", "content": [ { "text": " Sure! Here are two pop songs:\n1. \"Bad Habits\" by Ed Sheeran\n2. \"All Of The Lights\" by Kanye West\n\nWould you like to add any more songs to this playlist? " } ] }, { "role": "user", "content": [ { "guardContent": { "text": { "text": "Create a playlist of 2 heavy metal songs." } } } ] } ]
另一種用途是為訊息提供額外的內容,而不讓護欄評估該額外內容。
[ { "role": "user", "content": [ { "text": "Only answer with a list of songs." }, { "guardContent": { "text": { "text": "Create a playlist of heavy metal songs." } } } ] } ]
注意
使用 guardContent
欄位類似於搭配 InvokeModel和 使用輸入標籤InvokeModelWithResponseStream。如需詳細資訊,請參閱將標籤套用至使用者輸入以篩選內容。
保護傳送至 Converse 的系統提示 API
您可以搭配傳送至 Converse 的系統提示來使用護欄API。若要保護系統提示,請在系統提示中指定您傳遞給 的 guardContent
(SystemContentBlock) 欄位API,如下列範例所示。
[ { "guardContent": { "text": { "text": "Only respond with Welsh heavy metal songs." } } } ]
如果您不提供 guardContent
欄位,防護欄不會評估系統提示訊息。
訊息和系統提示防護機制行為
Guardrail 如何評估您在訊息中傳遞的系統提示和訊息之間的guardContent
欄位行為。
系統提示具有 Guardrail 區塊 | 系統提示沒有 Guardrail 區塊 | |
---|---|---|
訊息具有 Guardrail 區塊 |
系統:Guardrail 調查 Guardrail 區塊中的內容 訊息:Guardrail 調查 Guardrail 區塊中的內容 |
系統:Guardrail 不會調查任何內容 訊息:Guardrail 調查 Guardrail 區塊中的內容 |
訊息沒有 Guardrail 區塊 |
系統:Guardrail 調查 Guardrail 區塊中的內容 訊息:Guardrail 會調查所有項目 |
系統:Guardrail 不會調查任何內容 訊息:Guardrail 會調查所有項目 |
使用 Converse 時處理回應 API
當您呼叫 Converse 操作時,護欄會評估您傳送的訊息。如果護欄偵測到封鎖的內容,會發生以下情況。
回應中的
stopReason
欄位設定為guardrail_intervened
。-
如果您啟用追蹤,追蹤可在
trace
(ConverseTrace) 欄位中使用。使用 時ConverseStream
,追蹤位於操作傳回的中繼資料 (ConverseStreamMetadataEvent) 中。 -
您在護欄中設定的封鎖內容文字會在
output
(ConverseOutput) 欄位中傳回。ConverseStream
封鎖的內容文字位於串流訊息中。
下列部分回應顯示封鎖的內容文字和來自護欄評估的追蹤。護欄已封鎖訊息中的重金屬一詞。
{ "output": { "message": { "role": "assistant", "content": [ { "text": "Sorry, I can't answer questions about heavy metal music." } ] } }, "stopReason": "guardrail_intervened", "usage": { "inputTokens": 0, "outputTokens": 0, "totalTokens": 0 }, "metrics": { "latencyMs": 721 }, "trace": { "guardrail": { "inputAssessment": { "3o06191495ze": { "topicPolicy": { "topics": [ { "name": "Heavy metal", "type": "DENY", "action": "BLOCKED" } ] }, "invocationMetrics": { "guardrailProcessingLatency": 240, "usage": { "topicPolicyUnits": 1, "contentPolicyUnits": 0, "wordPolicyUnits": 0, "sensitiveInformationPolicyUnits": 0, "sensitiveInformationPolicyFreeUnits": 0, "contextualGroundingPolicyUnits": 0 }, "guardrailCoverage": { "textCharacters": { "guarded": 39, "total": 72 } } } } } } } }
Converse API與 guardrails 搭配使用的範例程式碼
此範例說明如何保護與 Converse
和 ConverseStream
操作的對話。此範例顯示如何防止模型建立包含重金屬類型歌曲的播放清單。
保護對話
-
遵循 的指示建立護欄建立護欄。在步驟 6a 中,輸入下列資訊以建立拒絕的主題:
-
名稱 – 輸入重金屬 。
-
主題的定義 – 輸入 避免提及來自重金屬音樂類型的歌曲。
-
新增範例片語 – 輸入建立重金屬歌曲的播放清單。
在步驟 9 中,輸入下列項目:
-
針對封鎖提示顯示的訊息 – 輸入對不起,我無法回答有關重金屬音樂的問題。
-
用於封鎖回應的訊息 – 輸入對不起,模型產生了提及重金屬音樂的答案。
您可以設定其他護欄選項,但此範例不需要。
-
-
遵循 的指示建立護欄版本建立護欄版本。
-
在下列程式碼範例 (Converse 和 ConverseStream) 中,設定下列變數:
guardrail_id
– 您在步驟 1 中建立的護欄 ID。guardrail_version
– 您在步驟 2 中建立的護欄版本。text
– 使用Create a playlist of heavy metal songs.
-
執行程式碼範例。輸出應顯示護欄評估和輸出訊息
Text: Sorry, I can't answer questions about heavy metal music.
。護欄輸入評估顯示模型在輸入訊息中偵測到重金屬一詞。 -
(選用) 透過將 的值變更為列出所有類型的搖滾音樂
text
,測試護欄封鎖模型產生的不適當文字。 再次執行範例。您應該會在回應中看到輸出評估。