ローカルLLM(mlx / mlx-vlm / llama.cpp)を OpenAI 互換 API で束ねるマルチモデルゲートウェイ(サーバー)。gateway.toml のカタログを 1 ポートで配信し、model で振り分け・遅延起動・LRU 退避・MTP 高速化(Ollama 流の共有デーモン)。接続用クライアントは別パッケージ local-llm-client。
Project description
local-llm-server
ローカルLLM(mlx / mlx-vlm / llama.cpp)を束ねるマルチモデルゲートウェイ。
gateway.toml にモデルを並べて 1 プロセス起動するだけで、1 つの公開ポートに複数モデルを配信する。
gateway.toml(モデルカタログ)を書いて起動するだけ。- 1 つの公開ポートで複数モデルを配信し、リクエストの
modelで振り分ける。 - モデルは初回リクエスト時に遅延起動、
max_resident超過で LRU 退避、idle_timeoutで自動アンロード。 - 接続側は公開ポートに繋いで
modelを選ぶだけ(接続クライアントは別パッケージ)。
インストール
uv を使う。
[backend] は推論バックエンドを入れる extra。
[ ] はシェル(zsh)の glob 展開を避けるためクォートする。
1. Apple Silicon で推論する(mlx-lm / mlx-vlm)
uv add "local-llm-server[mlx]"
2. その他の OS(Linux / Windows / Intel Mac)— llama.cpp
ゲートウェイ本体だけ入れる(バックエンド extra は不要):
uv add local-llm-server
推論には llama.cpp の llama-server を別途インストールして PATH に通す(例: brew install llama.cpp、
公式リリース、ソースビルド)。gateway.toml の [[models]] で backend = "llama-cpp" を指定する。
使い方
1. gateway.toml を置く
カレントディレクトリに gateway.toml を置く。リポジトリ直下に例を同梱(→ gateway.toml):
host = "127.0.0.1"
port = 8799 # クライアントの base_url はここ
max_resident = 1 # 同時常駐モデル数の上限(超過は LRU 退避)
[[models]]
model = "mlx-community/Qwen3.6-27B-4bit"
backend = "mlx-vlm"
2. 起動
uv run local-llm-server # TUI ダッシュボード(状態を自動更新表示)
3. 接続
公開ポートに繋ぎ、model で使うモデルを選ぶ。接続クライアントは別パッケージ
local-llm-client
uv add local-llm-client
from local_llm_client import LLMClient
llm = LLMClient(model="mlx-community/Qwen3.6-27B-4bit",
base_url="http://127.0.0.1:8799/v1")
print(llm.respond("ローカルLLMの利点を3つ。"))
ドキュメント
- docs/gateway.md —
gateway.tomlの全フィールドと振る舞い - docs/operation.md — 起動・停止・監視(ターミナル/GUI アプリ)・アンインストール
- docs/mtp.md — MTPによる高速化
ライセンス
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file local_llm_server-0.13.1.tar.gz.
File metadata
- Download URL: local_llm_server-0.13.1.tar.gz
- Upload date:
- Size: 64.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
135abcfe23dcda2a243a563ddf3adff8818fc9041eaba313d25cde6d42cf2e0d
|
|
| MD5 |
939ffa2dac2c70177af4e44a568acbaa
|
|
| BLAKE2b-256 |
043405153ac4e536dc26fed4a5e5fabbbf07e24cc402c5c121a4d7e27b47ceac
|
File details
Details for the file local_llm_server-0.13.1-py3-none-any.whl.
File metadata
- Download URL: local_llm_server-0.13.1-py3-none-any.whl
- Upload date:
- Size: 55.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7de9784e0a1ca36ed29640a1c27e1d5d456b3c783c6c94a2c30d5c76a5b98c4
|
|
| MD5 |
c86deb0f04f73e8a3426aec70a1fb21c
|
|
| BLAKE2b-256 |
d6964064779c224b5a72bbd64e417828180d9b33a84903617e748107dbcafdb0
|