Gemini API 回应安全阻挡:判读原因与调整正常请求
严肃的技术分析与医疗案例频繁触发 finish_reason: SAFETY?合规配置 SafetySettings 解除误杀代码实操指南。
一、安全过度拦截的典型现象
当调用接口返回空的文本内容,且 finish_reason 显示为 SAFETY 时,说明输入或输出触碰了谷歌内置的内容安全防线(HarmCategory)。
在网络安全攻防测试、法医医学或历史事件研究等严肃场景中,这极易造成合法请求被误杀。
二、在代码中解除过度拦截的配置方案
from google.generativeai.types import HarmCategory, HarmBlockThreshold
# 针对各安全类别将门槛调整为不阻断
safety_settings = {
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
}
model = genai.GenerativeModel(
"gemini-1.5-flash",
safety_settings=safety_settings
)
三、合规使用底线
解除拦截仅用于合法合规的科研与技术分析,严禁将 API 用于生成任何违法有害信息。
基础密钥管理见:[Gemini API 密钥安全指南](https://aihuiyuan.club/articles/gemini-api-key-google-ai-studio-free)。