
盤點一下這台機器現在的住戶。引擎有三家常設(llama.cpp、vLLM、ds4),模型庫裡目前有 gpt-oss-120b、Qwen3.8-27B、Ornith 兩個版本的檔案、DeepSeek V4 Flash,還有其他要開發的新模型等等。如果每個上層應用都去設定直連特定引擎的特定連接埠,這個環境常常會碰到改版的問題,換一款模型就要改一輪所有工具的設定。
解法呢,在 Day 6 就先寫好伏筆了:所有引擎殊途同歸,都提供 OpenAI 相容 API。今天我會把這個解耦講完整,這是我們要同步使用這些模型的最佳橋梁。
它是這個 AI 時代的 POSIX。不是因為設計最優雅,是因為所有 AI 程式的客戶端都會說、所有推論引擎都聽得懂的 API。本系列測過的每一個服務端(llama-server、vLLM、trtllm-serve、Ollama、ds4-server)全部提供 /v1/chat/completions,考卷 repo 能用同一支腳本考五個配方,靠的就是這件事。
解耦的價值,會在我們改變目前要用的模型時浮現。上層工具只要記一個 base URL 加一個 model 名字,底下把 Qwen 3.8 27B 換成 Ornith 1.5、或者是把 llama.cpp 換成 vLLM,應用程式一行不改。Day 11 說過選推論引擎的決策永遠可以反悔,而當我們採用 API 層來處理服務,這即為反悔權的技術保障。
機器上同時要活著多個模型時,路線有三種,複雜度依序遞增。
第一種,各開各的埠。
llama-server 開 8080、vLLM 開 8000、ds4-server 開 8888,客戶端自己記誰在哪。優點是零額外組件,缺點是妳會需要記下埠號清單,而且沒有統一的認證與日誌。適合單人、服務三個以內的階段,我第二週的文章就是這樣辛苦地渡過。
第二種,統一閘道。
在所有引擎前面放一個反向代理或 LLM 閘道(開源選項不少,LiteLLM 是最常見的一款),對外只開放一個端點,靠請求裡的 model 欄位路由到後面的引擎。優點是單一入口、統一金鑰、統一日誌與用量統計,換後端只改閘道設定。代價是多一層元件要維運,以及多一跳的延遲(區網內通常是毫秒級,可接受)。
第三種,閘道加排程。
閘道不只管理路由,也管理服務的使用,比方說冷門模型的服務平時不跑,有 API 請求進來才拉起來,記憶體不夠時,主動卸掉最久沒用的模型,把記憶體空間釋放出來。這是把 128GB 當彈性資源池用的玩法,Ollama 內建類似機制,自組環境則要自己寫或借助現成的模型管理器。適合模型多、記憶體吃緊、又不想手動起停服務的階段。
我目前的答案是選擇第二種,統一閘道,理由是它剛好跨過「換模型不改客戶端」的門檻,又還沒把複雜度堆到需要多花時間去照顧。第三種的自動起停留,可以在模型數量再翻倍或更大規模的公司內佈署時應用。
以 LiteLLM 為例,一份設定檔把三個引擎收進同一個匝道內使用:
model_list:
- model_name: daily # 日常主力
litellm_params:
model: openai/deepseek-v4-flash
api_base: http://127.0.0.1:8888/v1
- model_name: agent # agent 工作
litellm_params:
model: openai/ornith-bf16
api_base: http://127.0.0.1:8010/v1
- model_name: zh-writer # 繁中寫作
litellm_params:
model: openai/qwen38-27b-q8
api_base: http://127.0.0.1:8080/v1
注意 model_name 那一欄的取名哲學,用途命名,不用模型命名。客戶端從此只認 daily、agent、zh-writer 三個名字,哪一顆模型在背後值班是閘道層的事。下次 Ornith 2.0 出了,改一行 api_base,所有工具無感升級,這個小技巧是今天文章中我覺得很值得採用的。
閘道起來後,所有客戶端(聊天介面、IDE 外掛、自動化腳本、下週的 agent 框架)一律指向閘道的位址。防火牆上只需要開放閘道的埠,引擎的埠全部收回 loopback,順手把攻擊面縮到最小,也可以說是資安職業病。:P
model 欄位的大小寫與斜線。 不同引擎對 model 名字的容忍度不同,有的要完整路徑有的只認別名,閘道統一取名後這個混亂被隔離在設定檔一處,這正是它的價值。
逾時要分層設。 長 prefill 的請求(餵 121K 文件)在閘道預設逾時下會被砍掉不輸出,Day 15 量過 121K 的 TTFT 是 63.65 秒,閘道與客戶端的逾時都要放大到分鐘級,串流模式開著讓首 token 早點回來續命。
健康檢查別打推論端點。 用引擎的 /health 或 /v1/models 當存活探測,拿真的 completion 請求當健康檢查,會在模型載入期間誤判為掛掉的,還得平白支付推論成本的時間和電費。
我們從量化格式走到 API 層,路線是「格式、儲存、模型、方法論、特化引擎、統一介面」,已經從一堆軟硬體組件變成一個有秩序的多模型環境了。
環境就緒後,Day 19 起是 agent 為主的內容群,Day 11 用資料去推導的「代理人平台選 vLLM」也要接受真實工作負載的驗證。
我們 Day 19 見囉。
Day 1|為什麼 2026 年是地端 AI 部署元年:系列規劃與硬體總覽
Day 2|DGX Spark GB10 深度解析:128GB 統一記憶體到底解決了什麼問題
Day 3|網路與儲存規劃:10GbE 骨幹、雙 Spark 直連與 NFS 集中模型庫
Day 4|開箱之後:DGX OS 初始環境建置與 CUDA、Docker 生態確認
Day 5|NFS 模型庫實戰:下載工具、權限設計與版本管理
Day 6|llama.cpp、vLLM、TensorRT-LLM 、Ollama、DS4 與 Unsloth 的定位與取捨
Day 7|第一個模型上線:gpt-oss-120b 從模型庫到 API 的完整流程
Day 8|llama.cpp 實測:先定量尺與 SOP
Day 9|vLLM 實測:官方容器、同時處理吞吐曲線,與剛出爐的新模型 Ornith 1.5
Day 10|TensorRT-LLM 實測:我花了一個下午,跟它的預設值搏感情
Day 11|地端 AI 三大推論引擎綜合評測,同場加映神秘嘉賓
Day 12|量化格式解析:「4-bit」兩個字,古今多少事 ? 都付笑談中
Day 13|Perplexity 把整套 Agent 搬上 DGX Spark:地端元年的官方背書
Day 14|Qwen3.8-27B 與 Flash-Next 加碼實測:地端模型世代對決與落地評估
Day 15|Ornith 1.5 實測:為 AI agent 而生的 35B-A3B
Day 16|模型選型方法論:五個問題幫你跳脫排行榜迷失,找到適合自己任務用的 AI 模型
Day 17|ds4 深度解析:Redis 之父只為一種模型造了一個引擎
Day 18|OpenAI 相容 API 層:地端 AI 多模型常駐好助手
Day 19|地端 agent 框架總覽:它們到底對你的端點做了什麼呢?