Metadata-Version: 2.4
Name: local-llm-server
Version: 0.35.0
Summary: ローカルLLM（mlx / mlx-vlm / llama.cpp / vLLM / SGLang）を OpenAI 互換 API で束ねるマルチモデルゲートウェイ（サーバー）。gateway.toml のカタログを 1 ポートで配信し、model で振り分け・遅延起動・LRU 退避・MTP 高速化（Ollama 流の共有デーモン）。接続用クライアントは別パッケージ local-llm-client。
Author: ToPo-ToPo-ToPo
License-Expression: Apache-2.0
Project-URL: Repository, https://github.com/ToPo-ToPo-ToPo/local-llm-server
Keywords: llm,local-llm,mlx,mlx-vlm,llama.cpp,openai,server,inference
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: psutil>=5.9
Requires-Dist: mlx-lm>=0.31.3; sys_platform == "darwin" and platform_machine == "arm64"
Requires-Dist: mlx-vlm<0.6.4,>=0.6.3; sys_platform == "darwin" and platform_machine == "arm64"
Requires-Dist: transformers<5.13
Requires-Dist: mlx-whisper>=0.4.3; sys_platform == "darwin" and platform_machine == "arm64"
Requires-Dist: imageio-ffmpeg>=0.4.9
Provides-Extra: vllm
Requires-Dist: vllm; sys_platform == "linux" and extra == "vllm"
Provides-Extra: sglang
Requires-Dist: sglang; sys_platform == "linux" and extra == "sglang"
Dynamic: license-file

# local-llm-server

ローカルLLM（**mlx** / **mlx-vlm** / **llama.cpp**）と音声認識（**whisper** / STT）を束ねる
**マルチモデルゲートウェイ**。1 プロセス起動するだけで、1 つの公開ポートに複数モデルを配信する。
モデルの事前登録は不要——クライアントが指定した `model` をその場でロードする。
特徴の全体像は [docs/features.md](docs/features.md)。

## インストール

[uv](https://docs.astral.sh/uv/) を使う。一度入れれば**どこからでも `gw`**。

```bash
git clone https://github.com/ToPo-ToPo-ToPo/local-llm-server
cd local-llm-server
make install       # `gw` を PATH に導入（~/.local/bin/gw）
source ~/.zshrc    # PATH を今のシェルに反映（または新しいターミナルを開く）
```

`~/.local/bin` が PATH に無いと警告されたら `uv tool update-shell` を一度実行してから
`source ~/.zshrc` する。アンインストールは `make uninstall`（→ [docs/operation.md](docs/operation.md)）。

## 使い方

```bash
gw start      # 裏で常駐起動（初回は設定を自動生成）
gw status     # 稼働/停止・PID・URL・起動経過を表示
gw list       # 使えるモデル一覧（カタログ＋HF キャッシュ）
gw stop       # 停止
```

設定は **`~/.config/local-llm-server/gateway.toml` の 1 箇所**（初回の `gw start` が自動生成。
→ [docs/gateway.md](docs/gateway.md)）。

接続は公開ポート（既定 `http://127.0.0.1:8799/v1`）に繋いで `model` を選ぶだけ。
接続クライアントは別パッケージ [local-llm-client](https://pypi.org/project/local-llm-client/):

```python
from local_llm_client import LLMClient

llm = LLMClient(model="ToPo-ToPo/Qwen3.6-27B-mlx-4bit",
                base_url="http://127.0.0.1:8799/v1")
print(llm.respond("ローカルLLMの利点を3つ。"))
```

## ドキュメント

- [docs/features.md](docs/features.md) — 特徴と全体像
- [docs/operation.md](docs/operation.md) — `gw` サブコマンドでの起動・停止・状態確認・アンインストール
- [docs/gateway.md](docs/gateway.md) — `gateway.toml` の全フィールドと振る舞い
- [docs/llama-cpp.md](docs/llama-cpp.md) — llama.cpp（`llama-server`）の自動導入・最新モデル追従
- [docs/vllm.md](docs/vllm.md) — vLLM / SGLang（高スループット生成）
- [docs/mtp.md](docs/mtp.md) — MTP による高速化

## ライセンス

Apache-2.0
