本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將標籤套用至使用者輸入以篩選內容
輸入標籤可讓您在您要由防護機制處理的輸入文字中標記特定內容。當您想要將防護機制套用至輸入的特定部分,同時讓其他部分處於未處理狀態時,這會很有用。
例如,RAG 應用程式中的輸入提示可能包含系統提示、信任文件來源的搜尋結果,以及使用者查詢。由於系統提示是由開發人員提供,而搜尋結果來自信任的來源,您可能只需要對使用者查詢進行防護機制評估。
在另一個範例中,對話應用程式中的輸入提示可能包含系統提示、對話歷史記錄和目前的使用者輸入。系統提示是開發人員特定的指示,對話歷史記錄包含可能已由防護機制評估的歷史使用者輸入和模型回應。對於這類案例,您可能只需要評估目前的使用者輸入。
透過使用輸入標籤,您可以更妥善控制防護機制應處理及評估輸入提示的哪些部分,確保您的保護措施根據您的使用案例進行自訂。這也有助於改善效能及降低成本,因為您可以靈活地評估相對較短且相關的輸入區段,而不是整個輸入提示。
標記防護機制的內容
若要標記要處理的防護機制內容,請使用 XML 標籤,這是預留字首和自訂 tagSuffix 的組合。例如:
{ "text": """ 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) 是您必須在 amazon-bedrock-guardrailConfig 的 tagSuffix 欄位中提供才能使用輸入標記的動態值。建議針對每個請求使用新的隨機字串做為 tagSuffix。這有助於透過使標籤結構無法預測來緩解潛在的提示注入攻擊。靜態標籤可能會導致惡意使用者關閉 XML 標籤,並在標籤關閉後附加惡意內容,進而造成注入攻擊。您僅限於英數字元,長度介於 1 到 20 個字元之間。透過範例尾碼 xyz,您必須使用 XML 標籤與尾碼括住要保護的所有內容:<amazon-bedrock-guardrails-guardContent_xyz>您的內容</amazon-bedrock-guardrails-guardContent_xyz>。建議您為每個請求使用動態唯一識別符做為標籤尾碼。
多個標籤
您可以在輸入文字中使用相同的標籤結構多次,以標記內容的不同部分來進行防護機制處理。不允許巢狀化標籤。
未標記的內容
輸入標籤外部的內容不會透過防護機制處理。這可讓您包含指示、範例對話、知識庫,或您認為安全且不想透過防護機制處理的其他內容。如果輸入提示中沒有標籤,則防護機制會處理完整的提示。唯一的例外是需要有輸入標籤的 使用 Amazon Bedrock 防護機制偵測提示攻擊 篩選條件。