nullai-deepseek-r1-32b / docs /QUICK_REFERENCE_JA.md
kofdai's picture
Upload docs/QUICK_REFERENCE_JA.md with huggingface_hub
4fca430 verified

NullAI クイックリファレンス

システム起動

# 全サービス起動
./start_null_ai.sh

# 個別起動
./start_null_ai.sh backend   # バックエンドのみ
./start_null_ai.sh frontend  # フロントエンドのみ
./start_null_ai.sh stop      # 停止
./start_null_ai.sh status    # ステータス確認

アクセスURL

サービス URL
フロントエンド http://localhost:5173
API http://localhost:8000
API Docs http://localhost:8000/docs

DB拡充コマンド

LLM推論による拡充

python null_ai/db_enrichment_cli.py --domain medical --count 50
python null_ai/db_enrichment_cli.py --all --count 30
python null_ai/db_enrichment_cli.py --domain legal --model deepseek-r1-32b --count 20

Web検索による拡充

python null_ai/db_enrichment_cli.py --domain medical --web-search --count 10
python null_ai/db_enrichment_cli.py --domain medical --web-search --query "糖尿病 最新治療法 2024"

確認コマンド

python null_ai/db_enrichment_cli.py --list-models
python null_ai/db_enrichment_cli.py --list-domains
python null_ai/db_enrichment_cli.py --list-search-providers
python null_ai/db_enrichment_cli.py --domain medical --preview

クラウドDB設定

python null_ai/cloud_db_setup.py --provider supabase
python null_ai/cloud_db_setup.py --provider github --repo username/opaque-data
python null_ai/cloud_db_setup.py --provider jsonbin

主要な環境変数

# 基本
SECRET_KEY=your-secret-key
DATABASE_URL=sqlite:///./sql_app.db

# HuggingFace(オプション - Inference APIを使う場合)
HF_API_KEY=hf_xxx

# ORCID認証
ORCID_CLIENT_ID=APP-xxx
ORCID_CLIENT_SECRET=xxx
ORCID_SANDBOX=true

# クラウドストレージ
OPAQUE_STORAGE_BACKEND=supabase
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=xxx

# Web検索
BRAVE_API_KEY=xxx
TAVILY_API_KEY=xxx

サポートモデルプロバイダー

プロバイダー 説明 GPU要否 備考
huggingface HuggingFace Transformers 推奨 ローカル推論(高品質)
ollama Ollama 不要 ローカル推論サーバー(高速)
huggingface_api Inference API 不要 リモート推論
local ローカルモデル 推奨 Transformers互換
gguf llama.cpp形式 不要 量子化モデル

注意: OpenAI/Anthropic等の競合APIは利用規約上の理由からサポートされていません。

Ollamaとの切り替え

NullAIはTransformersとOllamaの両方をサポートしています:

Ollama使用時の利点:

  • ✅ 高速な推論(モデルが常駐)
  • ✅ GPUなしでも高速動作
  • ✅ メモリ効率が良い
  • ✅ 簡単なモデル管理

Transformers使用時の利点:

  • ✅ より高品質な出力
  • ✅ モデルの細かい制御
  • ✅ インターネット不要

Ollama推論の使用方法

# 1. Ollamaをインストール・起動
# start_null_ai.shが自動起動します
# または手動: ollama serve

# 2. モデルをダウンロード
ollama pull llama3.1
ollama pull qwen2.5:7b
ollama pull deepseek-r1:7b
ollama pull mistral

# 3. Ollamaモデルでdb拡充
/Users/motonishikoudai/project_locate/venv/bin/python null_ai/db_enrichment_cli.py \
  --domain medical \
  --model ollama-llama3 \
  --count 10

# 4. 利用可能なOllamaモデル一覧
/Users/motonishikoudai/project_locate/venv/bin/python null_ai/db_enrichment_cli.py --list-models | grep Ollama

プロバイダーの切り替え

環境変数またはCLIオプションで簡単に切り替え可能:

# Transformersを使用(デフォルト)
python null_ai/db_enrichment_cli.py --domain medical --count 10

# Ollamaを使用(高速)
python null_ai/db_enrichment_cli.py --domain medical --model ollama-llama3 --count 10

# 特定のOllamaモデルを使用
python null_ai/db_enrichment_cli.py --domain legal --model ollama-deepseek-r1 --count 20

ユーザーロール

ロール 権限
guest 閲覧、質問
viewer + 提案閲覧
editor + 提案作成・レビュー
expert + 認証マーク付き編集
admin + 全管理機能

認証マーク

マーク 説明
none 未検証
community コミュニティレビュー済み(青)
expert 専門家編集(緑)
multi_expert 複数専門家検証(金)

ドメイン一覧

ID 名前
medical 医療・健康
legal 法律・法務
economics 経済・金融
programming プログラミング
general 一般知識

API エンドポイント

POST /api/auth/signup          # ユーザー登録
POST /api/auth/token           # ログイン
GET  /api/auth/orcid/authorize # ORCID認証開始

POST /api/questions/           # 質問送信
WS   /api/questions/ws/{id}    # ストリーミング

GET  /api/domains/             # ドメイン一覧
PUT  /api/domains/{id}         # ドメイン更新

GET  /api/proposals/           # 提案一覧
POST /api/proposals/           # 提案作成
PUT  /api/proposals/{id}/review # 提案レビュー

GET  /api/models/              # モデル一覧
POST /api/models/{id}/test     # モデルテスト

# Knowledge Base (DB) ダウンロード - 誰でも可能
GET  /api/knowledge/export/iath    # .iathファイルダウンロード
GET  /api/knowledge/export/json    # JSON形式でエクスポート
GET  /api/knowledge/export/package # 完全パッケージ (ZIP)

# モデル世代交代(倒木システム)
GET  /api/succession/status                  # 世代交代ステータス
POST /api/succession/trigger                 # 世代交代実行
POST /api/succession/create-standalone-package # DB付きパッケージ生成
GET  /api/succession/history/inference       # 推論履歴取得
GET  /api/succession/history/succession      # 世代交代履歴
GET  /api/succession/exports                 # エクスポートファイル一覧
GET  /api/succession/snapshots               # DBスナップショット一覧
POST /api/succession/snapshots/restore       # スナップショット復元
GET  /api/succession/stats                   # 統計情報

DBダウンロード(自由な編集)

概要

誰でも(ゲスト含む)Knowledge Baseをダウンロードしてローカルで自由に編集できます。 エキスパート認証なしでも、ローカルで実験・カスタマイズが可能。

使用方法

# .iathファイルをダウンロード
curl http://localhost:8000/api/knowledge/export/iath -o knowledge.iath

# JSON形式でダウンロード(人間が読める)
curl http://localhost:8000/api/knowledge/export/json -o knowledge.json

# 完全パッケージ(DB + README + config)
curl http://localhost:8000/api/knowledge/export/package -o knowledge_package.zip

ダウンロード後の利用

# ZIPを展開
unzip knowledge_package.zip

# ローカルで編集
vim knowledge_base.json

# NullAIにインポート
cp knowledge_base.iath /path/to/null_ai/ilm_athens_medical_db.iath

メリット

  • ✅ エキスパート認証不要
  • ✅ 完全にオープン、自由に編集
  • ✅ フォークして独自バージョンを作成
  • ✅ オフラインで実験可能
  • ✅ バージョン管理が容易

モデル世代交代(倒木システム)

概要

推論履歴を自動保存し、高品質なデータが蓄積されたらトレーニングデータとしてエクスポート。 森林の倒木が次世代の栄養となるように、古いモデルの知識を新モデルに継承。

使用方法

# ステータス確認
curl http://localhost:8000/api/succession/status

# 世代交代実行(手動)
curl -X POST http://localhost:8000/api/succession/trigger \
  -H "Content-Type: application/json" \
  -d '{"min_confidence": 0.8}'

# 推論履歴確認
curl "http://localhost:8000/api/succession/history/inference?limit=10"

# 統計情報
curl http://localhost:8000/api/succession/stats

エクスポート形式

  • JSONL (ChatML/Instruction/Completion形式)
  • CSV (表形式)
  • Parquet (大規模データ用)
  • HuggingFace Datasets (transformers連携)

自動トリガー

  • 高品質推論(信頼度≥0.8)が1000件蓄積されると自動実行
  • 推論結果は inference_history/ に日別保存
  • エクスポートデータは training_data/ に保存
  • DBスナップショットは db_archives/ に世代管理

スタンドアロンパッケージ生成

DB付き完全パッケージを生成し、単体で使える推論エンジンを作成:

# スタンドアロンパッケージを生成
curl -X POST http://localhost:8000/api/succession/create-standalone-package \
  -H "Content-Type: application/json" \
  -d '{"min_confidence": 0.8}'

# 生成されたパッケージは succession_packages/ に保存
ls succession_packages/
# null_ai_model_gen1_20250125_123456.zip

パッケージ内容

null_ai_model_gen1_*.zip
├── training_data/          # トレーニングデータ
│   ├── *.jsonl            # ChatML/Instruction形式
│   ├── *.csv              # CSV形式
│   ├── *.parquet          # Parquet形式
│   └── dataset_*/         # HuggingFace Datasets
├── knowledge_base/        # Knowledge Base(推論用DB)
│   ├── knowledge.iath     # IATH形式DB
│   └── db_stats.json      # DB統計
├── run_inference.py       # 推論実行スクリプト
├── config.json            # 設定ファイル
└── README.md              # 使い方ガイド

パッケージの使い方

# 展開
unzip null_ai_model_gen1_*.zip
cd null_ai_model_gen1_*/

# 1. Knowledge Baseを使って推論
python run_inference.py --question "糖尿病の治療法は?"

# 2. ファインチューニング
# training_data/ のデータでモデルを訓練

# 3. ファインチューニング後のモデルで推論
python run_inference.py --model ./output/checkpoint-1000 --question "質問"

利点

  • ✅ 完全に独立して動作
  • ✅ トレーニングデータ + KB が一体化
  • ✅ すぐに使える推論スクリプト付き
  • ✅ 世代ごとにバージョン管理
  • ✅ 他のプロジェクトで再利用可能

多言語対応

サポート言語

  • 🇯🇵 日本語
  • 🇬🇧 English

言語切り替え

  • フロントエンド右上の言語スイッチャーで切り替え
  • ブラウザの言語設定を自動検出
  • 選択した言語はlocalStorageに保存

トラブルシューティング

# HuggingFaceモデルダウンロード確認
python -c "from transformers import AutoModel; print('OK')"

# GPU確認
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}, MPS: {torch.backends.mps.is_available()}')"

# DB初期化
rm sql_app.db
python backend/create_db.py

# 依存関係インストール(HuggingFace対応)
pip install transformers torch accelerate
pip install llama-cpp-python  # GGUF使用時
pip install -r requirements.txt
cd frontend && npm install

ファイル構成

project_locate/
├── null_ai/         # コアフレームワーク
├── backend/           # FastAPI バックエンド
├── frontend/          # React フロントエンド
├── ilm_athens_engine/ # 推論エンジン
├── generated_tiles/   # 生成された知識タイル
├── enrichment_output/ # DB拡充結果
└── documentation/     # ドキュメント