veyliss/ai-localbase
一个本地优先的AI知识库系统(RAG),用于把本地文档接入辅导搜索与大模型对话流程。目前支持md、txt、pdf(文本)、xlsx、cvs类型。支持mcp服务
AI LocalBase – ローカル優先の RAG 知識ベースシステム
一言概要
Go、React および Qdrant を使用した自己ホスティング型ベクトル検索 + 大規模モデル対話プラットフォーム。個人または小規模チームがローカルドキュメント(TXT、Markdown、PDF、Excel、CSV など)を検索増強型質問応答(RAG)に接続し、Ollama または OpenAI 互換モデルを使って対話できるようにします。
コア技術スタック
| レイヤー | 技術 | 説明 |
|---|---|---|
| バックエンド | Go + Gin | 高性能 HTTP API。ドキュメント解析、ベクトル化、検索、セッション管理などのビジネスロジックを担当 |
| フロントエンド | React + Vite + TypeScript | シングルページ Web UI。知識ベース管理、ファイルアップロード、チャットインターフェースなどのインタラクションを提供 |
| ベクトルデータベース | Qdrant | オープンソースのベクトルデータベース。ドキュメントベクトルを格納し、ハイブリッド検索、MMR 冗長除去などの高度な検索機能をサポート |
| モデル接続 | Ollama / OpenAI 互換 API | 統一された Provider 設定により、ローカルの Ollama モデルまたは任意の OpenAI 互換チャット/埋め込みモデルを使用可能 |
| 永続化 | SQLite(チャット記録) + JSON ファイル(設定) | 外部データベース不要の軽量ローカルストレージ |
| デプロイ | Docker-Compose(推奨) | フロントエンド、バックエンド、Qdrant の3コンテナをワンクリック起動。単一プロセスでのデバッグモードも提供 |
| 拡張機能 | MCP Server(内蔵) | HTTP/JSON-RPC インターフェース。外部エージェント、スクリプト、ツールシステムがローカル知識ベース、検索、評価機能を呼び出し可能 |
主な機能
- 知識ベース管理 – 複数の知識ベースを作成・削除・閲覧可能。各知識ベースは Qdrant の collection に対応する。
- ドキュメントアップロード & 自動インデックス – TXT、Markdown、PDF、xlsx、csv をサポート。自動分割、一括埋め込み、ベクトルデータベースへの書き込みを自動実行。
- 検索増強型質問応答 (RAG) – 検索ヒットした内容を対話コンテキストに注入。以下をサポート:
- 動的コールバック、キーワードカバレッジ、MMR 冗長除去
- 低信頼度時の再コールバック、意味的キャッシュ、ハイブリッド検索、意味的再ランク、クエリリライト、コンテキスト圧縮
- チャット記録の永続化 – すべての会話をローカルの SQLite に保存。フロントエンドで過去の対話を確認可能。
- 設定の永続化 – モデル、ベクトルデータベース、認証などの設定をローカルの JSON に保存。コンテナ再起動時も自動復元。
- MCP(モジュール型能力プロバイダー) – 外部エージェントにツール一覧、呼び出しインターフェース、権限階層、リミット制御、監査ログなどを提供。非同期インポート、インデックス再構築、評価データセット生成などのワークフローをサポート。
- セキュリティ & 認証 – 環境変数で Web ログイン、API-Key 認証を有効化可能。本番環境ではデフォルトで有効化。
代表的な使用シーン
- 個人の知識ベース:ノート、技術文書、PDFマニュアルなどをローカル化し、いつでもチャット形式で検索可能。
- 小規模チームの内部文書質問応答:企業内ネットワークで自己ホスティング。データがネットワーク外に出ないよう保証。
- RAG プロトタイプ検証:さまざまな検索戦略、ハイブリッド検索、再ランクモデルの迅速な構築と実験。
- モデル接続テスト:Ollama のローカルモデルとクラウドの OpenAI 互換モデルの効果とコストを比較。
- エージェントのバックエンド:MCP を通じて、カスタム AI エージェントに「ドキュメント読み取り → 検索 → 答え生成」の能力を提供。
- 大規模ドキュメント処理:非同期で大量のファイルをインポート。進捗の確認やタスクのキャンセルも可能。
クイックスタート(最小手順)
# 環境変数テンプレートをコピーしてすべてのコンテナを起動
cp .env.example .env
docker compose up --build
- http://localhost:4173 にアクセス → Settings → Chat と Embedding モデルを設定(例:Ollama
qwen2.5:7b+bge-m3) - ドキュメントをアップロード → 対話を開始。システムが自動的に関連する断片を検索し、コンテキストに注入します。
完全な起動、デバッグ、本番デプロイの詳細は docs/getting-started.md、DOCKER_DEPLOY.md などのドキュメントを参照してください。
デプロイオプション
| シナリオ | 推奨方法 |
|---|---|
| ローカル体験 | docker compose up --build(単一マシン) |
| 本番自己ホスティング | docker-compose.prod.yml を使用。ENABLE_AUTH=true を有効化し、強力なパスワードまたは AUTH_SETUP_TOKEN を設定。必要に応じて Qdrant を 0.0.0.0 にバインドし、API-Key を設定 |
| バックエンド/フロントエンドのみ実行 | docker-compose.dev.yml の対応サービスを個別に起動。コードマウントによりデバッグが容易 |
| カスタムイメージ | AI_LOCALBASE_IMAGE_TAG=v1.4.6 docker compose -f docker-compose.prod.yml up -d |
オープンソースライセンス & コミュニティ
- ライセンス: MIT (see
LICENSE) - 貢献ガイドライン:
CONTRIBUTING.mdに記載 - セキュリティ:
SECURITY.md - 変更履歴:
CHANGELOG.md - コミュニティ: https://linux.do および Discord https://discord.gg/YzFeYC66y5 で議論
対象読者
- クラウドサービスに依存せずに、ローカルで RAG フローを迅速に実験したい開発者。
- 自己ホスティング可能で拡張性のあるドキュメント質問応答プラットフォームが必要な小規模チーム。
- 検索戦略、ハイブリッド検索、カスタムツールチェーン(MCP を通じて)を評価したい AI 研究者。
プロジェクトに役立った場合は、リポジトリに ⭐ を付けてください
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト