FengZhenfei/carrel

Ontology-Augmented Generation for AI agents.

Carrel – オントロジー拡張型AIエージェント向けナレッジベース

概要

  • ドキュメントの集合(PDF、Word、コード、画像など)から、AIエージェントが最新情報を取得できる自己ホスト型サービスです。
  • ファイルを解析し、ベクトルインデックスとキーワードインデックスを作成し、オプションで知識グラフを構築し、エージェントがパッセージ、画像、グラフの証拠をクエリできるREST APIを公開します。

主な機能

機能 説明
ドキュメント解析 PDF、Word、PowerPoint、スプレッドシート、HTML、Markdown、ソースコード、画像をサポート。MinerUとネイティブパーサーを使用してファイルを取得に適したチャンクに分割します。
自動更新 指定したフォルダを監視し、変更されたファイルを再解析し、スケジュールに従ってインデックスとグラフを更新します。
ハイブリッド検索 高密度ベクトル検索、キーワード検索、グラフ走査、ビジュアル検索を組み合わせます。結果を再ランク付けできます。
ナレッジグラフ チャットモデルを介してテキストからエンティティ、リレーションシップ、タイムスタンプ、競合フラグを抽出し、Neo4jに保存します。
エージェントフレンドリーなAPI ソースパッセージ、元の画像、リンクされたグラフファクトを返します。ページネーション、引用メタデータ、オプションの認証をサポートします。
Webコンソール ナレッジベース、モデルエンドポイント、スケジュールされたタスク、サービスヘルスを管理するUI(英語/中国語)。
モデル統合 公開する任意の埋め込み、ビジョン言語、チャットモデル(ローカルDockerコンテナまたはリモートエンドポイント)で動作します。

仕組み

  1. 取り込み – runtime/mirror/<folder>/ に置かれたファイルが解析され、チャンクに分割されます。
  2. インデックス作成 – チャンクはQdrant(ベクトル)とOpenSearch(キーワード)ストアに送信されます。
  3. グラフ構築 – 有効な場合、チャットモデルがエンティティ/関係を抽出し、Neo4jに保存します。
  4. 検索API – エージェントは質問とともに POST /search を呼び出します。サービスはベクトル、キーワード、グラフストアからの結果をマージし、テキストスニペット、画像URL、グラフ証拠を含むJSONペイロードを返します。
  5. フィードバックループ – エージェントは最終回答を生成する前に、より多くのコンテキストを要求したり、グラフのエッジを辿ったりできます。

典型的な使用例

  • コーディングアシスタント(例:Claude、Codex)に内部製品マニュアル、契約書、会議メモへのアクセスを提供。
  • 引用とエンティティ関係が重要な研究論文の検索可能なRAGシステムを構築。
  • テキスト検索と並行して、スキャンされたPDFやデザイン図のビジュアル検索を有効にする。

クイックスタート

# 1. スタックをクローンしてデプロイ(利用可能な場合はDocker + systemd)
git clone https://github.com/FengZhenfei/carrel.git && cd carrel
./deploy.sh                     # OSを検出し、Qdrant、OpenSearch、Neo4jなどを起動

# 2. config/knowledge-base.env でモデルエンドポイントを設定(埋め込み、ビジョン、チャット)
#    – オプション: ./deploy.sh --with-local-models でバンドルされたモデルをローカルで実行

# 3. ドキュメントを追加
#    runtime/mirror/<my_kb>/ にファイルを置き、Web UI(http://127.0.0.1:9800)でフォルダを有効化

# 4. バンドルされたスキルまたはcurlでクエリ
curl -sS http://127.0.0.1:9810/search \
  -H 'Content-Type: application/json' \
  -d '{"question":"What are the delivery and acceptance requirements?","top_k":8}'

レスポンスには、マッチしたパッセージと、利用可能な場合はグラフノードや画像参照が含まれます。

インストール要件

  • Python 3.12+ と Docker 25+(Compose v2)。
  • オプションのローカルモデルサービスにはGPU(NVIDIA)+コンテナツールキット。リモートモデルAPIを指す場合はCPUのみで動作します。
  • 外部サービス:Qdrant(ベクトル)、OpenSearch(キーワード)、Neo4j(グラフ)、SQLite(メタデータ)。
  • モデルエンドポイント:テキスト埋め込み、ビジョン言語(画像キャプション用)、チャットモデル(グラフ抽出用)。

ドキュメントと拡張性

  • 設定 – モデルURL、フォルダ設定、アクセス制御の詳細ガイド。
  • アーキテクチャ – 解析パイプライン、ストレージの選択、検索フローについて説明。
  • 検索とAPI – リクエスト形式、認証、レスポンススキーマ、引用処理。
  • 運用 – コンソールの使用法、CLI、systemdタイマー、Docker Composeプロファイル、テスト。
  • スキル – 同じAPIに従うエージェント向けのすぐに使える carrel-search スキル。

ライセンス

  • コードはMITライセンス。サードパーティの依存関係とモデルウェイトはそれぞれ独自のライセンスを持ちます(NOTICE.md を参照)。

Carrel は、オントロジーレベルの証拠で検索を強化するフルスタックのオンプレミスナレッジベースプラットフォームであり、信頼性の高い最新のソースマテリアルを必要とするあらゆるAIエージェントに適しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト