安全設定

本指南將說明 Gemini API 提供的可調整安全設定。在原型設計階段,您可以在 4 個維度中調整安全設定,快速評估應用程式是否需要更多或更少的設定限制。根據預設,安全設定會封鎖在任何維度中中等或較高可能不安全的內容 (包括提示)。這項基準安全性適用於大多數用途,因此建議您只在應用程式持續需要時,再調整安全設定。

安全性篩選器

除了可調整的安全性篩選器以外,Gemini API 也提供內建的防護措施,可避免兒童安全的內容 (例如危害兒童安全的內容)。系統會一律封鎖這類傷害,而且無法調整。

可調整的安全性篩選器涵蓋下列類別:

  • 騷擾
  • 仇恨言論
  • 煽情露骨內容
  • 危險事物

這些設定可讓開發人員決定哪些項目適合您的使用情境。舉例來說,假設您要建構電玩遊戲對話方塊,或許可以表明可以允許更多因遊戲性質而標示為危險的內容。以下列舉幾個可能需要這些安全設定彈性的使用案例:

用途 類別
反騷擾訓練應用程式 仇恨言論、煽情露骨內容
劇本作者 煽情露骨內容、危險事物
惡意內容分類器 騷擾、危險

機率與嚴重程度

Gemini API 會根據不安全內容的機率封鎖內容,而不是根據嚴重程度封鎖內容。請務必考量這點,因為即使有害的嚴重性仍很高,某些內容可能還是不太可能出現不安全。舉例來說,比較語句:

  1. 機器人把我打倒我。
  2. 機器人把我關起來了。

語句 1 可能較不安全,但您可以考慮將第 2 句話視為暴力的嚴重性較高。

有鑑於此,每位開發人員都必須仔細測試,並考量需要在支援主要用途時採用適當的封鎖層級,同時盡量降低對使用者的危害。

安全性設定

傳送至生成式服務的要求會包含安全性設定,您可以針對您向 API 發出的每個要求調整設定。下表列出您可以設定的類別,並說明各類別涵蓋的傷害類型。

類別 說明
騷擾 針對特定身分和/或受保護特質發表負面或有害言論。
仇恨言論 粗魯無禮、不尊重或不雅用語的內容。
煽情露骨內容 提及性行為或其他猥褻情事的內容。
危險 宣傳、鼓吹或助長有害舉動。

這些定義請一併參閱 API 參考資料。Gemini 模型僅支援 HARM_CATEGORY_HARASSMENTHARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_SEXUALLY_EXPLICITHARM_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,則提示內容會遭到封鎖。

回應候選意見回饋包含在 finishReasonsafetyRatings 中。如果回應內容遭到封鎖,且 finishReasonSAFETY,您可以檢查 safetyRatings 以瞭解詳情。安全評分包含類別和傷害分類的可能性。系統不會傳回遭封鎖的內容。

傳回的機率會對應至區塊可信度等級,如下表所示:

機率 說明
不適用 內容極有可能不安全
內容可能不安全
中等 內容可能不安全
內容非常可能不安全

舉例來說,如果內容因騷擾類別的可能性很高而遭到封鎖,系統傳回的安全性評分類別就會等於 HARASSMENT,危害機率則設為 HIGH

Google AI Studio 中的安全性設定

您也可以在 Google AI Studio 中調整安全設定,但無法將其關閉。方法是在「Run settings」中,按一下「Edit safety settings」

安全性設定按鈕

並使用旋鈕調整各項設定:

安全性設定按鈕

如果內容遭封鎖,系統會顯示 「No Content」(沒有內容) 訊息。如要查看更多詳細資料,請將滑鼠遊標懸停在「No Content」(沒有內容) 上,然後按一下 「Safety」(安全)

程式碼範例

本節說明如何透過 Python 用戶端程式庫,在程式碼中使用安全設定。

要求範例

以下是 Python 程式碼片段,顯示如何在 GenerateContent 呼叫中設定安全性設定。這會將損害類別 HarassmentHate 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
  • 您可以運用這些安全設定建立惡意分類。如要開始使用,請參閱分類範例