Gemini API 提供安全設定,您可以在 判斷應用程式需要較多或較少的原型 。您可以在這四種 篩選類別,藉此限製或允許特定類型的內容。
本指南將說明 Gemini API 如何處理安全性設定、篩選器及 如何變更應用程式的安全設定。
安全性篩選器
Gemini API 的可調整安全性篩選器涵蓋以下類別:
類別 | 說明 |
---|---|
騷擾 | 針對特定身分和/或受保護身分發表負面或有害言論 屬性。 |
仇恨言論 | 粗魯無禮、不尊重或不雅的內容。 |
煽情露骨內容 | 提及性行為或其他猥褻情事的內容。 |
危險內容 | 宣傳、鼓吹或助長有害舉動。 |
您可以根據自己的用途,使用這些篩選器進行調整。適用對象 舉例來說,假設您要製作電玩遊戲對話,可以接受以玩家為對象 允許更多因遊戲性質而獲評為「危險」的內容。
除了可調整的安全篩選器之外,Gemini API 內建了 針對核心危害提供保護,例如危害兒童安全的內容。 這類損害一律會遭到封鎖,且無法調整。
內容安全篩選等級
Gemini API 會根據
HIGH
、MEDIUM
、LOW
或 NEGLIGIBLE
。
Gemini API 會根據內容不安全的可能性封鎖內容 而非嚴重程度請務必考量這點 很少出現不安全的內容 但模型依然相當高例如,比較語句:
- 機器人打爆我。
- 機器人把我砍起來。
第一句話較有可能不安全,但 在暴力方面,第二句可能會被視為更高的嚴重性 有鑑於此,請務必謹慎測試並考量 需要適當封鎖程度來支援主要用途 盡可能減少對使用者造成的傷害
依要求執行安全篩選
您可以針對對 API 提出的每項要求調整安全設定。時間
您提出要求後,我們就會分析該內容並指派安全評分。
安全評等包括類別與傷害可能性
例如單一語句分類例如內容因騷擾而遭到封鎖
機率很高的類別時,傳回的安全性評分
類別等於 HARASSMENT
,危害機率設為 HIGH
。
根據預設,安全性設定會封鎖中型或 表示任何篩選條件中不安全的機率做為基準安全機制 適用於多數用途,所以您應該只調整 以及設定。
下表說明您可以分別調整的封鎖設定 類別舉例來說,如果您將封鎖設定設為封鎖少數 仇恨言論類別:任何最有可能出現仇恨言論的內容 封鎖的語音內容。不過,我們允許任何機率較低的任何項目。
閾值 (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
,則封鎖提示內容。
應試者意見回饋已包含
Candidate.finishReason
和
Candidate.safetyRatings
。如果回覆
內容已遭封鎖,finishReason
為 SAFETY
。你可以檢查
safetyRatings
即可瞭解詳情。系統不會傳回已封鎖的內容。
調整安全性設定
本節說明如何調整 Google AI Studio 的安全性設定 程式碼。
Google AI Studio
你可以在 Google AI Studio 中調整安全性設定,但無法開啟設定 關閉。
按一下「執行設定」面板中的「編輯安全設定」,開啟「執行」 安全設定互動視窗在互動視窗中,你可以使用滑桿來調整 每個安全性類別的內容篩選等級:
傳送要求時 (例如向模型提問),
如果要求的內容遭到封鎖,則不會顯示「沒有內容」訊息。瞭解詳情 找到詳細資料後,請將遊標懸停在 「No Content」文字,然後按一下 安全。Gemini API SDK
下列程式碼片段說明如何在
GenerateContent
呼叫。這會設定騷擾行為 (HARM_CATEGORY_HARASSMENT
)
和仇恨言論 (HARM_CATEGORY_HATE_SPEECH
) 類別
BLOCK_LOW_AND_ABOVE
,會封鎖任何低價或更高等級的內容
騷擾或仇恨言論的可能性
Python
from google.generativeai.types import HarmCategory, HarmBlockThreshold
model = genai.GenerativeModel(model_name='gemini-1.5-flash')
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,
}
)
Go
model := client.GenerativeModel("gemini-1.5-flash")
model.SafetySettings = []*genai.SafetySetting{
{
Category: genai.HarmCategoryHarassment,
Threshold: genai.HarmBlockLowAndAbove,
},
{
Category: genai.HarmCategoryHateSpeech,
Threshold: genai.HarmBlockLowAndAbove,
},
}
Node.js
import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
// ...
const safetySettings = [
{
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
{
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
];
const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });
網路
import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
// ...
const safetySettings = [
{
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
{
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
];
const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });
飛鏢 (Flutter)
final safetySettings = [
SafetySetting(HarmCategory.harassment, HarmBlockThreshold.low),
SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.low),
];
final model = GenerativeModel(
model: 'gemini-1.5-flash',
apiKey: apiKey,
safetySettings: safetySettings,
);
Kotlin
val harassmentSafety = SafetySetting(HarmCategory.HARASSMENT, BlockThreshold.LOW_AND_ABOVE)
val hateSpeechSafety = SafetySetting(HarmCategory.HATE_SPEECH, BlockThreshold.LOW_AND_ABOVE)
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey,
safetySettings = listOf(harassmentSafety, hateSpeechSafety)
)
Java
SafetySetting harassmentSafety = new SafetySetting(HarmCategory.HARASSMENT,
BlockThreshold.LOW_AND_ABOVE);
SafetySetting hateSpeechSafety = new SafetySetting(HarmCategory.HATE_SPEECH,
BlockThreshold.LOW_AND_ABOVE);
GenerativeModel gm = new GenerativeModel(
"gemini-1.5-flash",
BuildConfig.apiKey,
null, // generation config is optional
Arrays.asList(harassmentSafety, hateSpeechSafety)
);
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
後續步驟
- 如要進一步瞭解完整的 API,請參閱 API 參考資料。
- 參閱安全指南,大致瞭解安全 以 LLM 進行開發的考量重點
- 進一步瞭解如何透過 Jigsaw 評估機率與嚴重程度 團隊
- 進一步瞭解用於安全解決方案的產品,例如 觀點 API。 * 您可以利用這些安全設定來建立有毒性 分類器。查看分類 範例 生成式 AI 模型