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でメモリをクリア
ドキュメント
ライセンス
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ixv_core-0.4.1.tar.gz
(82.8 kB
view details)
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
ixv_core-0.4.1-py3-none-any.whl
(81.9 kB
view details)
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
|