最近嘗試白嫖Gemini的PoC
服務介紹:
Gemini-Balance
最近在看到了Gemini-Balance這一個專案:
簡單來說是一個Gemini API Key Loadbalance的服務,
可以支援把OpenAI API請求格式轉換成Gemini API格式去問。
不負責任架構示意:

Request Body範例:(OpenAI Chat API format)
{
"model": "gemini-1.5-flash",
"messages": [
{
"role": "user",
"content": "Hi Gemini 聽到請回答"
}
]
}
沉浸式翻譯
眾人皆知的超讚網頁翻譯擴充,可以自己選翻譯服務
服務可以接到AI 服務商,甚至透過控制預備好的角色Prompt 增加翻譯精準度。
但有時還是會覺得免費版的翻譯精準度可以更好。

不過免費的沉浸式翻譯其實自帶填入自己的AI服務商API Key的功能 :)

也可以自己寫發請求的地址:

🔄 融合卡

於是就想著,如果可以把gemini-balance掛在網路上,
讓沉浸式翻譯透過gemini-balance 輪留用Key發Request的話,
不就可以免費爽爽蹭高品質的翻譯服務了嗎?

部署解決方案
Zeabur (PaaS)
考量到服務輕量/專案已經在github上/容器化/部署容易等等。
主要是之前在做其它專案時有訂閱開發者方案quota沒用完 150 NTD/月,附贈5U的額度。
Cloudflare (賽博佛祖)
服務畢竟預計掛在公眾網路上,最好限制一下訪問來源。
CF可以免費&絲滑的做一些基本設定。
主要是手邊有之前跟佛祖註冊的閒置domain可以用。

一些實作紀錄
自訂網域的指向
github fork 上把專案叉過來 & 在Zeabur上把的服務建起來:
DATABASE_TYPE 我設 sqlite。
可以設定自己的網域 或是用官方的。
我選擇用自己在CF註冊的Domain。

給上想要的域名服務位址之後,Zeabur會給一個CNAME,
在CF上 → DNS → Records 裡面設定CNAME Proxy:

在CF上 → SSL/TLS → Overview 裡SSL/TLS encryption mode 為 Full:

後面就可以實際連看https://<zeabur設定的外網位置>,看服務能不能通。
第一次實作的時候 遇到CF 解析成功,但連不上Server的502錯誤。
調整gemini-balance服務port
連不上是因為Zeabur的對口是8080:

但是原始專案的服務是寫死在8000上,而且也不支援用環境變數調整:
# Run the application
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--no-access-log"]
不過zeabur有啟動指令可以設定,所以我的方式就是讓服務起來的時候自己改一次
# zeabur service starts command
sh -c "uvicorn app.main:app --host 0.0.0.0 --port ${PORT:-8080} --no-access-log"
之後就連得上服務了,用ALLOWED_TOKENS 確定可以登入。
(說實在只用一個沒有複雜度限制的密碼有點粗暴。。。)

到這邊就確認gemini-balance服務就透過zeabur部署成功了。
基本的訪問限制:
在CF上 → Security → Security rules
會看到CF 提供我們寫5條custom rule
我是先粗暴的用not ip.src in {IP} → action block
設好之後用手機行動網路連看看。

到這邊就算弄好一支自己能用的小服務了。
沉浸式翻譯:
到沉浸式翻譯的設定 → 翻譯服務 → 新增自訂翻譯服務選OpenAI。
填上翻服務名稱/gemini-balance的key/模型要自己輸入gemini的模型:

最後把api位址換掉:

在選單最上面的連線測試ok,這樣就把沉浸式翻譯 → gemini-balance接好了。
結果
拿watchTowr 分享一堆放在公眾網路上的FreePBX server被打穿的故事當範例
⬅️左邊是沉浸式翻譯免費提供的GLM-4-Flash模型
➡️右邊是自己接的gemini-2.5-flash


雖然圖片沒截到,
不過gemini 自己把MSP RCE TTPs 這類專有名詞都顯示中文+(英文全文)還是挺有料。
題外話
裸奔
當時候在看專案的時候,發現服務本身很讚,但是驗證方式真的有點單薄,
就試著找有沒有裸奔上線的:

26個全部都可以連上。。。
如果爆破進去的話,可是可以直接拿到所有明碼的api-key呢…
不知道這個專案有沒有基本的防密碼猜測HeHe。
一些感想
事實上雖然白嫖了,不過我目前用2~3個 free tier 的 key是會用完的,
感覺是網頁翻譯的請求次數比較大量的問題,
沉浸式翻譯訂閱起來還是推薦 :)