本指南介绍了适用于 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 中调整安全设置,但无法将其关闭。为此,请在运行设置中点击修改安全设置:
然后使用旋钮调整每项设置:
如果内容被屏蔽,系统会显示
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)的产品。
- 您可以使用这些安全设置来创建恶意评论分类器。如需开始使用,请参阅分类示例。