如何为Google JS客户端库的Discovery加载Beta端点添加API Key
解决Google Generative AI v1beta版本API Key认证失败问题
你的代码中getGenerativeModel的API版本配置方式错误,导致API Key未被正确传递到v1beta端点的请求中,引发认证失败。
修正方案
将apiVersion参数移到getGenerativeModel的第一个配置对象内,与model属性放在一起,确保客户端正确识别版本配置并携带API Key:
require('dotenv').config(); const { GoogleGenerativeAI } = require("@google/generative-ai"); const genAI = new GoogleGenerativeAI(process.env.API_KEY); async function run() { // 正确配置模型与API版本 const model = genAI.getGenerativeModel({ model: process.env.TEXT_MODEL_NAME_LATEST, apiVersion: 'v1beta' }); const prompt = "Write a story about a magic backpack."; const result = await model.generateContent(prompt); const response = await result.response; const text = response.text(); console.log(text); } run();
可选全局配置方式
如果你希望所有请求都使用v1beta版本,也可以在初始化GoogleGenerativeAI时直接指定API版本,后续无需重复设置:
require('dotenv').config(); const { GoogleGenerativeAI } = require("@google/generative-ai"); // 全局配置API版本 const genAI = new GoogleGenerativeAI({ apiKey: process.env.API_KEY, apiVersion: 'v1beta' }); async function run() { const model = genAI.getGenerativeModel({ model: process.env.TEXT_MODEL_NAME_LATEST }); const prompt = "Write a story about a magic backpack."; const result = await model.generateContent(prompt); const response = await result.response; const text = response.text(); console.log(text); } run();
原因说明
原代码中单独传递第二个参数{apiVersion: 'v1beta'}不符合库的参数规范,客户端未正确应用该版本配置,导致请求未携带API Key完成身份认证,触发"forbidden"错误。
内容的提问来源于stack exchange,提问作者Linda Lawton - DaImTo
相关产品推荐
相关产品推荐

