高速埋め込みとランスDBによるAI会話のためのローカル意味検索

ある開発者が、クラウド依存やAPIキーなしで36万8千件のメッセージを処理する、AI会話履歴のためのローカルセマンティック検索システムを実装しました。このプロジェクトでは、CPUベースの埋め込みにfastembedとBAAI/bge-small-en-v1.5モデルを使用し、ベクトルストアにはサーバープロセスなしで単一ディレクトリとして動作するLanceDBを採用しています。
技術スタック
- 埋め込み: fastembed with BAAI/bge-small-en-v1.5 model (384次元)
- ベクトルストア: LanceDB - 単一ディレクトリ、サーバープロセスなし、追記に適した設計
- 取り込み: JSONLセッショントランスクリプトから取得 (Claude Code、あらゆるチャットエクスポート)
- 埋め込み性能: M4 CPUで約500ドキュメント/秒
主要な実装詳細
開発者は4ヶ月間の反復開発でいくつかの実用的な教訓を得ました:
- 選択的埋め込み: 初期バージョンではすべてのメッセージを埋め込んでいましたが、これは信号対雑音比を低下させました。現在の実装では、ユーザーメッセージと実質的な内容を持つアシスタントメッセージのみを埋め込み(「はい、こちらがそのコードです」のような応答はスキップ)、ベクトル数を60%削減しながら検索品質を向上させています。
- チャンキング戦略: 固定サイズのチャンクから会話ターンチャンクへの切り替えが、検索関連性に大きな違いをもたらしました。モデル選択(nomic-embed-text、bge-large、all-MiniLMを試行)は、チャンキングアプローチと比較してわずかな差しか示しませんでした。
- LanceDBの利点: 開発者はLanceDBを「個人規模では馬鹿げるほど過小評価されている」と発見しました - サーバー不要、Docker不要、新しいベクトルを即座に追加できる単なるディレクトリであり、過剰設計されたpgvectorセットアップを置き換えました。
- 再埋め込みワークフロー: 384次元のbge-small-en-v1.5モデルは十分に高速で、cronジョブとして1時間ごとに再埋め込みが可能です。11万7千ベクトルの完全な再インデックスは、M2ハードウェアで約4分かかります。
性能指標
- 取り込み済み総メッセージ数: 40万7千件
- インデックス化済みベクトル数: 8万7千件
- 検索レイテンシ (p50): 11万7千ベクトル全体で12ms
- 完全再インデックス時間: 約4分 (M2)
- ストレージ: ディスク上で約180MB
- 必要なAPIキー数: 0
このプロジェクトはMITライセンスの下でオープンソース化されており、github.com/mordechaipotash/brain-mcpで利用可能です。インストールはpipx install brain-mcp && brain-mcp setupで行えます。
📖 Read the full source: r/LocalLLaMA
👀 See Also

開発者がClaude WhatsApp連携用MCPサーバーを構築、課題を共有
ある開発者が、Claudeが実際のWhatsAppの会話にアクセスできるようにするMCPサーバーを構築しました。会話のコンテキスト管理は予想以上に難しく、会話を追跡するためのデータベースが必要であることが判明しました。

8つのAIコーディングモデルを実世界のTypeScript機能実装で比較
ある開発者が、オープンソースのTypeScript Telegramボットプロジェクトで/renameコマンドを実装するという課題で8つのAIコーディングモデルをテストし、コスト、実行時間、正確性、技術的品質の観点から評価しました。GPT-5.4は実装の正確性で最高得点を獲得し、GLM 5は最高のコストパフォーマンスを提供しました。

TestThread:AIエージェント向けオープンソーステストフレームワーク
TestThreadは、AIエージェント向けのオープンソーステストフレームワークです。ライブエンドポイントに対してテストを実行し、AI診断付きの合格/不合格結果を提供し、セマンティックマッチング、PII検出、CI/CD統合などの機能を備えています。

Claude Desktop用テキストアドベンチャーゲームエンジンスキル
テキストアドベンチャーゲームエンジンは、サーバー、アプリ、実行コードを一切必要とせず、Claude Desktopのスキルとして完全に内部で動作します。完全なRPGメカニクス、3Dダイスレンダリング、19の拡張モジュール、ポータブルなセーブファイルが含まれています。