MYAI — ローカル個人記録アシスタント
Apple Silicon Mac 上で完全ローカル動作する、個人日記・メモ向け RAG チャットアシスタントです。
特徴
- 完全オフライン動作 — mlx_lm + SQLite FTS5 のみ使用(外部APIなし)
- 日本語対応 — Janome による形態素解析・複合名詞抽出
- 日付・期間検索 — 「2024年3月」「2022/1〜2022/3」などの自然言語日付に対応
- ストリーミング出力 — Streamlit UI でリアルタイム表示
- フィードバック機能 — 👍 で良い回答を RAG に自動追記
動作環境
| 項目 | 要件 |
|---|---|
| OS | macOS (Apple Silicon) |
| Python | 3.11 以上 |
| RAM | 8GB 以上(推奨) |
| モデル | mlx-community/Qwen3.5-4B-4bit(約2.9GB) |
セットアップ
# 1. 仮想環境作成
任意の場所に仮想環境を作成
ディレクトリ名は myai_local
ターミナルでチェンジディレクトリする cd ~/myai_local
# 1-2. 仮想環境作成(myai_localを開いた状態で以下を実行)
python3 -m venv venv
source venv/bin/activate
# 2. 依存パッケージ
pip install mlx-lm streamlit janome striprtf watchdog
# 3. データディレクトリ作成
mkdir -p ~/myai_local/knowledge
# 4. プロフィール作成(任意)
# ~/myai_local/profile.txt に自由記述
# 5. config.py を編集してユーザー名を設定
# USER_NAME = "あなたの名前"
# 6. knowledge/ にテキストファイルを配置してDBを構築
python build_db.py
# 7. 起動
streamlit run app.py
ファイル構成
myai_local/
├── app.py # Streamlit UI メインアプリ
├── config.py # 設定ファイル(ユーザー名・パス・モデル)
├── llm.py # LLM 推論モジュール(mlx_lm)
├── prompt.py # システムプロンプト構築
├── search.py # FTS5 + LIKE ハイブリッド検索
├── db.py # チャット履歴 DB(SQLite)
├── build_db.py # knowledge/ → diary.db 変換
├── watch_knowledge.py # knowledge/ の変更を自動監視・反映
├── import_twitter.py # Twitter アーカイブのインポート
└── myai.py # CLI 版アシスタント
ナレッジファイルの命名規則
ファイル名に日付を含めると日付検索が有効になります。
20240315_メモ.txt
2024-03-15_日記.md
ライセンス
MIT License