遇到 Gemini 配置示例复制进来直接运行报错——Missing API key、invalid generation_config 格式、temperature 非要你给个 0 到 2 之间的数。别急着怪环境,也别怀疑自己代码能力:问题大概率出在提示词里藏着三类“占位符坑”,官方文档或博客示例里没明说,但你自己得认出来、清干净。

识别配置示例中的三类危险占位符
打开你复制的那段 JSON 或 Python 字典,逐行检查是否含以下内容:
① 【model_name = "models/gemini-1.5-flash"】——引号内带斜杠路径的字符串,必须严格匹配你实际调用的模型 ID(比如 "gemini-1.5-pro-latest" 不等于 "models/gemini-1.5-pro-latest");
② temperature = 0.7 ← 这个数字本身合法,但若原文写成 temperature = 0.7(斜体)或 temperature = `0.7`(反引号包裹),说明它是被当作格式标记渲染的,实际代码中必须去掉所有 Markdown 样式符号;
③ "YOUR_API_KEY_HERE" ← 这种全大写 + 下划线组合是典型人工占位符,不能留空、不能照抄、不能只删掉下划线保留大写。
把示例转为可执行配置的三个动作
方法一:用 Python 字典硬编码(适合调试)
把原始示例里的键值对逐条抄进 dict,遇到字符串值时,用英文双引号包裹,确保无换行、无缩进空格、无中文标点。例如将:
"generation_config": {
"temperature": 0.9,
"top_p": 1
}
改写为:【generation_config = {"temperature": 0.9, "top_p": 1}】;
方法二:用 google.generativeai.types.GenerationConfig 类构造(推荐生产环境)
不要手写字典,改用官方类实例化:
from google.generativeai.types import GenerationConfig
config = GenerationConfig(temperature=0.9, top_p=1)
这能自动校验字段名和数值范围,避免拼写错误;
方法三:从环境变量注入敏感字段(必须做)
把 API 密钥、模型名称等变动项从代码中剥离,改用 os.getenv("GEMINI_API_KEY") 读取。这一步不做,下次提交代码到 GitHub 就会泄露密钥。
验证配置是否生效的唯一操作
在调用 model.generate_content() 前,插入一行 print(config);
运行后观察输出是否为干净的 Python dict 或 GenerationConfig 对象,不含 None、
如果打印结果里出现 【AttributeError: 'dict' object has no attribute 'temperature'】,说明你传的是普通字典却用了类方法调用方式,立刻回退到方法一或改用方法二。
