mozilla-ai/any-llm
Communicate with an LLM provider using a single interface
解決的問題
它解決了 LLM 提供商介面碎片化的問題。由於不同的提供商使用的參數名稱和回應格式略有不同,開發人員在切換模型時通常不得不重寫程式碼。any-llm 提供了一個統一的介面,無需更改核心應用程式邏輯即可存取多個 LLM 提供商。
工作原理
該函式庫作為一個輕量級封裝,利用官方提供商 SDK 來確保最大的相容性。它提供了兩種主要的模型互動方式:
- Direct API Functions:適用於腳本和 notebook 的無狀態
completion 函式。
- AnyLLM Class:一種重用用戶端和連接池的有狀態方法,推薦用於生產級應用。
它支援 provider:model 字串格式或獨立的參數,用於將請求路由到 OpenAI、Anthropic、Mistral 和 Ollama 等提供商,還可以連接到自定義的 OpenAI 相容端點。
適用對象
專為希望輕鬆切換不同 LLM 提供商的開發人員、正在從 LiteLLM 遷移的使用者,以及需要避免依賴託管代理伺服器的框架無關型 AI 應用程式構建團隊而設計。
亮點
- 統一介面:透過更改單個字串即可切換提供商。
- 官方 SDK 整合:使用官方 SDK 而不是重新實作介面,以保持更好的相容性。
- 無需代理:直接在程式碼和提供商之間運行,不需要託管代理。
- 開發體驗:包含用於 IDE 支援的完整類型提示和清晰的錯誤訊息。
相關
- 專案
theopenco/llmgatewayLLM Gateway 是一個開源 API 網關,提供單一 OpenAI 相容端點,用於將請求路由至多個 LLM 供應商,集中管理 API 金鑰,並提供內建的使用量與效能分析。可作為託管 SaaS 服務使用,或透過 Docker 自架。
- 專案
fruitbars/simple-one-apisimple‑one‑api 是一個開源的 Go 閘道器,它透過 OpenAI 相容的端點將多個 LLM 供應商統一化,並增加了容量感知的金鑰排程、四層速率限制、內建的 React 聊天 UI、視覺化配置控制台,以及 Wails 桌面客戶端。它可以作為單一二進位檔、Docker 容器或桌面應用程式運行,並將配置儲存在 SQLite 中。
- 專案
BerriAI/litellm一個開源的 AI 網關與 Python SDK,提供統一的 OpenAI 兼容介面,用於呼叫 100 多個不同的 LLM 提供商。
- 專案
huggingface/AnyLanguageModelAnyLanguageModel 是一個 Swift 套件,以統一 API 取代 Apple 的 FoundationModels 導入,支援 Apple、Core ML、MLX、llama.cpp、Ollama、OpenAI、Anthropic、Gemini 等多種 LLM 提供方。它提供 `LanguageModelSession` 用於提示,透過 `@Generable/@Guide` 實現 Swift 結構體的引導生成,支援工具呼叫並附帶代理鈎子,可選影像輸入,並透過基於特性的相依性選擇機制保持二進位檔案體積小。安裝透過 SwiftPM 完成;透過特性(`CoreML`、`MLX`、`Llama`)啟用後端。安全建議警告勿硬編碼 API 金鑰,推薦將使用者金鑰儲存於 Keychain 或使用代理伺服器。目標為 Swift 6.1+、iOS 17/macOS 14+,支援裝置端與雲端 API。
- 專案
andrewyng/aisuite一個輕量級的 Python 函式庫,透過極少的程式碼提供統一的 Chat Completions API 與 Agents API,用於在多個 LLM 提供商之上建立 AI 代理。