AI

LiteLLM:支援 100+ LLM 供應商的開源 AI 閘道

LiteLLM 是一個熱門的開源 Python SDK 和 AI 閘道,為呼叫 100+ 個 LLM 供應商提供統一的 API,並附有成本追蹤和負載平衡功能。

LiteLLM:支援 100+ LLM 供應商的開源 AI 閘道

大型語言模型供應商的快速增長為開發者帶來了新的挑戰:每個供應商都有自己的 API 格式、認證方法、定價模型和功能集。與多個供應商整合——甚至是在它們之間切換——傳統上需要重寫大量的整合程式碼。LiteLLM 通過提供一個統一的、OpenAI 相容的介面來解決這個問題,該介面可與超過 100 個 LLM 供應商協同運作。

由 BerriAI 開發,LiteLLM 已成為 AI 基礎設施生態系統中最廣泛採用的工具之一。它扮演雙重角色:作為程式化存取的輕量級 Python SDK,以及作為可部署為團隊和組織中央路由層的代理伺服器(AI 閘道)。

該專案的成長令人矚目,這得益於一個實際情況:大多數生產級 AI 系統需要與多個 LLM 供應商互動——無論是為了冗餘、成本最佳化,還是存取特定模型的能力。LiteLLM 將這種多供應商的複雜性簡化為單一、一致的 API 呼叫。


LiteLLM 的統一 API 模型是如何運作的?

LiteLLM 的核心抽象概念出奇地簡單:它提供一個單一的 completion() 函式,該函式接受一組標準化的參數並回傳一個標準化的回應物件,無論哪個底層供應商處理請求。

graph LR
    A[你的應用程式] --> B[LiteLLM SDK / 代理]
    B --> C[OpenAI]
    B --> D[Anthropic]
    B --> E[Google Gemini]
    B --> F[Mistral / Together]
    B --> G[透過 Ollama/vLLM/TGI<br>的開源模型]
    B --> H[透過 OpenRouter / Bedrock<br>的 70+ 個供應商]
    C --> I[標準化回應]
    D --> I
    E --> I
    F --> I
    G --> I
    H --> I
from litellm import completion

# 相同的函式,不同的模型——只需更改字串
response = completion(
    model="claude-3-5-sonnet-20241022",
    messages=[{"role": "user", "content": "Hello!"}]
)
# 或:model="gpt-4o"
# 或:model="gemini/gemini-1.5-pro"
# 或:model="mistral/mistral-large-latest"
# 或:model="ollama/llama3"

print(response.choices[0].message.content)

在底層,LiteLLM 處理供應商特定的認證、請求格式化、串流(SSE)、錯誤處理和重試、token 計數,以及回應標準化。回應物件始終遵循 OpenAI 格式,使得在不更改應用程式程式碼的情況下切換供應商變得輕而易舉。


LiteLLM 支援哪些供應商和模型?

LiteLLM 的供應商支援是任何整合函式庫中最廣泛的之一,涵蓋雲端 API、託管服務和自托管模型伺服器。

供應商類別供應商範例模型整合方式
主要雲端OpenAI、Anthropic、Google、CohereGPT-4o、Claude 3.5 Sonnet、Gemini 1.5 Pro、Command R+直接 API 金鑰
託管 AITogether AI、Fireworks、Groq、PerplexityLlama 3 70B、Mixtral 8x22B、DeepSeek R1API 金鑰
聚合器OpenRouter、AWS Bedrock、GCP Vertex AI透過單一金鑰存取 200+ 模型供應商 SDK
開源伺服器Ollama、vLLM、TGI、LMI任何開放權重模型本地端點
企業Azure OpenAI、Watsonx、SageMakerGPT-4o (Azure)、Llama (Watsonx)雲端特定認證

清單隨著新供應商進入市場而不斷增長。LiteLLM 的社群積極貢獻供應商實作,而 BerriAI 團隊則維護與每個供應商不斷演進的 API 的相容性。


LiteLLM 代理(AI 閘道)提供哪些功能?

除了 SDK 之外,LiteLLM 的代理模式是一個功能完整的 AI 閘道,可以部署為組織中所有 LLM 使用的中央路由和管理層。

功能描述效益
OpenAI 相容 API/v1/chat/completions/v1/embeddings可無縫替代 OpenAI SDK
負載平衡跨模型/金鑰/供應商分配請求成本最佳化、冗餘
速率限制每個使用者、金鑰、模型的速率限制成本控制、防止濫用
成本追蹤每次請求的成本記錄與預算警示支出可見性、費用分攤
快取重複查詢的語義快取降低延遲、節省成本
記錄詳細的請求/回應記錄至資料庫稽核、除錯
護欄LLM 呼叫前後的內容過濾安全、合規
金鑰管理具有使用限制的虛擬金鑰團隊管理

代理可以以 Docker 容器或 Kubernetes 服務的形式部署,使其易於整合到現有基礎設施中。許多組織將其部署為所有 LLM 呼叫的唯一入口點,無需修改應用程式程式碼即可實現集中治理。

# 啟動 LiteLLM 代理
docker run -p 4000:4000 \
  -e OPENAI_API_KEY=$OPENAI_API_KEY \
  -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
  ghcr.io/berriai/litellm:main-latest \
  --config ./proxy_config.yaml

# 像使用 OpenAI 一樣使用它
curl http://localhost:4000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

公司如何在生產環境中使用 LiteLLM?

生產環境的使用模式差異很大,但常見的部署架構揭示了 LiteLLM 如何融入 AI 基礎設施堆疊。

使用場景架構使用的關鍵功能
多供應商冗餘SDK 容錯移轉從主要供應商回退到次要供應商
團隊成本管理具有虛擬金鑰的代理每個團隊的預算、使用儀表板
模型評估用於比較模型的 SDK切換模型字串、比較輸出
生產 LLM 服務具有負載平衡的代理高可用性、快取、速率限制
離線開發具有本地模型的 SDK用於隱私的 Ollama/vLLM 後端

典型的企業部署模式是 LiteLLM 代理位於應用程式層和上游 LLM 供應商之間。開發者使用標準的 OpenAI SDK 與代理互動,無論哪個供應商最終處理請求,都能體驗一致的 API。營運團隊透過代理設定管理供應商金鑰、成本限制和速率限制,無需更改應用程式。


常見問題

什麼是 LiteLLM? LiteLLM 是由 BerriAI 開發的開源 Python SDK 和 AI 閘道,為呼叫超過 100 個大型語言模型供應商提供統一的介面。它標準化不同供應商的輸入和輸出、支援成本追蹤和預算管理、提供跨模型和金鑰的負載平衡,並且可以部署為具有 OpenAI 相容 API 的代理伺服器。

LiteLLM 的統一 API 是如何運作的? LiteLLM 在標準化輸入格式和每個供應商的原生 API 之間進行轉換。你指定模型名稱(例如 claude-3-5-sonnet-20241022),LiteLLM 會處理認證、請求格式化、串流、錯誤處理和回應解析。這意味著你可以通過更改一個字串參數來切換供應商。

LiteLLM 支援成本追蹤和預算管理嗎? 是的,LiteLLM 有內建的成本追蹤功能,記錄每次請求的 token 使用量和相關成本。它支援每個使用者和每個金鑰的支出限制、預算警示,以及超出預算時的自動請求封鎖。成本資料可以匯出到 Datadog、Prometheus 或自訂 webhook 等監控工具。

LiteLLM 可以部署為代理伺服器嗎? 是的,LiteLLM 可以部署為代理伺服器,公開一個 OpenAI 相容的 API 端點。此代理處理所有上游供應商的認證、速率限制、負載平衡、快取和記錄。它可以透過 Docker、Kubernetes 或直接在 VM 上部署,使其適用於團隊使用和生產環境。

LiteLLM 適合生產環境使用嗎? 是的,LiteLLM 已被許多公司用於生產環境。它透過跨多個 API 金鑰和供應商的負載平衡支援高可用性、快取以降低成本與延遲、速率限制以防止濫用、詳細記錄以進行稽核追蹤,並且在代理模式下每分鐘可處理數千個請求。


延伸閱讀

TAG