FreeLLMAPI 是什麼?
FreeLLMAPI 是一個 OpenAI 相容的代理伺服器,將多個 LLM 供應商的免費階層存取整合在單一 API 介面後方。您無需配置各別 SDK 或處理每個供應商的不同速率限制,只需將 OpenAI 相容客戶端指向您的代理,並發送請求至單一端點。
此專案設計用於個人實驗。它彙整約 14 家供應商的金鑰(透過供應商適配器),將每個請求路由至可用模型,並在供應商遇速率限制或錯誤時自動故障切換。
主要功能
- OpenAI 相容端點:實作
POST /v1/chat/completions和GET /v1/models,讓 OpenAI SDK 及其他 OpenAI 相容客戶端僅需變更base_url即可運作。 - 串流支援:當
stream: true時,伺服器使用 Server-Sent Events (SSE) 回傳回應;否則回傳標準 JSON 回應。 - 工具呼叫直通:支援 OpenAI 風格的
tools/tool_choice請求,並將助理的tool_calls及後續tool角色訊息轉發至供應商適配器。 - 自動故障切換與重試:若選定供應商回傳 429、5xx 或逾時,路由器將該金鑰標記為暫時不可用,並使用後備鏈中的下一個供應商重試(最多 20 次)。
- 每金鑰使用量追蹤對供應商上限:針對每個
(platform, model, key)追蹤 RPM, RPD, TPM, and TPD,並選擇未達免費階層限制的金鑰。 - 黏性多輪路由:對話維持在相同模型 30 分鐘,減少對話中途切換。
- 加密金鑰儲存:使用 AES-256-GCM 加密上游供應商金鑰後儲存至 SQLite;使用前在記憶體中解密。
- 統一代理認證:您的客戶端使用單一
freellmapi-...bearer token 向代理認證,而非使用上游供應商金鑰。 - 健康檢查與管理控制:定期探測將金鑰標記為健康/速率限制/無效/錯誤;內含管理儀表板(React + Vite)可管理金鑰、重新排序後備優先順序、檢視分析及執行提示遊樂場。
如何使用 FreeLLMAPI
- 安裝需求:使用 Node.js 20+ 和 npm。
- 複製與安裝:
git clone https://github.com/tashfeenahmed/freellmapi.gitcd freellmapinpm install
- 設定環境配置:
- 複製範例 env:
cp .env.example .env - 產生
ENCRYPTION_KEY並置入.env(儲存庫提供指令輸出隨機 32 位元組十六進位金鑰)。
- 複製範例 env:
- 啟動代理:依儲存庫快速入門 / README 所述執行伺服器(頁面內容摘錄包含設定步驟,儲存庫文件涵蓋確切啟動指令)。
- 配置您的 OpenAI 相容客戶端:
- 將客戶端的
base_url設為本機 FreeLLMAPI 伺服器。 - 使用代理的 bearer token (
freellmapi-...) 認證並呼叫POST /v1/chat/completions(可選stream: true)。
- 將客戶端的
使用情境
- 單一程式碼基底跨供應商聊天測試:將現有 OpenAI 相容應用程式(或函式庫)指向代理,無需管理各別供應商 SDK 即可實驗多種模型。
- 減少手動速率限制失敗:使用自動故障切換跳過回傳 429/5xx/逾時的供應商,並依配置後備順序繼續請求至下一個可用模型。
- 使用工具的聊天流程:執行 OpenAI 風格工具呼叫請求,其中
tool_calls及工具結果訊息透過相同代理流程路由。 - 長時間對話一致性:活躍使用期間維持聊天工作階段在相同模型(黏性工作階段 30 分鐘),供應商不可用時仍受益於後備。
- 加密金鑰處理的本地實驗:將上游金鑰集中於代理內並使用靜態加密儲存,讓客戶端應用程式無需暴露供應商金鑰。
常見問題
-
FreeLLMAPI 是否支援完整 OpenAI API? 不支援。此專案聚焦聊天完成及模型清單(
/v1/chat/completions、/v1/models)。嵌入、圖像、音訊/語音及多模態輸入不支援,舊版/v1/completions、審核及多重完成亦然。 -
FreeLLMAPI 如何處理速率限制? 追蹤每金鑰使用計數器(RPM/RPD/TPM/TPD)並選擇未達上限的金鑰。若供應商仍回傳 429(或 5xx/逾時),路由器使用後備鏈中下一個供應商重試。
-
串流是否與我的客戶端相容? 是。代理支援聊天端點
stream: true時的 SSE 串流。 -
能否使用現有 OpenAI 相容函式庫? 代理設計用於與官方 OpenAI SDK 及其他 OpenAI 相容客戶端搭配,僅需指向代理的
base_url。 -
這適合生產環境使用嗎? 儲存庫明確表示僅供「個人實驗」。
替代方案
- 直接使用單一供應商:許多服務提供自家 API 具一致語意,但無法獲得多供應商聚合、自動故障切換或單一端點免費額度疊加。
- 自行建置路由/備援層:自訂代理可實現故障切換與金鑰輪替,但需自行管理供應商專屬 SDK、限制與錯誤處理。
- 使用支援多 LLM 後端的協調框架:某些工具可在不同模型供應商間路由請求,但工作流程可能不同(且未必提供本文所述相同 OpenAI 相容
/v1/chat/completions代理行為)。 - 手動切換金鑰與模型:可在應用程式中手動選擇供應商,但會失去 FreeLLMAPI 提供的自動重試/故障切換與每把金鑰速率追蹤。
替代品
AakarDev AI
AakarDev AI 是一個強大的平台,通過無縫的向量資料庫整合簡化 AI 應用程式的開發,實現快速部署和可擴展性。
BookAI.chat
BookAI允許您透過簡單提供書名和作者與您的書籍進行AI聊天。
skills-janitor
skills-janitor 可審核並追蹤 Claude Code 技能用量,與 9 個聚焦指令做比較,幫你找重複與缺失資訊,無需依賴。
FeelFish
FeelFish AI小說寫作代理 PC 端用戶端,協助規劃角色與世界觀、生成與編輯章節,並以內容脈絡延續劇情一致性。
BenchSpan
BenchSpan 以並行方式執行 AI agent 基準測試,記錄分數與失敗,並以 commit 標記可重現結果,降低失敗重跑的 token 浪費。
ChatBA
ChatBA 用聊天式工作流程,從你的輸入快速生成簡報內容,輕鬆把想法轉成投影片套件。