Gemini的相关大模型API无法调用?一文深入带你探究原因,并展示如何成功调用Gemini的API,让你继续使用。
在学习使用n8n时,很多小伙伴都会不可避免的 使用到一些 商用 大模型 API,考虑到大部分使用者其实都不是付费用户,所以
Google AI Studio推出的 Gemini系列模型,虽然是商用的,但是可以每天有一定免费额度(对于跑通n8n,感受下workflow,已经足够了)
自然就变成了广大用户白嫖的首选。
本文详细记录了,在n8n调用Gemini时,踩到的系列坑,最后成功实现需求。
看到有博主是 Gemini 2.5 pro 做演示多模态识别图片,视频当时那会还是支持免费调用的。
然后截止目前6月20日,我看了下google公布的最新结果,目前已经停止了该模型的免费调用额度
请别慌,我后面将使用Gemini 2.5 flash来平替演示,Gemini 2.5 flash实测下来效果也还不错,
输入也支持多模态文件,只是少了针对pdf文件的支持。
另外,我将演示的是更接近真实生产环境的操作,在docker中部署n8n[2]
我的改写的命令如下:
docker run -it --rm --name n8n -p 5678:5678 -e HTTP_PROXY=http://host.docker.internal:7890 -e HTTPS_PROXY=http://host.docker.internal:7890 -v n8n_data:/home/node/.n8n -v C:/Users/47053/Desktop/yz:/mnt/yz docker.n8n.io/n8nio/n8n
附:n8n的启动比较简单,请参考github上安装指示
这里我将不再赘述,默认大家都安装好了node.js, docker desktop这些 (如果实在不懂,也可评论区向我留言)
上面命令是直接丢给电脑看的,因而可读性不够好,我调整格式对齐如下,方便给大家讲解:
docker run -it --rm \ --name n8n \ -p 5678:5678 \ -e HTTP_PROXY=http://host.docker.internal:7890 \ -e HTTPS_PROXY=https://host.docker.internal:7890 \ -v n8n_data:/home/node/.n8n \ -v C:/Users/47053/Desktop/yz:/mnt/yz \ docker.n8n.io/n8nio/n8n
-e 这两个是我添加的本地代理,你可以改成你自己的代理端口
这个很重要,我也是反复掉坑多次才摸索出来的......
如果不添加这两个代理,Gemini你直接参照官方文档去调用,
不论你是官方文档的如下2种api方式,你最后都没法跑通 gemini的模型接口的。。。
继续解释命令:
-v C:/Users/47053/Desktop/yz:/mnt/yz \
这一行代码是完成如下功能:
- -v C:/Users/47053/Desktop/yz:/mnt/yz:将 Windows 路径 C:\Users\47053\Desktop\yz 挂载到容器内的 /mnt/yz。
- 注意:Windows 路径中的反斜杠 \ 替换为正斜杠 /,驱动器号 C: 前加 /。
这样以便 n8n 可以访问其中的文件进行 OCR 识别。
如果没有这条命令,你是没法在容器内去访问你本地宿主机的文件夹,因为容器是和宿主环境隔离的。
其他命令都比较常规,没有需要特别解释的。(如果还有不懂,大家可以直接把这个命令问LLM)
启动完该命令后,docker desktop页面返回如下结果,即表明n8n的docker已经成功启动:
打开这个容器,点击 Files,就可以看到该容器mnt/yz文件夹下面已经有windows桌面对应的文件,说明挂载已经成功了
或者你只想通过代码去访问API的话,这也是可以的,这是我实测能跑通的代码,大家可以参考。
只需将apikey, model 替换成你所需的即可
import requests import json model = 'gemini-2.5-flash' # 也可以替换成你所需的model, url = f"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent" api_key = "替换成你apikey" headers = {"Content-Type": "application/json"} payload = { "contents": [ { "parts": [ {"text": "你好,请问你是谁?"} ] } ] } # 设置代理 proxies = { "http": "http://127.0.0.1:7890", "https": "http://127.0.0.1:7890" } response = requests.post(f"{url}?key={api_key}", headers=headers, json=payload, proxies=proxies, timeout=20) print(response.json()) # print(response.json()['candidates'][0]['content']['parts'][0]['text'])
返回结果如下:
至此,你只需要在浏览器打开:
http://localhost:5678
这个链接,就可以进入n8n操作页面了
至此,Gemini就可以被你正常调用了。
相关网站:
https://aistudio.google.com/apikey
https://ai.google.dev/gemini-api/docs/models#gemini-2.0-flash
https://ai.google.dev/gemini-api/docs/rate-limits