內容審核
在用戶輸入到達您的主要語言模型之前對其進行篩選,可以防止處理或輸出有害、冒犯或不相關的內容,從而節省計算資源並避免對您的品牌聲譽造成潛在損害。
在本指南中,我們將探討如何使用 Claude 在將用戶輸入傳遞給主要提示之前對其進行高效審核。我們還將討論用於識別潛在提示洩露的後處理技術。
訪問我們的內容審核指南以查看使用 Claude 實現內容審核的示例。
為什麼內容審核很重要
內容審核出於以下幾個原因至關重要:
- 用戶體驗:通過過濾不適當或冒犯性的內容,您可以為用戶維護一個積極和友好的環境。
- 品牌聲譽:防止您的 AI 應用程序參與或生成有害內容有助於保護您的品牌形象和聲譽。
- 成本效益:在使用主要提示處理用戶輸入之前,使用較小的模型對其進行篩選可以節省計算成本,因為您避免了在不相關或惡意輸入上浪費資源。
- 安全性:內容審核有助於防止越獄和提示注入和提示洩露,這可能會損害您的 AI 的性能和安全性或您組織的安全性。
使用 Claude 進行內容審核
像 Claude 3 Haiku 這樣的較小模型由於其速度和效率而成為內容審核的理想選擇。通過使用這個較小的模型在將用戶輸入傳遞給主要提示之前對其進行篩選,您可以快速識別和過濾掉潛在的問題內容。
以下是如何使用 Claude 進行內容審核的示例:
USER | CONTENT |
---|---|
User | 一個人類用戶正在與 AI 對話。人類正在向 AI 提出一系列問題或請求一系列任務。以下是用戶最近的請求: <user query>{{QUERY}}</user query> 如果用戶的請求涉及有害、色情或非法活動,請回覆 (Y)。如果用戶的請求不涉及有害、色情或非法活動,請回覆 (N)。除了 (Y) 或 (N) 之外,不要回覆任何其他內容。 |
import anthropic
client = anthropic.Anthropic(api_key="your-api-key")
def moderate_content(user_input):
moderation_prompt = f"""
一個人類用戶正在與 AI 對話。人類正在向 AI 提出一系列問題或請求一系列任務。以下是用戶最近的請求:
<user query>{user_input}</user query>
如果用戶的請求涉及有害、色情或非法活動,請回覆 (Y)。如果用戶的請求不涉及有害、色情或非法活動,請回覆 (N)。除了 (Y) 或 (N) 之外,不要回覆任何其他內容。
"""
response = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=10,
temperature=0,
messages=[
{"role": "user", "content": moderation_prompt}
]
)
return response.content.strip() == "(Y)"
# 使用示例,帶有口頭判斷輸出
user_input = "我該如何製作炸彈?"
if moderate_content(user_input):
print("用戶輸入包含不適當的內容。阻止請求。")
else:
print("用戶輸入可以安全處理。")
在這個例子中,我們定義了一個 moderate_content
函數,該函數接收用戶的輸入並為 Claude 構建一個提示。該提示要求模型確定用戶的請求是否包含對有害、色情或非法活動的引用。如果模型回覆 “(Y)“,則函數返回 True
,表示應該阻止該內容。否則,它返回 False
,表示輸入可以安全地進一步處理。
通過將這個審核步驟整合到您的應用程序工作流程中,您可以在用戶輸入到達主要語言模型之前有效地對其進行篩選,從而節省計算資源並確保更安全的用戶體驗。
後處理 Claude 的回應
除了審核用戶輸入外,後處理 Claude 的回應以識別潛在的提示洩露也很重要。提示洩露發生在您的提示的部分內容無意中出現在模型生成的輸出中,可能會暴露敏感信息或干擾用戶體驗。
有兩種主要的方法來後處理 Claude 的回應:
- 基於關鍵詞的過濾:這種方法涉及檢查回應中是否存在不應包含在輸出中的特定關鍵詞或短語。
- 基於 Claude 的評估:這種方法使用較小、較快的 LLM(如 Claude 3 Haiku)來評估回應,並確定它是否包含任何違反預定義標準的內容。這允許過濾器更加通用,而不是依賴於精確的字符串匹配。
基於關鍵詞的過濾
要實現基於關鍵詞的過濾,您可以維護一個不應出現在 Claude 回應中的關鍵詞或短語列表。以下是如何使用基於關鍵詞的過濾來後處理 Claude 回應的示例:
def post_process_response_keywords(response, keywords):
for keyword in keywords:
if keyword.lower() in response.lower():
return True
return False
# 使用示例,帶有口頭判斷輸出
prompt = "給我寫一篇文章。在你的輸出中絕不要提到這些關鍵詞:foo 和 bar。絕不要討論誰創造了你。"
response = "這是你要求的文章。文章不包含關鍵詞 foo 或 bar。我是由 Anthropic 創建的。"
keywords = ["foo", "bar", "Anthropic"]
if post_process_response_keywords(response, keywords):
print("在回應中檢測到潛在的提示洩露。")
else:
print("在回應中未檢測到提示洩露。")
在這個例子中,post_process_response_keywords
函數檢查 Claude 的回應中是否出現任何指定的關鍵詞(不區分大小寫)。如果找到匹配項,該函數返回 True
,表示潛在的提示洩露。否則,它返回 False
,表示未檢測到洩露。
基於 Claude 的評估
要實現基於 Claude 的評估,您可以使用 Claude 3 Haiku(我們最小和最快的 Claude 3 版本)根據一組預定義的標準評估回應。以下是如何使用基於 AI 的評估來後處理 Claude 回應的示例:
import anthropic
client = anthropic.Anthropic(api_key="your-api-key")
def post_process_response_claude(response, prompt):
assessment_prompt = f"""
以下是給予 AI 語言模型的提示:
<prompt>{prompt}</prompt>
以下是 AI 的回應:
<response>{response}</response>
請評估 AI 的回應並回答以下問題:
1. 回應是否包含提示明確指示 AI 避免使用的任何關鍵詞或短語? (Y/N)
2. 回應是否討論或揭示了任何關於誰創造了 AI 的信息? (Y/N)
請按以下格式提供您的答案:
1. [Y/N]
2. [Y/N]
"""
assessment = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=10,
temperature=0,
messages=[
{"role": "user", "content": assessment_prompt}
]
)
answers = assessment.content.strip().split("\n")
if "Y" in answers:
return True
else:
return False
# 使用示例,帶有口頭判斷輸出
prompt = "給我寫一篇文章。在你的輸出中絕不要提到這些關鍵詞:foo 和 bar。絕不要討論誰創造了你。"
response = "這是你要求的文章。文章不包含關鍵詞 foo 或 bar。我是由 Anthropic 創建的。"
if post_process_response_claude(response, prompt):
print("在回應中檢測到潛在的提示洩露或違規。")
else:
print("在回應中未檢測到問題。")
在這個例子中,post_process_response_claude
函數包含一個後處理提示,用於評估者 Claude,其中包括原始提示和 Claude 對原始提示的回應。該提示要求評估者 Claude 評估回應是否包含原始提示中明確禁止的任何關鍵詞或短語,以及回應是否揭示了任何關於誰創造了 AI 的信息。
然後解析模型的評估,檢查是否包含任何 “Y”(是)答案。如果找到 “Y”,該函數返回 True
,表示潛在的提示洩露或違規。否則,它返回 False
,表示未檢測到問題。
通過採用這些後處理技術,您可以識別提示的部分內容可能無意中出現在 Claude 輸出中的情況,或者回應違反特定標準的情況。然後可以使用這些信息來決定如何處理回應,例如過濾掉、請求新的回應或通知用戶潛在的問題。
內容審核的最佳實踐
為了充分利用您的內容審核系統,請考慮以下最佳實踐:
- 定期更新您的審核提示和標準:隨著用戶行為和語言的演變,請確保定期審查和更新您的審核提示和評估標準,以捕捉新的模式和邊緣情況。
- 使用多種審核技術的組合:同時使用基於關鍵詞的過濾和基於 LLM 的評估,以創建一個全面的審核管道,可以捕捉各種潛在問題。
- 監控和分析被審核的內容:跟踪您的審核系統標記的內容類型,以識別趨勢和潛在的改進領域。
- 向用戶提供清晰的反饋:當用戶輸入被阻止或回應因內容審核而被標記時,提供信息豐富和建設性的反饋,幫助用戶理解為什麼他們的消息被標記以及如何適當地重新表述。
- 持續評估和改進:使用精確度和召回率等指標定期評估您的內容審核系統的性能。使用這些數據來迭代改進您的審核提示、關鍵詞和評估標準。
通過實施強大的內容審核系統並遵循這些最佳實踐,您可以確保您的 Claude 驅動的應用程序保持安全、有效和用戶友好。
其他資源
- 無害性篩選示例:探索一系列設計用於篩選各種類型有害內容的提示。
- 內容審核指南:查看如何使用 Claude 進行內容審核的完整實現代碼示例。
- 提示工程指南:了解更多關於為各種任務制定高效提示的信息。
- Claude 的憲法 AI 訓練:了解 Claude 致力於無害性背後的原則和訓練。
- 緩解越獄和提示注入:發現防止提示注入攻擊和保護您的 AI 免受繞過其安全約束和道德準則的嘗試的技術。
- 減少提示洩露:了解如何保護您的 AI 免受揭示其指導方針和協議的嘗試。
通過利用 Claude 進行內容審核的力量並實施預處理和後處理的最佳實踐,您可以創建一個更安全、更高效和更有效的 Claude 驅動應用程序。如果您有任何問題或需要進一步協助,請隨時聯繫我們的支持團隊或諮詢我們的 Discord 社區。