本指南將說明 Gemini API 提供的可調整安全設定。在原型設計階段,您可以在 4 個維度中調整安全設定,快速評估應用程式是否需要更多或更少的設定限制。根據預設,安全設定會封鎖在任何維度中中等或較高可能不安全的內容 (包括提示)。這項基準安全性適用於大多數用途,因此建議您只在應用程式持續需要時,再調整安全設定。
安全性篩選器
除了可調整的安全性篩選器以外,Gemini API 也提供內建的防護措施,可避免兒童安全的內容 (例如危害兒童安全的內容)。系統會一律封鎖這類傷害,而且無法調整。
可調整的安全性篩選器涵蓋下列類別:
- 騷擾
- 仇恨言論
- 煽情露骨內容
- 危險事物
這些設定可讓開發人員決定哪些項目適合您的使用情境。舉例來說,假設您要建構電玩遊戲對話方塊,或許可以表明可以允許更多因遊戲性質而標示為危險的內容。以下列舉幾個可能需要這些安全設定彈性的使用案例:
用途 | 類別 |
---|---|
反騷擾訓練應用程式 | 仇恨言論、煽情露骨內容 |
劇本作者 | 煽情露骨內容、危險事物 |
惡意內容分類器 | 騷擾、危險 |
機率與嚴重程度
Gemini API 會根據不安全內容的機率封鎖內容,而不是根據嚴重程度封鎖內容。請務必考量這點,因為即使有害的嚴重性仍很高,某些內容可能還是不太可能出現不安全。舉例來說,比較語句:
- 機器人把我打倒我。
- 機器人把我關起來了。
語句 1 可能較不安全,但您可以考慮將第 2 句話視為暴力的嚴重性較高。
有鑑於此,每位開發人員都必須仔細測試,並考量需要在支援主要用途時採用適當的封鎖層級,同時盡量降低對使用者的危害。
安全性設定
傳送至生成式服務的要求會包含安全性設定,您可以針對您向 API 發出的每個要求調整設定。下表列出您可以設定的類別,並說明各類別涵蓋的傷害類型。
類別 | 說明 |
---|---|
騷擾 | 針對特定身分和/或受保護特質發表負面或有害言論。 |
仇恨言論 | 粗魯無禮、不尊重或不雅用語的內容。 |
煽情露骨內容 | 提及性行為或其他猥褻情事的內容。 |
危險 | 宣傳、鼓吹或助長有害舉動。 |
這些定義請一併參閱 API 參考資料。Gemini 模型僅支援 HARM_CATEGORY_HARASSMENT
、HARM_CATEGORY_HATE_SPEECH
、HARM_CATEGORY_SEXUALLY_EXPLICIT
和 HARM_CATEGORY_DANGEROUS_CONTENT
。其他類別供 PaLM 2 (舊版) 模型使用。
下表說明您可以調整各類別的封鎖設定。舉例來說,如果您將「仇恨言論」類別的封鎖設定設為「封鎖少數」,我們就會封鎖很有可能為仇恨言論內容的所有內容。但系統允許機率較低的任何項目。
如果未設定,則所有類別的預設封鎖設定都是「封鎖部分類別」。
門檻 (Google AI Studio) | 閾值 (API) | 說明 |
---|---|---|
不封鎖任何項目 | BLOCK_NONE | 一律顯示不安全的內容 |
封鎖少數 | BLOCK_ONLY_HIGH | 在出現非常不安全的內容時封鎖 |
封鎖一些 | BLOCK_MEDIUM_AND_ABOVE | 針對中度或高度不安全的內容封鎖 |
封鎖多數 | BLOCK_LOW_AND_ABOVE | 針對低、中或高度不安全的內容封鎖 |
HARM_BLOCK_THRESHOLD_UNSPECIFIED | 未指定門檻,使用預設門檻進行封鎖 |
您可以針對傳送至生成式服務的每個要求,進行這些設定。
詳情請參閱 HarmBlockThreshold
API 參考資料。
安全性意見回饋
generateContent
會傳回 GenerateContentResponse
,其中包含安全性意見回饋。
promptFeedback
已包含提示意見回饋。如果設定了 promptFeedback.blockReason
,則提示內容會遭到封鎖。
回應候選意見回饋包含在 finishReason
和 safetyRatings
中。如果回應內容遭到封鎖,且 finishReason
是 SAFETY
,您可以檢查 safetyRatings
以瞭解詳情。安全評分包含類別和傷害分類的可能性。系統不會傳回遭封鎖的內容。
傳回的機率會對應至區塊可信度等級,如下表所示:
機率 | 說明 |
---|---|
不適用 | 內容極有可能不安全 |
低 | 內容可能不安全 |
中等 | 內容可能不安全 |
高 | 內容非常可能不安全 |
舉例來說,如果內容因騷擾類別的可能性很高而遭到封鎖,系統傳回的安全性評分類別就會等於 HARASSMENT
,危害機率則設為 HIGH
。
Google AI Studio 中的安全性設定
您也可以在 Google AI Studio 中調整安全設定,但無法將其關閉。方法是在「Run settings」中,按一下「Edit safety settings」:
並使用旋鈕調整各項設定:
如果內容遭封鎖,系統會顯示
「No Content」(沒有內容) 訊息。如要查看更多詳細資料,請將滑鼠遊標懸停在「No Content」(沒有內容) 上,然後按一下 「Safety」(安全)。程式碼範例
本節說明如何透過 Python 用戶端程式庫,在程式碼中使用安全設定。
要求範例
以下是 Python 程式碼片段,顯示如何在 GenerateContent
呼叫中設定安全性設定。這會將損害類別 Harassment
和 Hate speech
設為 BLOCK_LOW_AND_ABOVE
,以封鎖任何不太可能或較有可能構成騷擾或仇恨言論的內容。
from google.generativeai.types import HarmCategory, HarmBlockThreshold
model = genai.GenerativeModel(model_name='gemini-pro-vision')
response = model.generate_content(
['Do these look store-bought or homemade?', img],
safety_settings={
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
}
)
回應範例
以下程式碼片段用於剖析回應中的安全性意見回饋。
try:
print(response.text)
except ValueError:
# If the response doesn't contain text, check if the prompt was blocked.
print(response.prompt_feedback)
# Also check the finish reason to see if the response was blocked.
print(response.candidates[0].finish_reason)
# If the finish reason was SAFETY, the safety ratings have more details.
print(response.candidates[0].safety_ratings)
後續步驟
- 如要進一步瞭解完整 API,請參閱 API 參考資料。
- 請詳閱安全指南,瞭解使用 LLM 進行開發時的安全注意事項。
- 歡迎向 Jigsaw 團隊進一步瞭解如何評估機率與嚴重程度
- 進一步瞭解為安全解決方案提供的產品,例如 Perspective API。
- 您可以運用這些安全設定建立惡意分類。如要開始使用,請參閱分類範例。