Local LLM server with OpenAI-compatible API
Project description
IXV-Core v0.4.0
ローカルLLMを OpenAI API互換で提供するサーバー。
概要
IXV-Core は、llama.cpp (llama-cpp-python) を使用して、 ローカル環境でLLMを動作させ、OpenAI API互換のエンドポイントを提供します。
Cursor や VS Code などの AI エディタから、 クラウドLLMの代わりにローカルLLMを使用できます。
v0.4.0 の新機能
- スキルシステム: LLMと連携して様々な操作を実行する拡張機能
- ファイル操作、コード実行、Git操作、RAG、Web検索
- コード分析、コーディング規約チェック、設計整合性チェック(オプション)
/ixv/skills/*エンドポイント追加
v0.3.0 の機能
- GPU対応: Metal/GPUアクセラレーションをサポート(10-50倍の推論速度向上)
- 同時実行数制限: 推論リクエストの並行処理を制限(リソース保護)
- 会話メモリの永続化: サーバー再起動後も会話履歴を保持可能
- モデルメタデータ取得:
/ixv/model/infoエンドポイント追加 - プロンプトテンプレート統合: Chat Completionsに
prompt_typeパラメータ追加
クイックスタート
1. インストール
# クローン
git clone https://github.com/yourname/ixv-core.git
cd ixv-core
# 依存パッケージのインストール
pip install -e .
2. モデルの準備
GGUF形式のモデルファイルをダウンロードします。
# 単一ファイルのモデル
./scripts/download_model.sh <repo_id> <filename>
# 分割モデル(フォルダ指定)
./scripts/download_model.sh <repo_id> --include "<pattern>"
# 例: gpt-oss-120b F16版(約65GB、単一ファイル)
./scripts/download_model.sh unsloth/gpt-oss-120b-GGUF gpt-oss-120b-F16.gguf
# 例: gpt-oss-120b Q4_K_M版(約62GB、分割モデル)
./scripts/download_model.sh unsloth/gpt-oss-120b-GGUF --include "Q4_K_M/*"
モデルは models/ ディレクトリに保存されます。
3. 起動
# 単一ファイルモデル
export IXV_MODEL_PATH=models/gpt-oss-120b-F16.gguf
./scripts/start_mac.sh
# 分割モデル(最初のファイルを指定、残りは自動で読み込み)
export IXV_MODEL_PATH=models/Q4_K_M/gpt-oss-120b-Q4_K_M-00001-of-00002.gguf
./scripts/start_mac.sh
4. 動作確認
curl http://localhost:8000/ixv/health
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "ixv-model",
"messages": [{"role": "user", "content": "Hello!"}]
}'
設定
環境変数で設定を変更できます:
| 変数名 | デフォルト | 説明 |
|---|---|---|
IXV_MODEL_PATH |
models/ixv-model.gguf |
モデルファイルパス |
IXV_PORT |
8000 |
ポート番号 |
IXV_N_CTX |
4096 |
コンテキスト長 |
IXV_N_THREADS |
8 |
スレッド数 |
IXV_N_GPU_LAYERS |
-1 |
GPUレイヤー数(-1=全レイヤーGPU, 0=CPUのみ) |
IXV_DEBUG |
false |
デバッグモード |
IXV_RATE_LIMIT_ENABLED |
true |
レート制限の有効化 |
IXV_RATE_LIMIT_REQUESTS |
10 |
レート制限: リクエスト数 |
IXV_RATE_LIMIT_PERIOD |
minute |
レート制限: 期間 (second/minute/hour/day) |
IXV_MAX_CONCURRENT_INFERENCES |
2 |
同時実行可能な推論数 |
IXV_MEMORY_PERSISTENCE |
false |
会話メモリの永続化 |
IXV_SKILLS_ENABLED |
true |
スキルシステムの有効化 |
詳細は 仕様書 を参照してください。
API
OpenAI互換
POST /v1/chat/completions- Chat CompletionsGET /v1/models- モデル一覧
IXV独自
GET /ixv/health- ヘルスチェックGET /ixv/logs- 推論ログGET /ixv/memory- 会話メモリPOST /ixv/memory/clear- メモリクリアGET /ixv/config- 設定確認GET /ixv/model/info- モデルメタデータ取得GET /ixv/prompts/types- プロンプトテンプレート一覧
スキルAPI (v0.4.0)
GET /ixv/skills- スキル一覧GET /ixv/skills/{skill_name}- スキル詳細POST /ixv/skills/execute- スキル実行POST /ixv/skills/{skill_name}/enable- スキル有効化POST /ixv/skills/{skill_name}/disable- スキル無効化
既知の問題
- 会話を続けるとコンテキストウィンドウ超過エラーが発生する - 会話メモリの蓄積により4096トークンの上限を超過する場合があります。回避策:
/ixv/memory/clearでメモリをクリア
ドキュメント
- 仕様書 - 詳細な仕様
- テスト手順 - 接続テストガイド
- スキルテスト - スキル動作確認テスト
- http://localhost:8000/docs - Swagger UI(起動後)
ライセンス
MIT
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 ixv_core-0.4.1.tar.gz.
File metadata
- Download URL: ixv_core-0.4.1.tar.gz
- Upload date:
- Size: 82.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a83e020e0c42c9e0a95dbbff03aad145215cab3109757c1ee1a37d12cf304427
|
|
| MD5 |
c0848f51190e27b08c417016bbc779df
|
|
| BLAKE2b-256 |
773a37ca9c5366bd4301b5ba019de95cc8b760fc16a9bd93a3753ca8ae852787
|
File details
Details for the file ixv_core-0.4.1-py3-none-any.whl.
File metadata
- Download URL: ixv_core-0.4.1-py3-none-any.whl
- Upload date:
- Size: 81.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
accf993710ba7a8d013491f5b923b6317751d3e1ca7c0f1cb204359dbd700a10
|
|
| MD5 |
8a33af4eeb6705a409c8674517c5b0dd
|
|
| BLAKE2b-256 |
cab70a43914daea9618ec763e6d9d48fe241b8452fc13c43da488f29b02ee40d
|