Google Gemini API密钥无效问题求助:代码配置排查
解决Google Gemini API提示"API key not valid"的问题
以下是针对你遇到的API密钥无效错误的排查和解决步骤:
1. 检查环境变量加载规则(针对Vite等构建工具)
如果使用Vite作为构建工具,环境变量必须以VITE_为前缀才能被客户端代码读取:
- 修改
.env文件中的变量名:VITE_GEM_API_KEY=你的实际API密钥 - 同步修改
main.js中的引用:const genAI = new GoogleGenerativeAI(`${import.meta.env.VITE_GEM_API_KEY}`);
同时确认:
.env文件放在项目根目录,文件名是.env(不要添加dev/prod等后缀)- 变量值前后无多余空格,避免写成
VITE_GEM_API_KEY= 你的密钥这类格式
2. 验证API密钥的权限与状态
登录Google Cloud控制台,找到你的API密钥:
- 确认Generative Language API已启用(搜索该服务,确保状态为"已启用")
- 检查密钥的限制设置:
- 若设置了IP限制,确保本地开发IP在允许列表内
- 若设置了API限制,确认已将
Generative Language API添加到允许列表 - 可暂时取消所有限制进行测试,排除限制规则导致的问题(测试完成后再重新配置)
3. 直接测试API密钥有效性
用curl命令直接调用API,验证密钥本身是否可用:
curl "https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=你的API密钥" \ -H "Content-Type: application/json" \ -d '{ "contents": [{ "parts": [{ "text": "hi" }] }] }'
若请求返回正常响应,说明密钥有效,问题出在前端环境变量加载;若仍返回API_KEY_INVALID,需重新生成密钥并确保生成后立即使用(密钥生成可能存在几秒延迟)。
4. 代码逻辑优化
你的代码中存在冗余等待,可简化为:
import { GoogleGenerativeAI } from "@google/generative-ai"; const genAI = new GoogleGenerativeAI(`${import.meta.env.VITE_GEM_API_KEY}`); const model = genAI.getGenerativeModel({ model: "gemini-pro" }); async function getResponse() { const result = await model.generateContent("hi"); const text = result.response.text(); console.log(text); } getResponse();
内容的提问来源于stack exchange,提问作者Giddy
相关产品推荐
相关产品推荐

