分享一个免费的 gemini key 池代理的方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yuikji
V2EX    程序员

分享一个免费的 gemini key 池代理的方案

  •  
  •   yuikji 73 天前 1664 次点击
    这是一个创建于 73 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初衷

    虽然谷歌大善人提供了免费的 Gemini APi ,但是有很大的速率限制,甚至在我日常开发中都遇到过很多次超过速率限制的报错。阅读文档之后,发现速率的限制只针对 project , 于是打算做一个 Gemini APi 的代理,去更好的管理和使用 key 。

    pic

    方案

    因为想要零成本代理,所以想到了另一个大善人 cloudflare ,可以利用他提供的 Workers 服务做一个简单的代理和转发,下面是我实践的大概思路

    key 的获取

    因为 key 的使用限制,所以需要创建多个 project ,得到一个 key 池,当然你有其他渠道啥也可以

    创建 D1 数据库

    根据文档去官网的仪表盘或者用命令行创建 D1 数据库,这个主要是持久化记录 key 的一些状态,免费的额度感觉够用。 我的数据库的结构是这样

    -- API Key 管理表 CREATE TABLE IF NOT EXISTS api_keys ( id INTEGER PRIMARY KEY AUTOINCREMENT, api_key TEXT UNIQUE NOT NULL, -- API 密钥 name TEXT, -- 密钥名称/备注 priority INTEGER DEFAULT 100, -- 优先级权重 (数值越高优先级越高) status INTEGER DEFAULT 1, -- 状态: 1=有效, 2=暂时失效, 0=完全失效 consecutive_failures INTEGER DEFAULT 0, -- 连续失败次数 total_calls INTEGER DEFAULT 0, -- 总调用次数 success_calls INTEGER DEFAULT 0, -- 成功调用次数 last_used_at DATETIME, -- 最后使用时间 last_success_at DATETIME, -- 最后成功时间 last_failure_at DATETIME, -- 最后失败时间 disabled_until DATETIME, -- 禁用截止时间 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); 

    创建 worker

    1. 绑定之前创建好的 D1 数据库

    2. 初始化数据库

    3. 写主程序

    我主要是让 AI 写的负载均衡的逻辑,这块代码我自己也没怎么看过,就不贴了,然后用 openai 的范式接收请求

    //目录结构 └─src index.js keyManager.js 

    如何使用 worker

    配置环境变量

    在主程序中会用的主要是我们收集的 key 池,还有一个代理之后我们自己的 key ,配置在环境变量

    // 我们收集的 key ,需要是不同项目 GEMINI_API_KEY=k1,k2,k3 // 我们自定义的 KEY,放在 header 里面,openai 的规则 MY_API_KEY= 

    1. 内部使用

    page 或者 worker 内部调用,需要绑定然后用环境变量请求,没试过

    2. 外部接口调用

    直接用绑定的域名访问即可,和调用其他 openai 类的 api 一样,前端直接调用的话注意 MY_API_TOKEN 不要泄露

    需要注意的事情

    1. cloudflare 的 workers 我没查过,是不是允许这么用
    2. 谷歌的 project 创建多个,可能有被风控的风险

    这个目前就是我自己当玩具用,没有经过啥实践的验证,大佬们觉得这个有可行性吗

    4 条回复    2025-07-30 16:22:48 +08:00
    peerless
        1
    peerless  
       73 天前
    确实是一个很好的想法
    speedmancs
        2
    speedmancs  
       72 天前
    multiple project rotation 确实可以获得更多的免费额度,但你要注意
    1. 每个 project 是否需要绑定一个新的 billing account
    2. 如果滥用,Google 仍然会封帐号
    Tose
        3
    Tose  
       71 天前 via Android
    不错,另外有个开源项目 https://github.com/snailyp/gemini-balance ,一直在用
    zhangyuliang
        4
    zhangyuliang  
       71 天前
    不错,解决了 gemini 使用限制的问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:59 PVG 03:59 LAX 12:59 JFK 15:59
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86