看到@yeahhe大佬测试说Gemini Canvas额度挺多,而且是独立的,就想试试用AIStudioToAPI那种方式调。结果发现Gemini页面的cookie掉得飞快,根本没法长期用,所以换了种部署方式,现在改成服务端不管auth登录了,分体式部署。
仓库在这儿:```
flowchart LR
subgraph Client[“客户端”]
U[“外部调用方
OpenAI / Gemini / Anthropic 接口”]
subgraph UserBrowser["用户自己管理的浏览器"]
UB["浏览器里的 Canvas App 页面"]
end
end
subgraph Server["服务端"]
API["HTTP API 路由"]
RH["格式转换 / 流式处理"]
SR["浏览器会话管理 / 路由"]
end
subgraph Target["目标站点"]
G["Gemini 官方 API"]
end
U --> API
API --> RH
RH <--> SR
UB <--> SR
UB --> G
### 这个Canvas反代有啥特别的
- **支持的模型**:Gemini 2.5 Flash、Gemini 3 Flash Preview、Gemini 2.5 Flash Image Preview、Imagen 4,还有Gemini 2.5 Flash Preview TTS。Pro和Flash Lite模型不行。
- **额度独立**:跟Gemini网页还有AIStudio的额度是分开的。
- 测试了一下Gemini 3 Flash Preview,一个非Pro号一小时调了**1300多次**,还没到上限。
- 不支持流式请求,也不支持联网搜索。
### 其他功能
- 能轮询或者随机调用
- 支持Open AI(包括Response格式)、Gemini、Anthropic这些接口
- 支持工具调用和结构化输出
- 服务端现在不负责auth(cookie)了,需要用户自己手动登录
- 服务端支持本地、docker、claw部署
- 默认开了个“假流式”:把客户端发来的流式请求转成非流式的处理。
### 一些技术细节
`chrome://flags/#local-network-access-check`
### 可能遇到的问题
- 如果用Nginx,记得开Websocket支持,具体看readme里写的。
- 浏览器Websocket连不上:改完配置记得保存,服务器那边要能ws连接。如果反代在云服务器上,必须配https,用wss去连反代。本地的话可以用ws。
- 报401错误:检查下是不是登录失效了,或者用了联网搜索(不支持),或者选了不支持的模型、参数。可以试试刷新重连,或者换个号登录。
一体化部署的代码在[integrated分支](https://github.com/iBUHub/CanvasToAPI/tree/integrated),暂时还没搞定Gemini cookie老过期的问题。
如果Gemini Canvas的分享链接又被删了,就用这个[源码](https://github.com/iBUHub/CanvasToAPI/blob/main/scripts/client/canvas.html)自己去Gemini网页上建一个Canvas吧,现在一公开就容易被举报掉。
用Chrome当浏览器端的话,在地址栏输入`Disabled`,改成,然后再用ws去连本地服务端。