Milk Infrastructure
Milk Infrastructure · 程式設計
Milk Infrastructure 是一套開源工具,先用 Milk Parlor 保存你的 OpenAI API 流量,再由 Milk Man 把這些呼叫變成模型測試與訓練。

關於 Milk Infrastructure
What Is Milk Infrastructure
Milk Infrastructure 是給「已經在送模型呼叫、也想留住過程資料」的人用的自架基礎設施。它由兩個程式組成。Milk Parlor 是以 Rust 寫成的小型閘道,卡在你的應用程式與模型供應商之間。Milk Man 是 Bash 代理程式,負責在保存下來的流量上跑工作:計算交換次數、寫摘要、測試模型、訓練較小的模型,再比較結果。
安裝過程刻意做得很平淡。沒有 Milk SDK,也沒有新的客戶端函式庫要學。你保留官方 OpenAI 套件,把基底網址換成 Parlor 端點,填入 Milk 金鑰,原本的呼叫照樣運作。Parlor 轉送請求、把回應串流回來,並在交換結束後把兩邊內容寫進儲存空間。使用者不必等這次寫入。
兩個限制決定它適不適合你。Parlor 只支援 POST /v1/responses 與 POST /v1/chat/completions(含串流),並不涵蓋 OpenAI API 的全部範圍。Milk 也不保證模型會變好。它保留實驗與結果,失敗的也留。想要一份通用排行榜名次,這裡沒有。
真正有意思的是流量累積之後。在你設定的里程碑上,工作會讀取新的交換與上一份摘要,存下包含主題、任務與回應時間的檢查點。接著代理程式能寫出新的訓練任務、訓練開源模型,並在同一批任務上比較答案、速度與成本。任何閘道規則要改動、客戶流量要轉向之前,都得由人簽核。
Getting Started
- 安裝 Python 或 Node 的官方 OpenAI 套件,把
OPENAI_BASE_URL指向https://parlor.milkinfrastructure.com/v1,並在OPENAI_API_KEY填入營運者核發的 Milk 金鑰。 - 應用程式碼不用動。送往 Responses 與 Chat Completions 的呼叫維持原本形狀,串流也一樣。
- 複製 milk-parlor 與 milk-man 兩個儲存庫。Parlor 需要 Rust。Milk Man 需要 Bash、Python 3、Git 與 curl,處理擷取紀錄時還需要 zstd。
- 設定儲存與模型的環境變數。本機檔案或相容於 S3 的 bucket 都能用,模型可走託管 API,也可跑在自己的 Baseten 或 Modal GPU 上。
- 用
bin/man run啟動代理程式,再開 8765 埠的選用儀表板,觀察對話、心跳、已存摘要與實驗結果。
產品資訊
快速了解 Milk Infrastructure 的定價、支援平台與效能。
適合對象
這項工具最適合的使用者、任務與情境。
使用者
- 在正式環境跑 OpenAI 相容呼叫的開發者:流量原本就在,改兩個設定值就能接上,客戶端程式碼完全不用重寫。
- 沒有資料平台的小團隊:物件儲存的目錄結構加上摘要工作,就能完成蒐集,不需要資料庫、佇列或額外的排程服務。
- 想拿小模型對比託管模型的機器學習工程師:代理程式在你的任務上訓練與比較,不是拿公開基準跑分。
任務
- 保存請求與回應配對以供日後分析:Parlor 在背景寫入符合條件的交換,依帳號與任務分組。
- 用真實使用情況累積訓練資料:由教師模型依保存的流量產生新任務,並與用來判斷進步的任務分開存放。
- 追蹤長達數週的模型實驗:每次執行先存結論再存量測值,失敗的嘗試也留在紀錄裡。
- 比較不同模型的成本與延遲:同一組任務分別跑不同模型與設定,結果彙整進同一份比較檔。
情境
- 每天有穩定用量、卻不清楚使用者到底在問什麼的聊天機器人:里程碑摘要會整理出主題與回應時間,不必人工翻紀錄。
- 想把模型調成自家領域版本、手上卻沒有標註資料的團隊:保存下來的交換就是起點。
- 要在多家供應商之間分配客戶流量的營運者:提案的繞送規則必須等人審閱簽名後才會生效。
主要功能
相容 OpenAI 的閘道與背景擷取
Milk Parlor 依照應用程式期待的方式驗證、轉送與串流模型呼叫。交換結束後,它把請求與回傳的回應寫進本機或相容 S3 的儲存空間。寫入發生在回應送出之後,擷取不會讓使用者多等。把閘道想成會轉送的呼叫記錄。
從官方 SDK 兩行完成轉換
沒有專有客戶端要學。你保留 pip install openai 或 npm install openai,只改兩個環境變數:基底網址與金鑰。呼叫 Responses 或 Chat Completions 的程式原封不動就能跑,串流也包含在內。這是整個產品摩擦最小的部分。
到達里程碑才產生摘要,不呼叫模型
心跳會計算已保存的交換數。數量跨過 MILK_SUMMARY_THRESHOLDS 設定的門檻時,工作會讀取新資料與上一份摘要,存下主題、任務與回應時間的檢查點。計數本身不消耗詞元。檔案落地後,儀表板就會補上內容。
在本機運作的 Bash 代理程式
Milk Man 直接從 Bash 啟動,不需要 Docker、本機 GPU、資料庫或獨立排程器。一個輕量心跳持有進行中的任務,等待時不呼叫模型,工作有變動或到期時再繼續。關掉儀表板不會中止工作,連線中斷也不代表任務已死。
用自己的任務做訓練與比較
代理程式會訓練開源模型、調整執行方式,並在同一組任務上與基準比較答案、速度與成本。文件中點名的第一個訓練基底是 Qwen3.5-0.8B。速度變快與答案變好分開量測,因為那是兩件不同的主張。
流量轉向之前先由人核准
Milk Man 可以為新選定的模型準備閘道規則,但規則在一名營運者審閱前不會被簽署。沒有任何客戶流量會依代理程式的判斷自行改道。這道關卡區分了實驗與事故。
優缺點
優點
- 不用學新 SDK,只改兩個值,導入成本是一個下午,不是一次遷移專案。
- 擷取發生在回應送出之後,使用者感受到的延遲不會增加。
- 全部採 Apache 2.0,跑在你自己的儲存與 GPU 上,流量不必離開你的雲端。
- 摘要與實驗紀錄只增不改,舊的執行結果可事後稽核,不會被覆蓋。
- 心跳設計讓長時間工作在你關掉分頁或 SSH 斷線後仍能存活。
缺點
- 只支援 Responses 與 Chat Completions,用到 embeddings、檔案或 assistants 端點的應用程式,得另外找路處理那些資料。
- 基礎設施要自己顧:閘道需要 Rust,代理程式需要 Python、Git、curl 與 zstd。
- 沒有託管方案,也沒有公開價目表,維運工作全落在你的團隊身上。
- 訓練需要在 Baseten 或 Modal 上租 GPU,那筆帳單與開源程式碼分開計算。
常見問題
它站在你的應用程式與模型供應商之間,保存符合條件的請求與回應配對,再對這些流量執行工作。你會得到使用者到底在問什麼的摘要、測試案例、訓練切分,以及模型之間的比較。
相關內容
探索與 Milk Infrastructure 相關的工具、技能與文章。
Milk Infrastructure 替代方案
Base Code
Base44 (Wix) · 程式設計 · 生產力Base Code 是 Base44 推出的共享雲端開發環境。團隊在對話中描述對既有 GitHub 儲存庫的修改,看著預覽確認結果,再以 Pull Request 交回工程團隊。
Google EmbeddingGemma 2
Google DeepMind · 寫作 · 圖片 · 程式設計Google EmbeddingGemma 2 是 7.4 億參數的開源模型,能把文字、程式碼、圖片、音訊與影片畫面轉成同一個 768 維空間裡的向量,在手機與筆電上就能執行。
GitGlow
GitGlow · 程式設計 · 生產力GitGlow 是桌面版 Git 用戶端,把你自己的程式碼與 AI 代理程式的變更集中在同一份審查裡,讓你在交付前看清楚機器上究竟要送出什麼。
