Gemini 1.0 Pro Vision已废弃,Google Codelab代码适配求助
修复Gemini 1.0 Pro Vision废弃导致的404错误(最小改动现有代码)
问题根源是Gemini 1.0 Pro Vision已于2024年7月12日正式废弃,对应的API端点失效,返回404错误。无需切换到Vertex AI,只需将模型替换为当前支持图像理解的Gemini 1.5 Flash模型,并调整少量代码即可解决。
具体修改步骤:
- 替换API端点:将原有的
gemini-1.0-pro-vision-latest模型ID替换为gemini-1.5-flash-latest,保持API域名和版本不变。 - 清理JSON格式问题:原代码中
generationConfig里的temperature字段后多了一个逗号,虽然JS允许,但可能导致部分解析异常,建议移除。 - 核心逻辑保留:图像编码、请求结构无需大幅修改,1.5 Flash模型兼容原有多模态请求格式。
修改后的完整代码:
const properties = PropertiesService.getScriptProperties().getProperties(); const geminiApiKey = properties['GOOGLE_API_KEY']; // 替换为Gemini 1.5 Flash的API端点 const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=${geminiApiKey}`; function callGeminiProVision(prompt, image, temperature = 0) { const imageData = Utilities.base64Encode(image.getAs('image/png').getBytes()); const payload = { "contents": [ { "parts": [ { "text": prompt }, { "inlineData": { "mimeType": "image/png", "data": imageData } } ] } ], "generationConfig": { "temperature": temperature // 移除多余的逗号 }, }; const options = { 'method': 'post', 'contentType': 'application/json', 'payload': JSON.stringify(payload), 'muteHttpExceptions': true }; const response = UrlFetchApp.fetch(geminiProVisionEndpoint, options); if (response.getResponseCode() !== 200) { return response.getContentText(); } const data = JSON.parse(response); const content = data["candidates"][0]["content"]["parts"][0]["text"]; return content; } function testGeminiVision() { const prompt = "Provide a fun fact about this object."; const image = UrlFetchApp.fetch('https://storage.googleapis.com/generativeai-downloads/images/instrument.jpg').getBlob(); const output = callGeminiProVision(prompt, image); console.log(prompt, output); }
验证说明:
修改后重新运行testGeminiVision函数,日志将正常返回图像相关的回答,不再出现404错误。该方案完全基于原有代码结构,仅做最小改动即可适配新模型,无需迁移到Vertex AI。
内容的提问来源于stack exchange,提问作者Wicket
相关产品推荐
相关产品推荐

