我正在按照使用Gemini API自动化Google Workspace任务中的5. 使用图像调用Gemini API的说明进行操作。在运行testGeminiVision
时,我收到了一个被截断的错误消息,建议使用muteHttpExceptions
。
我在callGeminiProVision
函数中options
变量声明中添加了'muteHttpExceptions': true
来修改代码。现在我在执行日志中得到了以下内容:
2024年8月13日,上午11:09:46 | 调试 |
提供关于此对象的一个有趣的事实。 { |
通过谷歌搜索这条消息,我在一个GitHub仓库中找到了一个问题:https://github.com/OthersideAI/self-operating-computer/issues/204,但目前还没有解决方案。
我还搜索了发布说明和Gemini文档,但我在修复Codelab代码时需要帮助。我找到了建议切换到Google AI Vertex的建议,但这样做需要进行重大更改。
最小完整示例
代码改编自所引用的Codelab。我删除了不必要的部分,只保留了重现我遇到的问题所需的部分。要运行此代码,您必须获取一个Gemini API密钥,并使用GOOGLE_API_KEY
作为属性名称添加一个脚本属性。所引用的Codelab中有详细的说明来完成此操作。
一旦在Google Apps Script编辑器中完成了Apps Script项目的设置,请选择testGeminiVision
,然后点击运行。
const properties = PropertiesService.getScriptProperties().getProperties();const geminiApiKey = properties['GOOGLE_API_KEY'];const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-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 = "提供关于此对象的一个有趣的事实。"; const image = UrlFetchApp.fetch('https://storage.googleapis.com/generativeai-downloads/images/instrument.jpg').getBlob(); const output = callGeminiProVision(prompt, image); console.log(prompt, output);}
回答:
TLDR:
将models/gemini-1.0-pro-vision-latest
替换为models/gemini-1.5-flash-latest
。
从
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
到
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=${geminiApiKey}`;