ローカルで動作するエージェンティックAI。Ollamaを使用し、Web検索、ファイル操作、コード実行、画像生成が可能。
- チャット: Ollama (gpt-oss:20b-long) によるストリーミング応答
- Web検索: DuckDuckGo News APIで最新ニュースを検索
- ファイル操作: ローカルファイルの読み書き
- コード実行: Pythonコードの実行
- 画像生成: FLUX (mflux) によるApple Silicon対応画像生成
- RAG: ChromaDBによるドキュメント検索
- 音声入出力: Web Speech API対応
- macOS (Apple Silicon推奨)
- Python 3.11+
- Node.js 18+
- Ollama
- Conda環境
mlx312with mflux (画像生成用)
# Qwen3.5を使用する場合(最新・推奨)
ollama pull qwen3.5:32b
# または Qwen3を使用する場合
ollama pull qwen3:32b
# または qwen2.5を使用する場合
ollama pull qwen2.5:14b
# または llama3.2を使用する場合
ollama pull llama3.2:latest起動時に環境変数でモデルを指定:
OLLAMA_MODEL=qwen3.5:32b uvicorn main:app --host 0.0.0.0 --port 8000 --reload- Modelfileを作成:
cat > Modelfile << 'EOF'
FROM qwen2.5:14b
PARAMETER num_ctx 32768
EOF- カスタムモデルをビルド:
ollama create qwen2.5-long -f Modelfilebackend/ollama_client.pyでモデル名を変更:
model: str = "qwen2.5-long"このモデルはGPT-OSSベースのカスタムモデルです。
- ベースモデルをダウンロード (GGUF形式が必要)
- Modelfileを作成:
cat > Modelfile << 'EOF'
FROM ./gpt-oss-20b.gguf
PARAMETER num_ctx 131072
PARAMETER temperature 1
EOF- モデルをビルド:
ollama create gpt-oss:20b-long -f Modelfilecd backend
pip install -r requirements.txtcd frontend
npm installconda create -n mlx312 python=3.12
conda activate mlx312
pip install mfluxbackend/agent/tools.py の mflux_path を環境に合わせて修正:
mflux_path = "/path/to/your/conda/envs/mlx312/bin/mflux-generate"| 変数名 | デフォルト | 説明 |
|---|---|---|
OLLAMA_MODEL |
gpt-oss:20b-long |
使用するOllamaモデル名 (推奨: qwen3.5:32b) |
OLLAMA_BASE_URL |
http://localhost:11434 |
Ollama APIのURL |
cd backend
# デフォルトモデルで起動
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# または別のモデルを指定
OLLAMA_MODEL=qwen2.5:14b uvicorn main:app --host 0.0.0.0 --port 8000 --reloadcd frontend
npm run devまたは一括起動:
./start.sh- フロントエンド: http://localhost:5173
- バックエンドAPI: http://localhost:8000
- VPN経由: http://:5173
- 「今日のニュースを教えて」→ Web検索
- 「猫の画像を生成して」→ FLUX画像生成
- 「このコードを実行して: print('Hello')」→ コード実行
- 「~/project/file.txt を読んで」→ ファイル読み取り
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/health |
GET | ヘルスチェック |
/api/chat |
POST | チャット (SSE) |
/api/documents/upload |
POST | ドキュメントアップロード |
/api/documents/count |
GET | ドキュメント数取得 |
/api/documents/search |
POST | ドキュメント検索 |
/api/images/{filename} |
GET | 生成画像取得 |
MIT