Skip to main content
Buttress 伺服器透過 --config 讀取單一 TOML 檔案。每個區段皆為選填,省略時會使用預設值。

最小範例

頂層區段

[server]

[runtime]

所有 generator 共用的預設值。[generators.model] 下的逐項 generator 設定會優先生效,否則套用這裡的預設值。

[runtime.session_cache]

針對 ggml-llm generator,伺服器可在請求之間保留 KV cache 狀態,讓共用相同 prompt 前綴的後續完成可省略 prompt 處理。
快取檔案存放於 {cache_dir}/.session-state-cache/ mlx-llm 使用獨立的 session cache,位於 {cache_dir}/mlx-session-cache/,每個 generator 個別設定。

[[generators]]

每個 [[generators]] 區段宣告一組伺服器要提供的模型。可重複多次以提供多個模型。每個區段都包含 type、可選的 [generators.backend] 表,以及 [generators.model] 表。typeggml-llmggml-sttggml-ttsmlx-llmonnx-sttonnx-tts 其中之一。

共用 [generators.model]

所有 generator 類型(ggml-llmggml-sttggml-ttsmlx-llmonnx-sttonnx-tts)都適用: ggml-llmggml-sttggml-tts 適用。mlx-llm 的量化由 repo 本身決定,而 ONNX 後端(onnx-sttonnx-tts)改以 dtype 選擇權重,因此三者皆會忽略以下鍵:

ggml-llm(llama.cpp / GGUF)

[generators.backend] 僅控制後端選擇與資源規劃。Runtime 覆寫(n_ctxn_gpu_layersflash_attn_type 等)請放在 [generators.model] 下。 [generators.backend] [generators.model] — 除了上述共用 ggml 鍵外,每個 [runtime] 鍵都可在 generator 層覆寫:n_ctxn_gpu_layersn_batchn_ubatchn_threadsn_paralleln_cpu_moeflash_attn_typecache_type_kcache_type_vkv_unifiedswa_fullctx_shiftuse_mmapuse_mlockno_extra_buftscpu_maskcpu_strictdevices 嵌入模型 專用的嵌入模型需要 embedding = true本地函式中的 context.buttress.embedding 會拒絕未設定此鍵的 generator,因此請為嵌入模型建立獨立的 [[generators]] 區塊,不要沿用 chat 模型的設定。嵌入 context 只會執行單一原生序列,因此平行解碼 slot 對它不適用。僅載入詞彙表的 context 完全沒有運算後端,只能服務 tokenizer 呼叫。 同一個 repo 可以用不同模式載入多次 — chat、嵌入、僅詞彙表。每種模式在 generator 登錄表中都是獨立項目,因此某個使用者的 context 不會繼承另一個的設定。Vector Store brick 會從遠端驅動這兩個鍵,而不需要在這個檔案中出現。 多模態(mtmd) — 從同一 repo 自動下載對應的 mmproj-*.gguf Speculative decoding

ggml-stt(whisper.cpp)

[generators.backend] [generators.model] — 除了上述共用 ggml 鍵外: Runtime 額外設定 — 僅 ggml-stt 適用,放在 [runtime] 下:

ggml-tts(llama.cpp + codec.cpp)

以 GGUF 主幹模型搭配其 audio codec / vocoder GGUF 進行語音合成,兩個檔案都會常駐記憶體,輸出為 WAV 檔案。 模型家族 — OuteTTS、Soprano、NeuTTS、CSM、Qwen3-TTS、MOSS-TTSD、MOSS-TTS-Realtime、Chatterbox 或 BlueMagpie — 會從主幹模型偵測,連同其所需的合成流程一併判定,因此不需要為個別家族設定任何項目。伺服器會通告自己能驅動的家族清單;當裝置要求的家族未被通告時,該 brick 會留在本機執行,而不是取回內容錯誤的音訊。
此後端未接上 phonemizer,因此 NeuTTS 收到的是原始文字而非音素 — 這與裝置端 generator 的限制相同。
[generators.backend] [generators.model] — 除了上述共用 ggml 鍵外: 同時包含主幹模型與 codec 的 repo 會依檔名(codecvocoderwavtokenizerdacmimi)區分。若某個 repo 存放多種不相關的 codec,僅靠量化偏好無法判斷,請明確設定 vocoder_filename Runtime 額外設定ggml-tts 放在 [generators.runtime] 下: 輸出快取 — 合成的 WAV 會快取於磁碟的 {cache_dir}/.tts-cache/,以文字 + 模型 + 選項為鍵,因此重複的語句可立即回傳。於 [generators.runtime.output_cache] 設定:

mlx-llm(Apple Silicon)

mlx-llm 不使用 [generators.backend] 區段。 首次使用時,後端會在 {cache_dir}/mlx-env 建立 Python virtualenv,並安裝 mlx_lm_packagemlx_vlm_package,以及部分 VLM 處理器所需的 torchtorchvision。若既有 venv 已可匯入 mlx_vlmtorch,安裝步驟會跳過。 [generators.model] — 共用的 repo_id / revision / download 之外: quantizationfilenamepreferred_quantizations 不會使用,量化由 MLX repo 本身決定。 Runtime 額外設定mlx-llm 適用,放在 [runtime] 下:

onnx-stt(ONNX Runtime / Whisper)

以 Whisper ONNX 模型進行自動語音辨識。權重會從 Hugging Face repo 的 onnx/ 子資料夾下載至 {cache_dir}/{owner}/{repo}/,後端會在回傳最終文字前串流部分轉錄結果。 [generators.backend] 若所有已設定的 provider 都無法初始化,generator 便無法啟動。 [generators.model] Runtime 額外設定 — 放在 [generators.runtime] 下: 全域 [runtime]cache_dirhuggingface_tokenhttp_headers 亦適用。

onnx-tts(ONNX Runtime / Kokoro、VITS、SpeechT5)

涵蓋 Kokoro、VITS / MMS-TTS、Bert-VITS2 與 SpeechT5 模型家族的文字轉語音。輸出為 WAV 檔案。權重會從 Hugging Face repo 的 onnx/ 子資料夾下載至 {cache_dir}/{owner}/{repo}/ [generators.backend] — 與上方 onnx-stt 相同的鍵:providerprovider_preferencegpu_memory_fractioncpu_memory_fraction [generators.model] 輸出快取 — 合成的音訊會快取於磁碟的 {cache_dir}/.tts-cache/,以文字 + 模型 + 選項為鍵,因此重複的語句可立即回傳。於 [generators.runtime.output_cache] 設定: [generators.runtime]prefer_providers 鍵,以及全域 [runtime] 鍵(cache_dirhuggingface_tokenhttp_headers)的適用方式與 onnx-stt 相同。

[autodiscover]

伺服器會於 UDP 8089 廣播自己,以便相同區域網路上的 Foundation 裝置能找到。預設啟用自動探索。
設為 autodiscover = false 可完全停用自動探索。協定細節請參閱自動探索參考

[env]

啟動時套用的環境變數,但僅在系統環境中尚未設定時生效。系統變數與命令列匯出值的優先順序更高。
ggml 後端讀取的是 HUGGINGFACE_TOKEN(並非 HF_TOKEN)。若希望單一 token 套用至所有後端而與變數名稱無關,請改設 [runtime] huggingface_token

相容性端點

以下端點為實驗性功能,schema、錯誤格式與 CORS 預設值未來可能變動。
伺服器除原生 WebSocket RPC 外,可額外開放 OpenAI 與 Anthropic 相容的 HTTP 路由。每項皆需明確啟用。
每項端點亦可透過環境變數啟用:ENABLE_OPENAI_COMPAT_ENDPOINT=1ENABLE_ANTHROPIC_MESSAGES_ENDPOINT=1

[functions]

本地函式屬於實驗性功能。端點、函式檔案契約與這些設定鍵都可能在版本之間變動。
將伺服器端的 .ts / .js 檔案公開為 MCP 工具與 HTTP 端點。預設關閉。
對應的環境變數:ENABLE_FUNCTIONS_ENDPOINT=1BUTTRESS_FUNCTIONS_DIR=<dir>BUTTRESS_FUNCTIONS_HOT_RELOAD=1BUTTRESS_FUNCTIONS_ALLOW_UNAUTHENTICATED=1 檔案契約、注入的 context、端點與安全模型請參見本地函式

下一步

工作區繫結

將伺服器與 BRICKS 工作區配對並啟用認證。

區域網路自動探索

Foundation 裝置如何於區域網路上找到您的伺服器。