必须通过环境变量安全注入Gemini API密钥:本地用export临时设置或写入~/.zshrc/.bashrc(推荐专用.gemini_env并chmod 600),生产环境通过systemd EnvironmentFile接管,Spring Boot和Python需严格校验变量非空。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要在本地开发和生产服务器上安全注入Gemini API密钥,避免硬编码、防止泄露、支持多环境切换——这三件事必须同时满足,否则任意一步出错都可能触发配额耗尽或安全审计失败。
本地开发环境:用shell环境变量临时注入
打开终端,执行以下命令:
【export GEMINI_API_KEY="your_actual_api_key_here"】
这一步仅对当前终端会话生效,关闭窗口即失效,适合调试单次请求。不要复制粘贴时漏掉引号,否则空格会导致密钥截断。
验证是否生效:运行echo $GEMINI_API_KEY,应完整输出密钥字符串(不含引号)。
本地持久化配置:写入shell配置文件
方法一:追加到~/.zshrc(macOS默认)或~/.bashrc(Linux常用)
执行:echo 'export GEMINI_API_KEY="your_actual_api_key_here"' >> ~/.zshrc
立即加载:source ~/.zshrc
方法二:使用专用环境变量文件(推荐)
创建~/.gemini_env,写入export GEMINI_API_KEY="...",再在~/.zshrc末尾添加source ~/.gemini_env。这样可单独chmod 600 ~/.gemini_env,防止其他用户读取。
【切勿将该文件提交到Git仓库】,务必在.gitignore中加入.gemini_env和*_env模式。
生产环境部署:通过系统级环境变量接管
第一步:登录服务器,切换为部署用户(如www-data或app)
第二步:编辑该用户的shell配置文件(如/home/app/.profile),追加export GEMINI_API_KEY="..."
第三步:确认服务管理器能继承环境变量
若使用systemd,需在服务单元文件中显式声明:EnvironmentFile=/home/app/.gemini_env,并确保该文件权限为600。直接在[Service]段写Environment=...会导致密钥明文出现在systemctl show输出中。
第四步:重载并重启服务:sudo systemctl daemon-reload && sudo systemctl restart your-app.service
Spring Boot项目:通过application.yml桥接环境变量
在src/main/resources/application.yml中写:
gemini:
api-key: ${GEMINI_API_KEY}
对应Java配置类必须标注@ConfigurationProperties(prefix = "gemini"),且启动类所在包能被Spring扫描到。
如果应用在Docker中运行,需在docker run命令中添加-e GEMINI_API_KEY=$GEMINI_API_KEY,或在docker-compose.yml的environment字段里引用宿主机变量。
Python项目:用os.getenv安全读取
在代码中写:
import os
api_key = os.getenv("GEMINI_API_KEY")
if not api_key:
raise ValueError("GEMINI_API_KEY environment variable is not set")
这一步必须做非空校验,否则后续调用会返回401错误且难以定位原因。不要依赖os.environ.get("KEY", "default")设默认值,密钥不存在就是致命错误。

















