mozilla-ai/any-llm

Communicate with an LLM provider using a single interface

What it solves

它消除 LLM 供應商介面的碎片化。開發者不必為每個 AI 供應商(例如 OpenAI、Anthropic 或 Mistral)撰寫不同的程式碼,只要使用單一、統一的介面即可與任何受支援的模型溝通,讓切換供應商變得簡單,無需重寫應用程式邏輯。

How it works

any-llm 充當輕量包裝器,利用官方供應商 SDK 以確保最高相容性。它提供兩種主要的模型互動方式:

  • Direct API Functions:一個無狀態的 completion 函式,適合快速腳本與 notebook 使用。
  • AnyLLM Class:一個有狀態的類別,可重複使用 client 與連線池,適合正式環境的應用程式。

它支援串流、工具使用以及與 OpenAI 相容的 Responses API,並允許使用者以分開的 providermodel 參數或合併的 provider:model 字串指定模型。

Who it’s for

想要打造彈性且不依賴特定供應商的 LLM 應用程式的開發者,避免被單一 AI 廠商鎖定或需要自行管理代理伺服器。

Highlights

  • Unified Interface:只要更改一個字串即可在供應商間切換。
  • Official SDK Integration:使用官方 SDK,而非重新實作介面,以降低相容性問題。
  • Framework Agnostic:可整合至任何專案,且不受特定代理框架限制。
  • Type-Safe:提供完整的 Python 型別提示,提升 IDE 支援。
  • No Proxy Required:直接連線至供應商,無需中介伺服器。