開発・評価する
開発環境とAPIの入口
Web・Python Runtime・LEの役割を理解し、公開ソースから起動と軽量な確認を始める。
このガイドの要点
- WebはReact・Vite、RuntimeはPython・FastAPI、保存はSQLiteです。LEは別プロセスです。
- 公開uv workspaceの依存を固定lockで導入し、APIとWebを分けて起動します。
- 変更したAPI・保存・表示の対象を検証します。Mockの成功と実モデル品質・正式公開は別の判定です。
どこへ変更を入れるか#
WebはReact/TypeScriptの操作画面、DesktopはElectronによるプロセス監督、Python APIはFastAPIのHTTP/SSE境界です。共通Runtimeがキャラ、人物像、世界、状態、記憶、プロンプトと評価を扱い、SQLiteへ保存します。UIやAPIに依存しないRuntimeの処理は、会話と比較実験で共有するのが設計の軸です。
LEは別リポジトリ・別プロセスのローカル実行エンジンです。Kyaluluがキャラの正本を持ち、LEは推論やモデル管理を担います。ブラウザーはKyaluluの/api/le/*などを通し、LE管理トークンを受け取りません。LE設計書に載る画像・音声・ツール・Cloudなどの将来範囲を、この公開版のリリース済み機能と読み替えないでください。通常操作と技術診断を分けるUI設計も、公開PRODUCT_SPECの方針です。
公開ソースから起動する#
Python 3.11以上、uv 0.12以上、Node.js 20以上、pnpm 10以上を用意し、リポジトリのルートで実行します。公開pyprojectはrootとruntimeのuv workspaceを定義します。依存を固定lockで同期し、workspace本体のwheelインストールを省いてソースから動かします。
# .envがまだない場合だけコピーする
if (!(Test-Path .env)) { Copy-Item .env.example .env }
uv sync --frozen --all-packages --all-extras --no-install-workspace
pnpm install --frozen-lockfile
uv run --no-sync --directory runtime uvicorn python.api.main:app --reload --host 127.0.0.1 --port 8000
# 別のターミナルで、ルートから
pnpm dev--no-syncは起動時の再同期を避けます。上の--reloadは開発用であり、個人サーバーの常用手順ではありません。.envには自分の接続先を設定し、認証情報をソースやWebへ含めないでください。これは公開ファイルから導いた手順で、このガイド作成時に新規環境へインストールして実行確認した記録ではありません。
読み取りAPIとモデル設定#
APIが起動したら、まず次の読み取りでモデル一覧とProviderの接続状態を確認します。これらは返信生成の要求ではありません。
curl.exe http://127.0.0.1:8000/api/models
curl.exe http://127.0.0.1:8000/api/providers/health
curl.exe http://127.0.0.1:8000/api/libraryストリーミング生成はPOST /api/chat/streamで、取り込みはPOST /api/imports/previewとPOST /api/imports/text/previewがプレビュー、POST /api/imports/{preview_id}/commitが確定です。プレビューと保存を分け、確定APIの現在の入力契約を確認してから組み込んでください。設計書の「Suggested categories」だけを実在APIの根拠にはしません。
models/*.yamlはモデル登録の正本で、SQLiteはキャッシュです。LM Studio/Ollama例のprovider.modelを実際のサーバーIDに合わせます。OpenAI互換は.envのベースURLとキーを使い、URLに/chat/completionsを含めません。例のモデル名やcontext_lengthは設定例であり、ロード済み・対応済みの証拠ではありません。LE配信モデルはYAMLなしでもle:<id>で一覧へ追加されます。
変更した範囲を確認する#
- 差分を見て、API契約・保存データ・表示のどれが変わったか整理します。
- pnpm typecheckを実行し、Webの変更ならpnpm --filter web testとpnpm --filter web buildで確認します。
- Python変更は.venv/Scripts/python.exe -m pytest tests/対象ファイル.py -qのように対象を絞り、テスト専用データを使います。
- 会話の配線確認が必要ならMockを選び、実モデル推論とは分けて記録します。Mockの成功をモデル品質や正式配布の合格にはしません。
公開資料ではDesktopのAPI/LE監督を説明していますが、Python/LEのインストーラー同梱は未完了です。ソースの起動方法をnpmやCloudの公開済み配布手順として案内しません。本体コードはAGPL-3.0-onlyで、モデルや外部カードには配布元のライセンスが適用されます。人格評価はCharacterBenchガイド、移行契約は互換対応表へ進めます。
この記事の出典
公開GitHubの資料をもとに編集。リンクは確認時のコミットに固定しています。
- README.md
- PRODUCT_SPEC.md
- PROJECT_SPEC.md
- LE_ARCHITECTURE.md
- pyproject.toml
- runtime/pyproject.toml
- .env.example
- models/example-lmstudio.yaml
- models/example-ollama.yaml
- models/example-openai.yaml
- models/example-le.yaml
- docs/COMPATIBILITY.md
eea271b誤記・改善を報告 ↗