LiteLLM 一定要自架嗎?想用自己的金鑰,其實有不用維運 proxy 的做法
自架 LiteLLM 最常見的理由是「想用自己的 API 金鑰」。本文拆開自架真正要付的成本、什麼情況非自架不可,以及用 BYOK(自帶金鑰)在託管閘道上達成同一件事的做法、限制與實測數字。
查詢日:2026-09-11(台北時間)。 本文的產品行為以我們自己站上的實際設定與用量紀錄為準;LiteLLM 的功能請以其官方文件為準,開源專案更新頻繁。
會找到這篇的人,多半已經在 docker compose 跟 config.yaml 之間來回過幾輪了。
先把問題問清楚:你為什麼要自架 LiteLLM?
絕大多數的答案是同一個 —— 你已經有自己的 API 金鑰,想要一個統一的入口去管它們。LiteLLM 本身不賣 token,它是一層 proxy:把你自己的 OpenAI、Anthropic、Google 金鑰放進去,對外給出一個 OpenAI 相容端點,順便做金鑰分發、用量統計、失敗重試。
**如果這是你唯一的理由,那你要的是「自帶金鑰」這個能力,不是「自己跑一台伺服器」這件事。**這兩件事在 LiteLLM 裡被綁在一起,但它們本來可以分開。
什麼情況你應該繼續自架
先講反面,因為這比較重要:下面三種情況,任何託管服務都不該說服你,包括我們。
- 請求內容不能離開你的機房。 這是自架最根本、也最無法替代的理由。金融、醫療、政府,或是內部規範寫死「不得經第三方轉送」的團隊,自架是唯一解。託管閘道無論怎麼加密、怎麼保證不留存,請求本身都會經過別人的機器。
- 你要改它的行為。 自訂路由邏輯、插自己的中介層、改計費公式。開源的價值就在這裡。
- 你已經有 DevOps 能量,而且這台 proxy 是既有系統的一部分。 那多一個容器的邊際成本接近零。
如果你屬於這三種,下面可以不用看了 —— 繼續自架是對的決定。
自架真正要付的成本(不是「跑起來」那一次)
把 LiteLLM 跑起來確實不難,一個 container 的事。真正的成本在那之後:
| 項目 | 一次性 | 持續性 |
|---|---|---|
| 部署與網路設定 | 半天到一天 | — |
| 機器費用 | — | 每月機器 + 流量 |
| 版本升級 | — | 開源專案更新頻繁,跟或不跟都要決定 |
| 金鑰輪替 | — | 每次換上游金鑰都要進設定改一輪 |
| 用量歸戶 | 接資料庫與報表 | 報表維護 |
| 出事的時候 | — | 這台掛了,你所有 AI 功能一起掛 |
最後一項是最容易被低估的:你把它放進關鍵路徑了。 一台自架 proxy 沒有備援,半夜掛掉就是你自己起來看。這不是 LiteLLM 的問題,是「多了一個要顧的元件」的問題。
另一條路:把金鑰放上來,但不用自己跑
BYOK(Bring Your Own Key,自帶金鑰) 做的就是 LiteLLM 那一層,差別在伺服器不是你的。
你把自己的上游帳號接上來,之後那個供應商的請求就用你自己的金鑰打出去、帳算在你自己的上游帳戶上。 設定是三步:填名稱與 base URL、系統即時打一次驗證並比對回傳的模型清單、完成。
你自己的金鑰失敗的時候
這是自架的人最會問的一題。有兩種模式可選:
- 無縫(預設):你的金鑰失敗時,這一次請求自動改走平台路由完成,照平台一般計費。 好處是請求不會卡住,代價是你不會每次都用到自己的金鑰。
- 嚴格:關掉自動退回。請求只走你自己的帳號,失敗就是失敗。 想要「確定每一筆都走我的 key」就選這個。
自架 LiteLLM 的人通常會自己寫 fallback 邏輯,這裡是把那件事變成一個開關。
呼叫方式
curl https://api.bazaarlink.ai/v1/chat/completions \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.6-terra",
"messages": [{"role": "user", "content": "hello"}]
}'
OpenAI 相容,既有 SDK 只改 base URL。自帶金鑰的供應商與平台代購的供應商可以混用,程式端看到的是同一個端點。
誠實的對照表
這張表的重點是右邊那欄的「做不到」。 拿掉那幾格,下面的比較就沒有參考價值。
| 自架 LiteLLM | BYOK(託管) | |
|---|---|---|
| 用自己的上游金鑰 | ✅ | ✅ |
| OpenAI 相容統一端點 | ✅ | ✅ |
| 多家上游混用 | ✅ | ✅ |
| 失敗退回策略 | 自己寫 | 兩種模式二選一 |
| 用量看得到(哪些請求走了你的金鑰) | 自己接報表 | 內建 |
| 每分鐘請求數上限 | ✅ | ✅ |
| 請求不離開你的機房 | ✅ | ❌ 做不到 |
| 改原始碼/自訂路由邏輯 | ✅ | ❌ 做不到 |
| 用金額上限管控自帶金鑰的花費 | ✅ | ❌ 做不到(見下) |
| 維運責任 | 你 | 我們 |
⚠️ 一個你應該先知道的限制
自帶金鑰的請求,我們記錄的費用是 0 —— 因為那筆錢是你直接付給你自己的上游,我們沒有經手。
這帶來一個實務後果:你不能用「每月上限 100 美元」這種金額上限去管控自帶金鑰的用量,因為那些請求不會累積到任何金額。已經設定的支出上限仍然會擋住請求(自帶金鑰不會繞過那道閘),但它不會因為你用了自帶金鑰而往上累加。
要限制自帶金鑰的用量,目前能用的是每分鐘請求數上限,以及到你自己上游後台去設該帳號的額度。如果「對每一把虛擬金鑰設定金額預算」是你自架的主要理由,那 BYOK 現在還取代不了它,這點我們不繞過去講。
那什麼情況下這條路比較划算
把上面兩張表合起來,判斷其實很簡單:
- 自架的理由是資料落地或要改程式 → 繼續自架
- 自架的理由是要用自己的金鑰 + 一個統一入口 → 這件事不需要你跑伺服器
- 自架的理由是要按金額卡住每個人的預算 → 目前自架仍然比較合適
最後一個提醒,跟技術無關:**不要因為「別人都自架」就自架。**多一個元件就是多一份維運責任,而那份責任不會出現在任何比較表上,它會出現在某個週末。
想先試
接上第一把自己的金鑰大約五分鐘,之後那個供應商的請求就走你自己的帳號。設定入口在 自帶金鑰(BYOK),完整的支援供應商清單、退回模式與金鑰加密方式都在文件裡。
FAQ
BYOK 跟自架 LiteLLM 最大的差別是什麼?
請求會不會經過第三方。自架 LiteLLM 時,請求從你的機器直接打向上游;用 BYOK 時,請求會先經過我們的閘道,再用你自己的金鑰打向上游。如果你的合規要求是「請求不得經第三方轉送」,那 BYOK 不適合你,這一點沒有折衷空間。其餘的差別(統一端點、多家上游、失敗退回、用量歸戶)兩邊都做得到,差別只在誰負責維運。
用 BYOK 的話,你們會跟我收多少錢?
自帶金鑰的請求不另外向你收取平台費用,那筆 token 費用是你直接付給你自己的上游帳戶。也因為我們沒有經手那筆錢,這些請求在用量紀錄裡的費用欄位是 0。
我自己的金鑰失敗了會怎樣?
看你選哪種模式。預設的「無縫」模式會讓這一次請求自動改走平台路由完成,照平台一般計費,好處是請求不會卡住;「嚴格」模式則關掉自動退回,請求只走你自己的帳號,失敗就回錯誤。要確保每一筆都用自己的金鑰,選嚴格模式。
可以像 LiteLLM 的虛擬金鑰那樣,對每個人設金額預算嗎?
自帶金鑰的部分目前不行。因為那些請求的費用是你直接付給上游,我們記錄的金額是 0,所以金額類的上限不會因為自帶金鑰的用量而累加。已經設定的支出上限仍然會擋住請求,但無法用它來「計量」自帶金鑰。目前能用的是每分鐘請求數上限,以及在你自己的上游後台設該帳號額度。
自帶的金鑰和你們代購的模型可以混用嗎?
可以,而且程式端只有一個 base URL。你可以把某幾家接成自帶金鑰、其餘走平台路由,呼叫時只是換 model 參數。這也是實務上最常見的用法:把已經有帳號的那幾家接上來,其他還沒開帳號的直接用平台的。