Metadata-Version: 2.4
Name: augllm
Version: 2.5.0
Summary: This is LLM interface library.
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: accelerate>=1.13.0
Requires-Dist: av>=17.0.0
Requires-Dist: huggingface-hub>=1.4.1
Requires-Dist: imageio-ffmpeg>=0.6.0
Requires-Dist: imageio>=2.37.3
Requires-Dist: librosa>=0.11.0
Requires-Dist: llama-cpp-python[server]>=0.3.16
Requires-Dist: mlx-lm>=0.31.3
Requires-Dist: mlx-vlm>=0.3.12
Requires-Dist: ollama>=0.6.1
Requires-Dist: openai>=2.24.0
Requires-Dist: pillow>=12.1.1
Requires-Dist: pymupdf>=1.27.1
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.32.5
Requires-Dist: torch>=2.11.0
Requires-Dist: torchvision>=0.25.0
Requires-Dist: transformers>=5.5.0
Description-Content-Type: text/markdown

# augllm

複数のローカル LLM ランタイムを**共通のインターフェース**で扱うための
ラッパーライブラリです。**エージェントのコア基盤**として使えます。

- **統一 API**: どのバックエンドでも `respond()` だけで生成（テキスト / 画像 / 動画）。
- **6 バックエンド**: Transformers / llama.cpp（in-process・server）/ Ollama /
  MLX / mlx-vlm サーバー（Qwen3.6・Gemma 4 の MTP 高速化）。
- **VLM 自動判定・メディア統一**: 画像 / GIF / 動画 / PDF を `media=` に渡すだけ。
- **MTP**: ドラフトモデルで生成を高速化。
- **エージェント基盤向け**: モデル/サーバー共有、確定的サンプリング、共通基底 `BaseLLM`。

## インストール

[uv](https://docs.astral.sh/uv/) を使います。

```bash
# 自分のプロジェクトに追加して使う
uv add augllm

# このリポジトリで開発する場合（依存をまとめて同期）
uv sync
```

使うバックエンドに応じた依存
（PyTorch / llama-cpp / Ollama / MLX 等）は [docs/backends.md](docs/backends.md) を参照してください。

## 使い方

### サンプルコード
`create_llm()` で作り、`respond()` で生成します。`main.py` に保存して実行します。
LLMサーバーを立てて使う例です。

```python
from augllm import create_llm

# mlx_server = mlx-vlm サーバー。draft_model="auto" で MTP(高速化)を有効化。
llm = create_llm(
    "mlx_server",
    model_path="mlx-community/Qwen3.6-27B-4bit",
    draft_model="auto",
)

for chunk in llm.respond(
    user_text="トポロジー最適化について 3 行で説明してください。",
    system_prompt="あなたは優秀な日本語アシスタントです。",
    stream=True,
):
    print(chunk, end="", flush=True)

# 使い終わったらモデル/サーバーを解放
llm.close()
```

画像・動画は `media=` に渡すだけ（`close()` の前に）。

```python
llm.respond("この画像を説明して", media="assets/think1.png", stream=True)
```

### 実行方法

```bash
uv run python main.py
```

## ドキュメント

各機能の詳細は [docs/](docs/index.md) を参照してください。
英語版 README は [README.en.md](./README.en.md) にあります。

| ドキュメント | 内容 |
|---|---|
| [architecture.md](docs/architecture.md) | アーキテクチャ・設計・エージェントコアとしての注意点 |
| [api-reference.md](docs/api-reference.md) | 統一 API・引数・メッセージ/履歴フォーマット |
| [backends.md](docs/backends.md) | 6 バックエンドの詳細 |
| [media.md](docs/media.md) | メディア入力とメッセージ変換 |
| [memory-management.md](docs/memory-management.md) | keep_alive・サーバー・自動相乗り |
| [mtp.md](docs/mtp.md) | MTP / 投機的デコード |
| [function-calling.md](docs/function-calling.md) | YAML Function Calling |
| [examples.md](docs/examples.md) | 応用レシピ（複数エージェントのサーバー共有・会話履歴・各バックエンドの詳細・Function Calling 等）とサンプルプログラム |

## 公開先
PyPI: https://pypi.org/project/augllm/

## ライセンス

本プロジェクトは **Apache-2.0 ライセンス** のもとで公開されています。
詳細は [LICENSE](https://github.com/ToPo-ToPo-ToPo/augllm/blob/main/LICENSE) を参照してください。
