如何通过API禁用Gemini Vision Pro模型的安全设置
解决方案:Gemini Vision Pro API安全设置禁用及问题排查
1. 正确禁用所有安全设置的方法
你当前代码里的安全类别存在重复和错误(HARM_CATEGORY_DANGEROUS并非官方定义的有效类别),导致安全设置未完全生效。要彻底禁用所有安全拦截,需覆盖Gemini API官方定义的全部4种安全类别,并明确设置阈值为BLOCK_NONE。
修正后的代码示例
使用Google官方枚举类(避免字符串拼写错误):
import google.generativeai as genai from google.generativeai.types import HarmCategory, HarmBlockThreshold import streamlit as st def Gemini_vision(prompt, image): st.markdown("<p style='text-align:center;'>Image will be used from here, Delete image when you are done ✅</p>", unsafe_allow_html=True) genai.configure(api_key=GEMINI_API_KEY) model = genai.GenerativeModel('gemini-pro-vision') # 覆盖全部官方安全类别,设置为完全不拦截 safety_settings = { HarmCategory.HARASSMENT: HarmBlockThreshold.BLOCK_NONE, HarmCategory.HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE, HarmCategory.SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE, HarmCategory.DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE, } response = model.generate_content([image[0], prompt], safety_settings=safety_settings) # 新增拦截状态检查,避免直接调用response.text报错 if response.prompt_feedback.block_reason: raise Exception(f"内容被拦截:{response.prompt_feedback.block_reason}") return response.text
若坚持使用字符串形式,需确保类别名称完全匹配官方定义:
safety_settings = [ {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}, ]
空列表无效的原因
当safety_settings设为空列表时,API会自动应用默认安全阈值(并非完全禁用),因此仍会拦截敏感内容。必须显式设置所有类别为BLOCK_NONE才能彻底禁用拦截。
2. 调整时需考虑的额外事项
- 官方政策限制:即使设置
BLOCK_NONE,若内容违反Google Generative AI服务条款(如涉及未成年人、非法内容等),仍可能被系统拦截。此类情况需通过Google Cloud控制台提交申请,请求放宽特定类别的安全限制。 - 日志排查:Streamlit Cloud的日志包含未脱敏的错误详情,点击「Manage app」→「Logs」查看具体拦截原因(如触发拦截的安全类别),确认是否真的是安全设置问题。
- 库版本兼容:确保
google-generativeai库为最新版本,执行pip install --upgrade google-generativeai更新,旧版本可能不支持部分安全设置参数。 - 图片合规性:检查自拍图片是否包含违规元素(如裸露、暴力暗示等),或图片尺寸/格式超出API限制(Gemini Pro Vision支持JPG、PNG等格式,单张图片不超过20MB)。
- 密钥权限:确认API密钥关联的Google Cloud项目已启用Generative AI API,且无额外访问限制(如IP白名单、配额限制)。
内容的提问来源于stack exchange,提问作者Likith
相关产品推荐
相关产品推荐

