使用護欄選擇性地評估使用者輸入的標籤 - Amazon Bedrock

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

使用護欄選擇性地評估使用者輸入的標籤

輸入標籤允許您標記要由護欄處理的輸入文本中的特定內容。當您要將護欄套用至輸入的某些部分,同時保持其他零件未處理時,此功能非常有用。

例如,RAG 應用程式中的輸入提示可能包含系統提示、來自信任文件來源的搜尋結果,以及使用者查詢。由於系統提示是由開發人員提供,搜尋結果來自可信來源,因此您可能只需要對使用者查詢進行 Guardrails 評估即可。

在另一個範例中,交談式應用程式中的輸入提示可能包含系統提示、交談歷程記錄和目前使用者輸入。系統提示是開發人員特定的指示,對話歷史記錄包含 Guardrails 可能已評估的歷史使用者輸入和模型回應。對於這種情況,您可能只想評估當前的用戶輸入。

通過使用輸入標籤,您可以更好地控制 Guardrails 應該處理和評估輸入提示的哪些部分,從而確保您的保護措施是根據您的用例定制的。這也有助於提高性能並降低成本,因為您可以靈活地評估相對較短且相關的輸入部分,而不是整個輸入提示。

護欄的標籤內容

若要標記要處理的護欄的內容,請使用結合保留字首和自訂字首的 XML 標籤。tagSuffix例如:

{ "inputText": """ You are a helpful assistant. Here is some information about my account: - There are 10,543 objects in an S3 bucket. - There are no active EC2 instances. Based on the above, answer the following question: Question: <amazon-bedrock-guardrails-guardContent_xyz> How many objects do I have in my S3 bucket? </amazon-bedrock-guardrails-guardContent_xyz> ... Here are other user queries: ≪amazon-bedrock-guardrails-guardContent_xyz> How do I download files from my S3 bucket? ≪/amazon-bedrock-guardrails-guardContent_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz" } }

在前面的例子中,內容 「我的 S3 存儲桶中有多少個對象? `和 "" 如何從 S3 儲存貯體下載檔案? 「 為使用標籤處理護欄加上標籤。<amazon-bedrock-guardrails-guardContent_xyz>請注意,前綴amazon-bedrock-guardrails-guardContent由護欄保留。

標籤字尾

標籤字尾 (xyz在前面的範例中) 是您必須在中的tagSuffix欄位中提供才能使用輸入標籤的動態值。amazon-bedrock-guardrailConfig這有助於減輕潛在的快速插入攻擊,使標籤結構無法預測。靜態標籤可導致惡意使用者關閉 xml 標籤,並在標籤關閉後附加惡意內容,進而導致插入攻擊。您只能使用長度在 1 到 20 個字元 (含) 之間的英數字元。使用示例後綴xyz,您必須使用帶有後綴:<amazon-bedrock-guardrails-guardContent_xyz>. 和內容的 xml 標籤來包含所有要保護的內容。</amazon-bedrock-guardrails-guardContent_xyz>我們建議為每個請求使UUID用動態作為標籤尾碼

多個標籤

您可以在輸入文字中多次使用相同的標籤結構,以標記內容的不同部分以進行護欄處理。不允許嵌套標籤。

未標記的內容

護欄不會處理輸入標籤以外的任何內容。這使您可以包含說明,示例對話,知識庫或其他您認為安全且不希望被 Guardrails 處理的內容。如果輸入提示中沒有標籤,則護欄將處理完整的提示。唯一的例外是需要輸入標籤存在的迅速攻擊過濾器。