Skip to main content
Buttress サーバーは --config で渡された 1 つの TOML ファイルを読み込みます。各セクションは任意で、省略するとデフォルトが使われます。

最小サンプル

トップレベルセクション

[server]

[runtime]

すべての generator が共有するデフォルト値。[generators.model] の generator 単位の値が優先され、それ以外はここで定義した値が適用されます。

[runtime.session_cache]

ggml-llm generator では、リクエスト間で KV cache の状態をディスクに保持し、同じ prompt 接頭辞を持つ後続の completion で prompt 処理をスキップできます。
キャッシュファイルは {cache_dir}/.session-state-cache/ に保存されます。 mlx-llm{cache_dir}/mlx-session-cache/ に別の session cache を持ち、generator ごとに個別設定されます。

[[generators]]

[[generators]] ブロックは、サーバーがホストする 1 つのモデルを宣言します。複数モデルを提供する場合はブロックを繰り返します。各ブロックには 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 は量子化をリポジトリ自体から取得し、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 への呼び出しを拒否します。chat モデルの設定を流用せず、埋め込みモデルには専用の [[generators]] ブロックを用意してください。埋め込み context はネイティブシーケンスを 1 つだけ使うため、並列デコードのスロットは適用されません。語彙のみの context には計算バックエンドがまったくないため、tokenizer の呼び出しにしか応えられません。 同じリポジトリを chat・埋め込み・語彙のみと、異なるモードで複数回ホストできます。モードごとに generator レジストリの別エントリになるので、ある利用側の context が別の利用側の設定を引き継ぐことはありません。Vector Store brick は、このファイルに書かなくてもこれら 2 つのキーをリモートから指定します。 マルチモーダル(mtmd) — 同じリポジトリから対応する 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 / ボコーダー GGUF を組み合わせて音声を合成します。どちらもメモリに常駐し、出力は WAV ファイルです。 モデルファミリー — OuteTTS、Soprano、NeuTTS、CSM、Qwen3-TTS、MOSS-TTSD、MOSS-TTS-Realtime、Chatterbox、BlueMagpie — は必要な合成フローとともにバックボーンから自動判別されるため、ファミリーごとの設定は不要です。サーバーは駆動できるファミリーの一覧をアナウンスし、アナウンスされていないファミリーを要求したデバイスは、内容の異なる音声を受け取る代わりにローカル実行のままになります。
このバックエンドには phonemizer が組み込まれていないため、NeuTTS は音素ではなく生のテキストを受け取ります。これはデバイス側の generator と同じ制限です。
[generators.backend] [generators.model] — 上記の共通 ggml キーに加え: バックボーンと codec を同梱するリポジトリは、ファイル名(codecvocoderwavtokenizerdacmimi)で振り分けられます。無関係な 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 プロセッサが必要とする torch および torchvision をインストールします。既存の venv に mlx_vlmtorch がインポート可能な状態であれば、インストールはスキップされます。 [generators.model] — 共通の repo_id / revision / download に加え: quantizationfilenamepreferred_quantizations使われません。量子化は MLX リポジトリ自体が決定します。 Runtime 追加設定mlx-llm 用、[runtime] の下:

onnx-stt(ONNX Runtime / Whisper)

Whisper ONNX モデルによる自動音声認識。重みは Hugging Face リポジトリの onnx/ サブフォルダから {cache_dir}/{owner}/{repo}/ にダウンロードされ、バックエンドは最終テキストを返す前に部分的な文字起こし結果をストリームします。 [generators.backend] 設定したプロバイダーがどれも初期化できない場合、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 リポジトリの 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 で自身を通知し、同じ LAN の Foundation デバイスから検出可能にします。自動検出はデフォルトで有効です。
autodiscover = false に設定すると検出が完全に無効になります。プロトコルの詳細は自動検出リファレンスを参照してください。

[env]

起動時に適用する環境変数。ただしシステム環境にまだ設定されていない場合のみ反映されます。システム変数とコマンドラインの export が優先されます。
ggml バックエンドが読むのは HUGGINGFACE_TOKEN です(HF_TOKEN ではありません)。変数名に依存せず単一の token をすべてのバックエンドに適用したい場合は、代わりに [runtime] huggingface_token を設定してください。

互換エンドポイント

これらのエンドポイントは実験的機能です。スキーマ、エラー形式、CORS デフォルトは変更される可能性があります。
サーバーはネイティブの WebSocket RPC に加えて、OpenAI および Anthropic 互換の HTTP ルートを公開できます。各機能はオプトインです。
各エンドポイントは環境変数経由でも有効化できます:ENABLE_OPENAI_COMPAT_ENDPOINT=1 または ENABLE_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 ワークスペースとペアリングして認証を有効化します。

LAN 自動検出

Foundation デバイスが LAN 上でサーバーを見つける仕組み。