跳至主要內容
LiteLLM 正在遷移至 Rust 閱讀最新進度更新。

v1.98.0 - 預置吞吐量計費、影子評估與路由群組

部署此版本​

docker run \
-e STORE_MODEL_IN_DB=True \
-p 4000:4000 \
docker.litellm.ai/berriai/litellm:1.98.0
重大變更

Langfuse 中繼資料 blob 現在改為來自 StandardLoggingPayload allowlist,而不是原始請求中繼資料。 約有 20 個欄位不再出現在 generation 中,實測從 52 個鍵降到 38 個,因此任何基於 model_group、model_info、deployment、deployment_model_name、model_group_alias、model_group_size、litellm_api_version、litellm_received_at、litellm_parent_otel_span、queue_time_seconds、attempted_retries、max_retries、agent_id、caller_tags、inherited_tags、global_max_parallel_requests、user_api_key,或剩餘的 user_api_key_* budget 與 permission-id 欄位所建立的任何已儲存 Langfuse 篩選器、儀表板或警示都將不再相符。model_group 和 deployment id 仍可從 hidden_params 取得。直接 SDK 呼叫端若傳入扁平的自訂中繼資料,必須將其巢狀化,metadata={"metadata": {"my_key": "v"}},且它會出現在 requester_metadata 底下;代理呼叫端不受影響。debug_langfuse 現在輸出的是呼叫端純量,而不是原始中繼資料傾印。請參閱 PR #36744。

Global Control Plane worker registry 現在需要 Enterprise 授權。 若 proxy 已設定 worker_registry 但沒有有效的 LITELLM_LICENSE,則會拒絕啟動,而不會再在未授權狀態下靜默執行。請設定有效授權以保留 control plane,或移除 worker_registry 鍵以在沒有它的情況下啟動。請參閱 PR #36996。

litellm_settings.callbacks 項目若其 dotted path 指向一個 class,現在會在設定載入時失敗。 這類項目過去會被接受但靜默無作用:proxy 會啟動、提供流量,卻從未執行該 hook。請將該項目指向一個 instance 或 function,例如 custom_callbacks.proxy_handler_instance,即可重新啟動。請參閱 PR #36858。

重點摘要​

  • 保留容量以保留容量計費 - 現在 deployment 可帶有 ptu_count 與 cost_per_ptu_per_hour,並具有有效期間;每日彙總會按啟用的小時為每個 model 寫入平坦成本,且該 deployment 上的 per-token 計費會完全關閉,因此為 provisioned throughput 付費的團隊不會再為同一筆流量被重複收費。歸屬為環境變數後才啟用,而與 PTU 設定一同傳入的價格會被 400 拒絕
  • 您可以在採用 auto-router 前先衡量它 - shadow eval job 會抽樣某個 key 的一部分成功流量,將其回放到 auto-router,並在一個不會提供回應也不會增加延遲的分離任務中執行,之後由 LLM judge 以隨機化 A/B 標籤盲測比較兩個答案。計數、狀態、judge 花費,以及按 tier 與 incumbent model 分組的勝率,全都由讀取時從每個樣本一筆 append-only row 推得,且該 job 也會反向執行
  • Routing groups 可以像模型一樣被呼叫 - model=<group_name> 現在會依據群組自身的策略,在成員 deployment 的聯集上進行路由,群組名稱會出現在 /v1/models 中,因此 Claude Code 與 Codex discovery surface 能看見它們,而且可授權給 keys 和 teams。Create Group modal 從第一天起就承諾了這件事
  • 每個回應都可陳述自己的成本明細 - 六個 x-litellm-response-cost-* 標頭會與總計一起送出,其中 input、cache read、cache creation、output 與 tool usage 的總和會精確等於總計,而 reasoning 則是 output 的子集合,因此平台團隊無需本地價格表即可按元件歸屬支出
  • TPM 預留會遵循宣告的輸出大小 - 現在可為每個 key、每個 team 與每個 model 宣告預期輸出 token,而不是所有 tenant 共用一個靜態下限,因此並行請求不再會超出團隊的 TPM 上限,而那些模型輸出遠少於預期的團隊也不會再被限流。若未設定,則行為完全相同且無需遷移
  • Admin UI 脫離 antd 與 Tremor 的工作邁出至今最大一步 - 這個版本中的 75 個 UI pull request 已將 navbar、playground、guardrails、usage、cost tracking、models 與 endpoints、team 與 user 介面、log details drawer、AI Hub,以及大量共用元件庫遷移到 shadcn(base-vega)原語。遷移尚未完成;兩個程式庫仍是相依套件,且仍支援儀表板的部分區塊

新增提供者與端點​

新增提供者(1 個新提供者)​

提供者支援的 LiteLLM 端點說明
Nimble/searchNimble 的 Search API,作為第 18 個原生搜尋提供者,已註冊至 provider enum、config map、pricing map 與 dashboard,價格為每次查詢 $0.005

新增 LLM API 端點(2 個新端點)​

端點方法說明文件
/v1/indexesGET僅供 Admin 使用的已註冊 vector store index 清單,依最新優先排序,方便稽核透過 POST /v1/indexes 建立的 indexesVector Stores
/auto_router/shadow_eval/{start,stop,{job_id}}POST, GET啟動、停止並讀取 auto-router 的採用前 shadow eval job,回傳推得的計數、judge 花費、最新錯誤與勝率Auto Router

新模型 / 更新模型​

新增模型支援(52 個新模型)​

提供者ModelContext WindowInput ($/1M tokens)Output ($/1M tokens)Features
Anthropicclaude-mythos-51M$10.00$50.00推理、自適應思考、xhigh 和 max reasoning effort、視覺、PDF 輸入、電腦使用、函式呼叫、工具選擇、提示快取、回應結構描述、輸出設定
Anthropicclaude-mythos-preview1M$10.00$50.00推理、自適應思考、xhigh 和 max reasoning effort、視覺、PDF 輸入、電腦使用、函式呼叫、工具選擇、提示快取、回應結構描述、輸出設定
OpenAIgpt-transcribe---音訊轉錄,每秒 $0.000075
OpenAIgpt-live-transcribe---音訊轉錄,每秒 $0.00028333
OpenAIgpt-realtime-translate16K--即時、音訊輸入與輸出,每秒 $0.00056667
Google Geminigemini/gemini-3.7-flash1M$0.75$3.75推理、視覺、音訊輸入、影片輸入、PDF 輸入、函式呼叫、平行函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋、URL 內容、原生串流
Google Geminigemini/gemini-3.1-flash-tts-preview8K$1.00$20.00音訊語音
Google Geminigemini/gemini-robotics-er-2-streaming-preview-$2.00$10.00視覺、音訊輸入、影片輸入、函式呼叫、網頁搜尋
Google Vertex AIvertex_ai/gemini-3.7-flash1M$0.75$3.75推理、視覺、音訊輸入、影片輸入、PDF 輸入、函式呼叫、平行函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋、URL 內容、原生串流
Google Vertex AIgemini-3.7-flash1M$0.75$3.75推理、視覺、音訊輸入、影片輸入、PDF 輸入、函式呼叫、平行函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋、URL 內容、原生串流
xAIxai/grok-4.6500K$2.00$6.00推理、視覺、函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋、超過 200K 分級定價
xAIxai/grok-build-0.1256K$1.00$2.00推理、視覺、函式呼叫、工具選擇、提示快取、回應結構描述、超過 200K 分級定價
xAIxai/grok-4.20-0309-non-reasoning1M$1.25$2.50視覺、函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋
xAIxai/grok-4.20-multi-agent-03091M$1.25$2.50推理、視覺、函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋
Mistralmistral/mistral-small-2603262K$0.15$0.60推理、函式呼叫、工具選擇、回應結構描述、assistant prefill
Mistralmistral/labs-leanstral-1-5262K$0.00$0.00函式呼叫、工具選擇、回應結構描述
Mistralmistral/mistral-moderation-2603131K$0.00$0.00內容審核
Mistralmistral/voxtral-mini-2602---音訊轉錄,每秒 $0.00005
Mistralmistral/voxtral-mini-transcribe-realtime-2602---音訊轉錄,每秒 $0.0001
Mistralmistral/voxtral-mini-tts-2603---音訊語音,每個輸出字元 $0.000016
Groqgroq/qwen/qwen3.6-27b131K$0.60$3.00推理、視覺、函式呼叫、工具選擇
Groqgroq/meta-llama/llama-prompt-guard-2-22m512$0.03$0.03聊天
Groqgroq/meta-llama/llama-prompt-guard-2-86m512$0.04$0.04聊天
Groqgroq/canopylabs/orpheus-v1-english4K--音訊語音,每個字元 $0.000022
Groqgroq/canopylabs/orpheus-arabic-saudi4K--音訊語音,每個字元 $0.00004
Metameta/muse-spark-1.21M$1.25$4.25推理、minimal 和 xhigh reasoning effort、視覺、PDF 輸入、函式呼叫、平行函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋
Metameta/muse-spark-1.2-contributor1M$0.10$0.20推理、minimal 和 xhigh reasoning effort、視覺、PDF 輸入、函式呼叫、平行函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋
Azure AIazure_ai/grok-4.3200K$1.25$2.50推理、視覺、函式呼叫、工具選擇、提示快取、回應結構描述、網頁搜尋
Azure AIazure_ai/FW-DeepSeek-V3.2164K$0.62$1.85推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-DeepSeek-V4-Pro1M$1.925$3.828推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-GLM-5200K$1.10$3.52推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-GLM-5.1203K$1.54$4.84推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-GLM-5.21M$1.54$4.84推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-GLM-5.2-Fast1M$2.10$6.60推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-Inkling1M$1.00$4.05推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-Kimi-K2.5262K$0.66$3.30推理、視覺、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-Kimi-K2.6262K$1.045$4.40推理、視覺、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-Kimi-K2.7-Code262K$1.05$4.40推理、視覺、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-Kimi-K31M$3.30$16.50推理、視覺、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-MiniMax-M2.51M$0.33$1.32推理、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-MiniMax-M3512K$0.33$1.32推理、視覺、函式呼叫、工具選擇、提示快取
Azure AIazure_ai/FW-Nemotron-3-Ultra-NVFP4262K$0.60$2.40推理、函式呼叫、工具選擇、提示快取
DashScopedashscope/deepseek-v4-flash1M$0.20$0.40推理、函式呼叫、工具選擇、提示快取、回應結構描述
DashScopedashscope/deepseek-v4-flash-07311M$0.20$0.40推理、函式呼叫、工具選擇、提示快取、回應結構描述
DashScopedashscope/deepseek-v4-pro1M$2.40$4.80推理、函式呼叫、工具選擇、提示快取、回應結構描述
DashScopedashscope/glm-5.1203K$1.40$4.40推理、函式呼叫、工具選擇、提示快取、回應結構描述
DashScopedashscope/glm-5.21M$1.40$4.40推理、函式呼叫、工具選擇、提示快取、回應結構描述
DashScopedashscope/kimi-k2.7-code229K$0.95$4.00推理、視覺、函式呼叫、工具選擇、提示快取、回應結構描述
DashScopedashscope/qwen3.8-max992K$2.00$6.00推理、視覺、函式呼叫、工具選擇、提示快取、回應結構描述
DeepInfradeepinfra/nvidia/NVIDIA-Nemotron-3.5-Lightning262K$0.05$0.20推理、函式呼叫、工具選擇
OpenRouteropenrouter/nvidia/nemotron-3.5-lightning262K$0.05$0.20推理、函式呼叫、工具選擇
Nimblenimble/search---搜尋,每次查詢 $0.005

除了新增項目之外,此版本也進行了一次大規模的成本對應維護:270 個既有項目新增或修正了提供者公告的 deprecation_date,涵蓋 Bedrock、Mistral、Cohere、Gemini、OpenAI 和 xAI,另有 85 個新增了 search_context_cost_per_query 區塊。xAI 定價在兩個方向都已修正:grok-4.20 推理與非推理變體從每 1M tokens $2.00 / $6.00 降至 $1.25 / $2.50,且其 context window 從 2M 修正為 1M;同時 grok-code-fast 則從 $0.20 / $1.50 上調至 $1.00 / $2.00。Bedrock Mantle 的 openai.gpt-5.6-sol、-terra 與 -luna 項目從 272K context window 調整為 1M,並對應超過 272K 的分級;gpt-5-pro 的 max output 從 128K 提升至 272K;DeepSeek V4 項目的最大輸出從 8K 調整為 393K;而 Groq 的 llama-3.1-8b-instant、llama-3.3-70b-versatile 與 gpt-oss 項目已與 Groq 自身文件重新同步。17 個項目標記了原生結構化輸出,43 個標記了 supports_tool_search,另有 29 個標記了 reasoning-effort。未移除任何定價項目。

功能​

錯誤修正​

  • Amazon Bedrock
    • AWS 請求使用部署的憑證,並在批次檔案記錄中解析別名 - PR #36160, PR #36159
    • 在所有讀取 managed-batch 輸出 bucket 的路徑上解析它,並停止 managed-batch litellm_params 洩漏給提供者 - PR #37047, PR #37048
    • 在 Converse 中移除 Claude Sonnet 5 的 toolSpec.strict - PR #33196
    • 為帶有文件的 Converse 使用者訊息新增文字區塊 - PR #36499
    • 在 Invoke /v1/messages 時為 Haiku 4.5 傳送 tool-search beta 標頭 - PR #36502
    • 透過 /v1/messages 橋接保留 adaptive thinking effort - PR #36507
    • 在 invoke tools 時先提升 custom.defer_loading,再移除 custom - PR #36855
    • 對 Anthropic server-side web_search tool 傳回可採取行動的錯誤,而非提供者失敗 - PR #36473
    • 為 GLM 5 和 DeepSeek V3.2 啟用原生結構化輸出,並在每個 Bedrock id 上宣告此功能 - PR #35669, PR #36597
    • 將 Bedrock Mantle GPT-5.6 Sol、Terra 與 Luna 項目的 context window 提升為 1M,並使用 long-context 定價 - PR #36698
  • Anthropic
    • 保留中途的系統修正 - PR #34290
    • 在 usage 中保留 speed=fast,適用於 /v1/messages 與 pass-through - PR #36447
    • 在 Anthropic-direct claude-sonnet-5 和 claude-haiku-4-5 上標記原生結構化輸出 - PR #35930
  • Google Vertex AI
    • 將 /v1/embeddings 批次列轉換為 Gemini embedding 形狀 - PR #35092
  • Azure AI
    • 辨識真正的 Search 文件端點,讓團隊可透過 passthrough 讀取與寫入 - PR #36798
  • Databricks
    • 在串流分塊中顯示提供者使用量,包括 prompt-cache 計數 - PR #36943
  • NVIDIA NIM
    • 保留影像片段,並停止將 top_k 傳送至 /v1/ranking - PR #34177
  • Groq
    • 將 Groq registry 與 Groq 的文件同步 - PR #36664
  • OpenAI
    • 當輸出預算容納不下任何 token 時,回傳長度截斷的 200 - PR #36859
  • 一般
    • 隨基礎 SDK 一併提供 boto3,讓 Bedrock 可在 pip install litellm 開箱即用 - PR #36568
    • 讓明確指定的提供者優先於已知的 OpenAI 模型名稱 - PR #36800
    • 更新棄用日期、修正 xAI 定價、新增缺少的提供者模型,並修正 DeepSeek V4 的最大輸出 - PR #36403, PR #36538, PR #36788, PR #36925

LLM API 端點​

功能​

錯誤​

  • Responses API
    • 保留 Codex namespace tool calls - PR #32536
    • 在橋接串流 iterator 上初始化 completed_response - PR #35413
    • 將 interaction step 與 turn history 對應到 Responses API roles 與 content types - PR #36733
  • 批次處理
    • 停止在 list 和 cancel 中重複轉送 custom_llm_provider - PR #32813
  • 受管理檔案
    • 停止 /{provider}/v1/files 擷取 /openai_passthrough - PR #36092
    • 將檔案清單分頁游標限定於呼叫端,並在呼叫端限定的頁面上回報 has_more 為 false - PR #36093, PR #36326
  • 直通
    • 停止將用戶端的 Accept-Encoding 向上游轉送,因為當 Anthropic 開始以 brotli 壓縮 JSON 後,這會在原生 Docker 映像中搞亂 Claude Code 的 /v1/models 與 count_tokens 主體 - PR #37058
  • Anthropic /v1/models
    • 一律傳出 token limits,若未知則為 null - PR #36961
  • Web 搜尋
    • 停止將攔截控制欄位洩漏給提供者 - PR #36480
  • 一般
    • 讓 tool_result 圖像對 OpenAI 相容提供者可見 - PR #34462
    • 停止在錯誤內容中的單獨 429 壓過例外對應中的狀態碼 - PR #36705

管理端點 / UI​

功能​

  • 虛擬金鑰
    • 透過 enable_prompt_caching 提供每個金鑰的 prompt 快取切換,並在建立與編輯金鑰時於 Admin UI 提供開關 - PR #36466
    • 新增 config_updated_at 稽核時間戳記 - PR #36488
  • Proxy CLI
    • 透過 ~/.litellm/config.json 使隱藏的 lite 命令清單可設定 - PR #36816
  • Auto-router 畫面
    • 在 auto-router 使用量旁新增 shadow evals 分頁,並提供方向選擇器與反向模式顯示 - PR #36588, PR #36994
    • 部署親和性切換,以及在 routing benchmark 圖表中每個層級下方顯示模型 - PR #36302, PR #36291
    • 在導覽列公告中強調 Auto Router - PR #36315
  • 儀表板
    • 在 /ui/chat 畫面上呈現請求指標,包括聊天回應指標中的提供者 prompt cache tokens - PR #36845, PR #36827
    • 在 Vector Stores 頁面顯示 vector store indexes - PR #36306
    • 在 model form 顯示 PTU 輸入,並在 Usage 頁面顯示 flat cost - PR #35393
    • 將 playground 聊天控制項移轉至 shadcn - PR #36129
    • 當未設定 Redis 時在 Admin UI 顯示警告 - PR #36495
    • 將使用者詳細資料中的 team 名稱連結到其 team 頁面 - PR #37022

錯誤​

  • 驗證與角色
    • 在 lite login session token 中帶入 team 權限,使綁定 team 的 CLI 使用者在 /v1/models 不再看到整個 proxy - PR #36826
    • 在解析 team models 時,為 /v2/model/info 展開由設定檔定義的模型存取群組 - PR #34211
    • 在 UI SSO 偵測中將 SAML 視為已設定 - PR #36196
    • 恢復 management_v1 查詢參數驗證於 fastapi>=0.140.7 下 - PR #35773
  • Teams 與存取群組
    • 從 team 與 key 寫入路徑同步 assigned_team_ids 和 assigned_key_ids - PR #36825, PR #36843
    • 在刪除 team 時清除懸掛的 team 參照與快取 - PR #36819
    • 以使用者 id 而非所指定的電子郵件來處理 member_delete 清理 - PR #36839
    • 停止重複的舊版邀請電子郵件,並修正其 onboarding 連結 - PR #36455
  • Proxy CLI
    • 在 Windows 上將 agents 以子行程啟動 - PR #36822
  • 儀表板
    • 對無法呼叫其端點的角色隱藏僅供管理員使用的 Logs 分頁,並為組織管理員恢復 Deleted Teams 分頁 - PR #36333, PR #36478
    • 將 organization 與 agent 的使用量檢視、policy 與 prompt 查詢、Old Usage 頁面,以及四個側邊欄頁面限制於其端點允許的角色之下 - PR #36334, PR #36335, PR #36469, PR #36475
    • 將 Virtual Keys 與 Logs 的 team 清單限制為呼叫者可見 - PR #36472
    • 在 virtual key 上顯示與編輯 key 層級的 router 設定 - PR #36674
    • 停止已取消選取的 MCP server 保留其在 virtual key 上的權限,並讓 MCP servers 數量徽章與其相鄰的權限徽章一致 - PR #36840, PR #36984
    • 恢復 playground 依端點篩選模型、在聊天下拉選單中保留 mode: completion models,並在提供者下拉選單中區分代管與本機 vLLM - PR #36130, PR #37954, PR #36974
    • 將 NVIDIA Riva 新增至模型提供者清單 - PR #36769
    • 對齊 spend 與 budget 欄位,並將 models table 的 Status 欄重新命名為 Source - PR #35176, PR #37021
    • 當某個視窗沒有 sessions 時顯示歸零的 auto-router 使用統計,並在 edit auto-router 表單上方開啟 classifier prompt 編輯器 - PR #36868, PR #36438
    • 讓 cost tracking 移除確認視窗保持開啟直到完成,去重置 budget 選項,停止 models 分頁列垂直捲動,並將 chips-combobox popup 錨定到欄位 - PR #36960, PR #37010, PR #36993, PR #36995
  • 儀表板內部:shadcn 遷移

AI 整合​

記錄​

  • Langfuse
    • 從 StandardLoggingPayload 來源取得發出的 metadata blob,讓團隊自己的 Langfuse 憑證不再出現在該團隊自己的 trace 中 - PR #36744
    • 將 trace steering keys 限制為真正的 Langfuse trace 欄位,並強制轉型從標頭來源取得的 mask 與 trace-update steering 值 - PR #36862, PR #36740
    • 在 Langfuse v4 讀取的 keys 上發出 OTel trace 版本與發行版 - PR #36702
  • Arize
    • 追蹤 MCP 工具呼叫,而不是在 CallToolResult 上當機 - PR #36453
  • Slack 警示
    • 對跨 pod 排程的 Slack spend reports 進行去重 - PR #36489
  • 一般
    • 透過 contextvars 選擇性啟用 session_id 與 trace_id 在 JSON log records 上的關聯 - PR #34418
    • 當 callbacks 項目不可 dispatch 時使設定載入失敗,而不是帶著默默無作用的 hook 啟動 - PR #36858
    • 在 spend logs 中記錄因無法解析的 body 而被拒絕的請求 - PR #36673

防護欄​

  • Palo Alto Networks Prisma AIRS
    • 在被封鎖的請求上回傳完整掃描回應,在允許的請求上顯示 scan_id,並將工具呼叫引數掃描為純文字而非工具事件 - PR #37036, PR #37037, PR #37038
  • Bedrock Guardrails
    • 當沒有可掃描的內容時略過 ApplyGuardrail,讓僅含工具的回合不再導致整個請求失敗 - PR #36441
    • 在 post-call hook 中掃描並重新發出原始 Anthropic SSE streams - PR #36598
  • 一般
    • 將 guardrail 載入失敗按列隔離,避免一筆壞資料把其他資料一併帶走 - PR #36432
    • 回報被 guardrail 封鎖的 /v1/responses 回覆的真實 token 使用量 - PR #36907

支出追蹤、預算與速率限制​

  • 預留輸送量 (PTU)
    • 在模型部署上設定 ptu_count、cost_per_ptu_per_hour 與有效視窗 - PR #35341
    • 在每日彙總中依啟用小時寫入每個模型的 PTU flat cost,並在每日活動讀取路徑上顯示 - PR #35343, PR #35391
    • 透過選擇加入的 env var 來控管 PTU flat-cost 歸因 - PR #36138
    • 在 PTU 設定的部署上停止按 token 計費,並停止對 grounded search 計費 - PR #36829, PR #37043
  • 速率限制
    • 為每個 key、team 與 model 宣告預期輸出 token,讓 TPM reservation 不再使用單一固定下限 - PR #36143
    • 為 TPM 限制保留較大的宣告輸出預算 - PR #37001
  • 成本追蹤
    • 在總計旁邊發出六個每個元件的 x-litellm-response-cost-* 標頭 - PR #36965
    • 追蹤 OpenAI 與 Azure web search tool 的每次呼叫成本,並從 server_side_tool_usage_details 計費 xAI web search - PR #35286, PR #30817
    • 在分級定價中支援 cache creation cost,且採全有或全無 - PR #36720
    • 將 prompt-caching 節省額與 cache-write premium 互相抵銷 - PR #36452
    • 將 Anthropic 區域地理加成套用到快取 token,並在 iterations 路徑上彙總 5m 與 1h 的 cache-write 分攤 - PR #34850, PR #34860
    • 以 image rate 計價 dict-shaped image input token 詳細資料 - PR #33490
    • 停止 zero output rate 將 transcription cost 歸零 - PR #36914
    • 在 /cost/estimate 中轉送已解析的提供者與部署定價 - PR #35880
    • 永遠不要為 strategy-router alias 定價,並停止 get_router_model_info 清除快取定價 - PR #36691, PR #36985
  • 直通與批次處理
    • 追蹤 OpenAI passthrough /v1/embeddings 的支出,在 OpenAI passthrough streams 上注入串流使用量成本,並追蹤串流化 passthrough Responses 成本 - PR #36660, PR #36503, PR #36529
    • 將預算保留帶入 passthrough request metadata,讓成功的請求不再將 reservation 洩漏到 Redis 並觸發錯誤的 BudgetExceededError - PR #36592
    • 將 Vertex 與 Anthropic passthrough batch 成本歸因到建立該批次的 key、team 與 tags - PR #34456, PR #36468
    • 僅一次記錄 managed batch 的成本,為 batch 的成本列賦予自己的主鍵,將沒有 output file 的終止 batch 標記為已處理,並停止無法計費的 batches 使 cost poll 頁面發生飢餓 - PR #37050, PR #36876, PR #35360, PR #36714
    • 在 managed object 寫入前移除 passthrough batch tags 中的 NUL 位元組 - PR #36688
  • 支出記錄與預算
    • 當 DB commit 失敗時重新排入 Redis spend buffer transactions、在傳輸錯誤時重新排入 spend logs,並停止在 flush 被取消時遺失列 - PR #33881, PR #36716, PR #34826
    • 在重設預算工作中,使用分塊重設掃描的原子式預算級聯 - PR #36287
    • 在 team 與 key 建立時接受明確的 null budget_duration,並提供可清除的 UI 下拉選單 - PR #36699
    • 在建立 spend views 時容許並行建立者 - PR #36824

MCP 閘道​

  • 將閘道 session bearer 限定於 RFC 8707 resource - PR #35045
  • 直接在 bare /mcp 上提供整合 MCP endpoint,而不是 307 redirect - PR #34845
  • 透過 DB-backed drafts 從任何 worker 解析 admin OAuth sessions,並在管理讀取中保留管理者輸入的 OAuth endpoints - PR #36844, PR #36888
  • 以 session 讀取逾時限制 MCP client 請求 - PR #36675
  • 將 client HTTP headers 暴露給 logging callbacks 與 hooks - PR #36724
  • 在已記錄的 metadata 中移除呼叫端 host 與已設定的 upstream headers - PR #36901

效能 / 負載平衡 / 可靠性改善​

  • 路由器與自動路由器
    • 讓路由群組可作為虛擬模型呼叫,並將其列於 /v1/models 中 - PR #36519
    • 針對自動路由器進行採用前的影子評估,使用盲測配對評審,並擴充以取樣 /v1/messages 與 /v1/responses 流量,以及執行反向方向作業 - PR #36587, PR #36830, PR #36865
    • 以實作範例校準複雜度分類器的評分標準,每個路由器可選,並停止對程式碼與技術複雜度的系統提示文字進行評分 - PR #36578, PR #36721
    • 新增必須 AND(&)標記前綴與 allow_fail_open 標記,允許未標記請求在共用模型名稱上繞過已標記的前路由策略,並停止將路由器選擇用的請求標記重新套用至已路由層級的部署 - PR #36193, PR #36627, PR #36628
    • 將自動路由器別名參數從標記條目而非第一個同名部署向前傳遞 - PR #36626
    • 每個部署的 allowed_fails_policy 與 cooldown_time 覆寫、失敗備援部署的冷卻時間,以及 Redis 回填後修正的冷卻時間 TTL - PR #34416, PR #35104
    • 將批次備援保留在擁有該檔案的模型群組內 - PR #36181
    • 當部署的憑證與其提供者不一致時發出警告 - PR #36486
  • 串流與連線
    • 全域 litellm_settings.sse_keepalive_ping_interval_seconds,疊加在每個部署的 keepalive_seconds SSE 心跳之上,讓安靜的串流不再因 ingress 閒置逾時而被終止 - PR #36154, PR #34423
    • 以用戶端支援重構 HTTP handler 初始化 - PR #30952
    • 快取 Anthropic /v1/messages 回應,包括串流 - PR #34581
    • 在推導 Redis from_url kwargs allowlist 時,解包已裝飾的 __init__s - PR #36654
  • 資料庫與背景作業
    • 以單一 upsert 陳述式寫入每個每日支出批次 - PR #36448
    • 限制 spend-logs 保留清理範圍,使單次執行不會使資料庫飽和 - PR #36594
    • 在各個作業與 pod 之間錯開排程背景作業 - PR #36589
    • 在 Postgres 快取計畫錯誤時強制 Prisma 重新建立 - PR #36428
    • 序列化模型協調流程,讓並行模型寫入不再互相驅逐 - PR #36687
    • 當未附加資料庫時,略過依賴 prisma 的 hooks - PR #36273
  • 部署
    • 讓 AWS Terraform 模組中的 VPC、Aurora 與 Redis 成為選用項目,如此鎖定的帳戶可重用自己的網路、Postgres 與 Redis - PR #36676
    • 在元件化 Helm chart 中新增 startupProbe 與 hpa.behavior 調整項 - PR #36382

文件更新​

  • 將 Terraform provider 發佈描述為自動化 - PR #36467
  • 在錯誤回報中要求使用者流程與 live-proxy 證明,並在功能請求中要求使用者流程加上卡住狀態證明 - PR #36498, PR #36500
  • 在修復證明區段中僅將最新執行顯示為前/後,並包含巢狀案例 - PR #37063
  • 將 Changes PR 範本區段替換為 Caveats - PR #36423
  • 以明確的 any-of 例外重寫 CLAUDE.md 註解規則,要求每個 TypedDict 欄位都加上 ReadOnly,告知代理程式讓重量級閘道排隊等候機器層級槽位,並從 PR 範本路徑中移除 @ 前綴 - PR #36301, PR #36421, PR #37005, PR #37057, PR #36726

依擁有權區域彙總 PR​

依擁有權區域分類的 PR(總計:277)

  • UI:75
  • 模型與提供者:39
  • 支出 / 預算 / 費率限制:37
  • 其他(CI / chore / tests / build / version bumps):36
  • 效能:27
  • 驗證與管理:16
  • LLM API 端點:14
  • 文件:10
  • 記錄:9
  • 防護欄:7
  • MCP:7

端到端測試​

我們正大力投資端到端測試,以減少回歸並讓 LiteLLM 在每次發佈時都更穩定。每個版本都會經過一套即時測試套件,該套件會針對真實已部署的 proxy 執行,並呼叫真實的提供者端點,而非 mock,因此我們驗證的行為就是您在正式環境中得到的行為。

這個期間新增了 18 個僅供測試的 pull request,其中 10 個碰到了即時 e2e 套件。供應商 API 覆蓋已加強,因此提供者拒絕、斷線、伺服器錯誤與缺少憑證會直接失敗,而不是通過;新的測試格涵蓋 Google-native generateContent framing、Prometheus queue time、Bedrock 上的 Anthropic web_search server tool,以及模型 allow-list 的正向案例,而不只是其拒絕情境。Admin UI e2e 測試不再只停留在成功提示:現在每個會修改狀態的流程都會斷言送出的請求本文,並從 API 讀回資源,且新增了 Logs、Playground、Usage,以及 MCP 編輯與刪除的覆蓋。三個用於解決 passthrough headers 與每模型預算開口問題的重現器已以略過狀態檢入,並在每個略過原因中標註產品缺口,因此當修復到位後,移除略過就會成為回歸測試。在維護方面,OTel 斷言現在鎖定的是提供串流的嘗試,而不是 span 計數;live Bedrock 測試已改指向已退役的 Claude 3 Sonnet;而導致 UI 套件每次執行都失敗的過時 antd 選擇器,也已改指向遷移後的儀表板實際渲染內容。

新貢獻者​

  • @Praveen11558 在 PR #30952 做出了他們的首次貢獻
  • @geraint0923 在 PR #30817 做出了他們的首次貢獻
  • @dcadenas 在 PR #32536 做出了他們的首次貢獻
  • @anxkhn 在 PR #32813 做出了他們的首次貢獻
  • @kr0k 在 PR #33196 做出了他們的首次貢獻
  • @vairodp 在 PR #33490 做出了他們的首次貢獻
  • @atomic 在 PR #34177 做出了他們的首次貢獻
  • @heathriel 在 PR #34257 做出了他們的首次貢獻
  • @eugene-yao-zocdoc 在 PR #34290 做出了他們的首次貢獻
  • @alexshtf 在 PR #35669 做出了他們的首次貢獻
  • @HuanQian571 在 PR #35773 做出了他們的首次貢獻
  • @milesadkins 在 PR #35969 做出了他們的首次貢獻
  • @daleselaji-dev 在 PR #36160 做出了他們的首次貢獻
  • @fancybear-dev 在 PR #36196 做出了他們的首次貢獻
  • @ilchemla 在 PR #36347 做出了他們的首次貢獻
  • @Louis-Vauterin 在 PR #36382 做出了他們的首次貢獻
  • @william-xue 在 PR #36529 做出了他們的首次貢獻
  • @lostmartian 在 PR #36660 做出了他們的首次貢獻
  • @FahimaGold 在 PR #36705 做出了他們的首次貢獻
  • @guptaishaan 在 PR #36907 做出了他們的首次貢獻
  • @pokepoke81 在 PR #36943 做出了他們的首次貢獻
  • @erensh27 在 PR #36965 做出了他們的首次貢獻

完整變更記錄​

https://github.com/BerriAI/litellm/compare/v1.97.0...v1.98.0