Featured image of post Gemini 负载均衡代理搭配 Cherry Studio

Gemini 负载均衡代理搭配 Cherry Studio

又一个小玩具

部署 Gemini 代理

本项目是一个基于 FastAPI 框架开发的高性能、易于部署的Gemini OpenAI兼容 和 Gemini API 代理服务。它不仅兼容 OpenAI 的 API 接口,还支持 Google 的 Gemini 原生接口。该代理服务内置了多 API Key 轮询、负载均衡、自动重试、访问控制(Bearer Token 认证)、流式响应等功能,旨在简化 AI 应用的开发和部署流程。
Python
  1. 复制space空间

  1. 修改 visibilityPublic(一定注意修改成public,不然访问不到会报错),配置 ALLOWED_TOKENSAPI_KEYS。其余配置默认不用修改。

  • ALLOWED_TOKENS 格式为["自定义apikey"],注意中括号、逗号和引号都有严格遵循。这个变量是对API的访问鉴权。
  • API_KEYS 格式为单个key的形式:["gemini_key1"];多个key的形式["gemini_key1","gemini_key2"]。注意中括号、逗号和引号都有严格遵循。这里填的就是在谷歌控制台创建的apikey。
  • BASE_URL 保持默认
  1. 耐心等待一下。部署成功后,会出现running状态

  1. 这时该huggingface服务的默认host为 huggingface用户名-gemini-balance.hf.space,比如上面的是 snailyp-gemini-balance.hf.space
  2. 注意:huggingface服务48h不使用会进入sleeping,建议通过青龙面板或者uptime kuma等定时任务进行保活。(直接用get请求调用 https://用户名-gemini-balance.hf.space 即可)
  3. 支持端点 /hf/v1/models/hf/v1/chat/completions

Cherry Studio

这里下载Cherry Studio的客户端。

比较有用的是知识库的功能。那么要怎么用呢?

知识库配置:硅基流动 Embedding

点击这里注册账号。

无论用什么注册到后面都是要绑定手机号的,所以推荐直接绑手机即可。

然后左边栏下滑,创建一个apikey:

回到模型广场,用筛选器能看到有四个免费的嵌入模型,最推荐的中文处理模型是 BAAI/bge-large-zh-v1.5BAAI/bge-m3

然后到 Cherry Studio 添加嵌入模型。


搭配 Gemini 使用知识库

我这里以 cherry studio 的文档为例,添加站点地图docs.cherry-ai.com/sitemap-pages.xml

注意,站点地图只支持 xml 路径!稍等一会,显示绿勾就是处理完成了.

再添加一个模型,类型就选默认的 OpenAI 即可。

  • API地址填 HuggingFace 代理的host地址,也就是上面所说的 huggingface用户名-gemini-balance.hf.space
  • API密钥填你上面部署时配置的 ALLOWED_TOKENS

检查连接:

左上角进入对话,选择创建好的模型:

选择你创建好的知识库:

只要是在知识库里能检索到的信息AI就会引用回答,还会标出参考来源。

目前 gemini-2.0-flash-exp-search 支持联网。虽然它没显示联网图标

MCP 使用

初次使用时需要在设置中安装MCP相关环境的环境依赖(需科学网络):


直接安装即可。如若安装不了,可以参考官方文档,查看以下路径查看是否有配置文件:

Windows: C:\Users\用户名\.cherrystudio\bin

macOS,Linux: ~/.cherrystudio/bin

如果没有对应目录,需要手动建立。然后下载可执行文件放到这个目录下面:

Bun: https://github.com/oven-sh/bun/releases
UV: https://github.com/astral-sh/uv/releases

重新进入 MCP 服务器界面,看到小绿勾就说明环境依赖配置成功了:

调用cherry自带的 fetch MCP 服务器试一下:

不过注意:上面部署的 Gemini 代理的 OpenAI 格式的api有时会不支持对tools的调用,要换成 Gemini 格式的api;而且有时候回答着突然阻断了。换成 Gemini 格式的api其实就是把 OpenAI 格式的api地址后面的 /hf/v1 删掉就行了,比如 OpenAI 格式的api地址是 https://username-gemini-balance.hf.space/hf/v1/chat/completions,那么 Gemini 格式的api地址就是 https://username-gemini-balance.hf.space/chat/completions。至于阻断,好像没有太好的解决方法。

再推荐一个谷歌搜索的 MCP 服务器(需要代理):

A powerful MCP server for Google search that enables parallel searching with multiple keywords simultaneously.
TypeScript

如果开了代理还是搜索失败的话,可以让 AI 打开搜索的 debug 模式,然后就可以看到浏览器搜索过程了。

补充

参考链接:

Cherry Studio 自定义字体设置:

src: url('file://D:/user/Cherry Studio/LXGWWenKaiTC-Regular.ttf') 改为自己电脑上霞鹜文楷字体

 1@font-face {
 2    font-family: 'LXGWWenKaiTC-Regular';
 3    src: url('file://D:/user/Cherry Studio/LXGWWenKaiTC-Regular.ttf') format('truetype');/*此处改为自己电脑上霞鹜文楷字体的安装路径*/
 4    font-weight: normal;
 5    font-style: normal;
 6    font-display: swap;
 7    unicode-range: U+4E00-9FFF /* 扩展CJK字符范围 */
 8}
 9
10/* 强制全局应用字体 */
11*,
12*::after {
13    font-family: 
14        'LXGWWenKaiTC-Regular',                    /* 西文字体 可更换*/
15        'LXGWWenKaiTC-Regular',       /* 中文字体 可更换*/
16        sans-serif !important;       /* 强制覆盖所有样式 */
17}
18
19/* 单独设置等宽字体 */
20code, pre, kbd, samp, tt {
21    font-family: 
22        Consolas,
23        Monaco,
24        'Andale Mono',
25        'Ubuntu Mono',
26        monospace !important;
27}
28
29/* 覆盖表单元素 */
30input, button, textarea, select {
31    font-family: inherit !important;
32}

还有更多好玩的用法就自己探索啦~

给博主施舍一个赞吧(;へ:) ❤️