You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gemini-Pro安全配置触发InvalidArgument错误:请求含无效参数

问题解决:自定义Vertex AI安全配置时的400错误及SQL生成拦截问题

错误原因

你的代码核心问题是安全配置格式错误:Vertex AI的GenerativeModel要求safety_settings参数接收由generative_models.SafetySetting实例组成的列表,而非字典。直接用字典传入会触发400参数无效错误。

修复后的代码

from vertexai.preview.generative_models import GenerativeModel
from vertexai.preview import generative_models

# 正确的安全配置格式:由SafetySetting对象组成的列表
safety_config = [
    generative_models.SafetySetting(
        category=generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
        threshold=generative_models.HarmBlockThreshold.BLOCK_NONE
    ),
    generative_models.SafetySetting(
        category=generative_models.HarmCategory.HARM_CATEGORY_HARASSMENT,
        threshold=generative_models.HarmBlockThreshold.BLOCK_NONE
    ),
    generative_models.SafetySetting(
        category=generative_models.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
        threshold=generative_models.HarmBlockThreshold.BLOCK_NONE
    ),
    generative_models.SafetySetting(
        category=generative_models.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
        threshold=generative_models.HarmBlockThreshold.BLOCK_NONE
    )
]

model = GenerativeModel(
    "gemini-pro",
    safety_settings=safety_config
)

response = model.generate_content("用一句话描述AI的未来?")
print(response.text)

关键说明

  • 不要配置HARM_CATEGORY_UNSPECIFIED:该类别为系统预留项,手动设置会导致参数无效,直接忽略即可。
  • 解决SQL生成被拦截问题:将相关风险类别的拦截阈值设为BLOCK_NONE或BLOCK_ONLY_HIGH(根据自身风险容忍度调整),可避免正常SQL生成请求被误拦截。
  • 版本注意事项:vertexai.preview下的API可能存在变动,需确保参数格式匹配当前版本要求,当前列表格式为标准用法。

内容的提问来源于stack exchange,提问作者Ya.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:17:47