raphaelmansuy/edgequake

EdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation

EdgeQuake – 単一のRustバイナリによるGraph-RAG

概要 – EdgeQuakeは、ドキュメントをフラットなテキストベクトルとしてだけでなく、ナレッジグラフとして保存するオープンソースのRetrieval-Augmented Generation (RAG)システムです。Rustで書かれており、単一の実行ファイルとして提供され、ベクトル埋め込みとグラフデータの両方に単一のPostgreSQLインスタンス(pgvectorおよびApache AGE拡張機能を使用)を使用します。OpenAI/Anthropic APIを話す任意のLLMを使用できます。クラウドサービス(OpenAI、Anthropic、Gemini、Mistral)からローカルサーバー(Ollama、LM Studio、oMLX、llama.cpp、vLLM-MLXなど)まで対応しています。


仕組み(ハイレベルなフロー)

Document → chunking → LLM extracts entities & relations → stored as:
   • embeddings in pgvector
   • graph nodes/edges in Apache AGE

Query → keyword extraction → vector search + graph walk → LLM generates answer

このシステムは、複数の検索モード(naive、local、global、hybrid(デフォルト)、mix、bypass)をサポートしており、純粋なベクトル類似性とグラフ探索を組み合わせて、概念間の関係に依存する回答を表面化します。


クイックスタート(Dockerのみ、Rust/Node不要)

# ワンライナーでヘルパースクリプトを取得し、Docker composeを実行してUIを起動します
curl -fsSL https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/quickstart.sh | sh

CIでヘッドレス実行することもできます:

quickstart.sh --yes --provider ollama
quickstart.sh --yes --provider omlx --base-url http://host.docker.internal:9050

UIまたはAPIを介してPDFをアップロードし、質問をします:

curl -X POST http://localhost:8080/api/v1/documents/upload -F "file=@my.pdf"
curl -X POST http://localhost:8080/api/v1/query \
  -H "Content-Type: application/json" \
  -d '{"query":"What are the main concepts?","mode":"hybrid"}'

言語モデルの選択

目標 プロバイダー 設定方法
最高品質、ハードウェア不要 OpenAI、Anthropic、Gemini、Mistral Settings → Connectionsまたは環境変数(例: OPENAI_API_KEY)
プライベート、ローカル実行 Ollama、LM Studio、oMLX、MLX-LM、llama.cpp、vLLM-MLX 同じUIまたは環境変数(EDGEQUAKE_PROVIDER=ollama)
クラウドLLM + ローカル埋め込みの混合 任意のクラウドLLM + ローカル埋め込みサーバー EDGEQUAKE_EMBEDDING_PROVIDERを設定
カスタムゲートウェイ OpenAI互換の任意のエンドポイント 汎用プロバイダードキュメントを使用

各ワークスペースは、各ロール(抽出、クエリ、要約、埋め込み、ビジョンなど)に異なるモデルを割り当てることができます。edgequake doctorコマンドとPOST /api/v1/providers/testで接続を確認できます。


本番環境対応機能

  • 単一データストア – pgvector(埋め込み)とApache AGE(グラフ)を備えたPostgreSQL 16-18。別のベクターDBやグラフDBを管理する必要はありません。
  • 安全なマイグレーション – 明示的なedgequake migrateコマンド。マイグレーションは各リリースでリプレイテストされています。
  • セキュリティ – デフォルトでループバックのみ、AES-256-GCM暗号化プロバイダーキー、オプションのSSO(Keycloak/OIDC)、監査ログ、マルチテナントワークスペース分離。
  • PDFビジョンパイプライン – 埋め込みpdfiumによるテキスト抽出。スキャンされたテーブルや複雑なレイアウト向けのオプションのビジョンモード。
  • ヘルスチェック – /healthは実際のLLMプロバイダーをプローブします。edgequake doctorはDB、スキーマ、セキュリティ体制をチェックします。
  • マルチアーキテクチャDockerイメージ – linux/amd64およびlinux/arm64がGHCRで公開されています。

ベンチマーク(正直な数値)

メトリック EdgeQuake LightRAG(Python) 判定
回答精度 0.792 0.786 統計的に引き分け
コールドクエリp50レイテンシ 4447 ms 4359 ms ≈ 引き分け
ウォームクエリp50(キャッシュ) 82 ms 993 ms EdgeQuakeの方がはるかに高速
エビデンス再現率 0.932 0.949 LightRAGがわずかに優勢

著者らは、EdgeQuakeがLightRAGの検索品質に匹敵しながら、本番環境対応のRust実装、より高速なキャッシュレスポンス、より豊富な機能セットを提供することを強調しています。


エコシステムと統合

  • SDK – Python、TypeScript、Rust、およびGo、Java、Kotlin、C#、PHP、Ruby、Swift用のコミュニティSDK。
  • AIエージェント – エージェントオーケストレーション用のMCPサーバー。
  • アプリ – OpenWebUIおよびLangChainとのすぐに使える統合。
  • API – OpenAPI 3.0仕様、SSEストリーミング、バッチ取り込み、Swagger UI。

ドキュメントと学習リソース

  • Web UIのビジュアルツアー(tutorial/README.md)。
  • 完全なはじめにガイド、最初のRAGアプリチュートリアル、プロバイダー設定ドキュメント。
  • LightRAGアルゴリズムとEdgeQuakeアーキテクチャの詳細。
  • 運用ドキュメント: デプロイ、Dockerオプション、監視、ランタイム認証の強化、アップグレード手順、トラブルシューティング。

誰が使うべきか?

  • 企業 – 厳格なデータ分離と監査可能性を備えたセルフホストRAGスタックが必要な企業。
  • 開発者 – 関係を認識した検索(例: 「誰が誰に報告するか」)を必要とするAIエージェントやチャットボットを構築する開発者。
  • 研究者 – 複数のサービスを管理せずにGraph-RAGを試したい研究者。
  • チーム – すでにPostgreSQLを実行しており、運用を容易にする単一バイナリを好むチーム。

ライセンス

Apache License 2.0(2024-2026 © Raphaël Mansuy)。


TL;DR

EdgeQuakeは、ドキュメントをPostgreSQLのナレッジグラフとして保存し、任意のLLM(クラウドまたはローカル)をプラグインでき、すぐに使えるUI、REST API、SDK、本番環境対応のセキュリティとアップグレードメカニズムを提供する、Rustネイティブで単一バイナリのRAGプラットフォームです。別々のベクターDBとグラフDBの運用オーバーヘッドなしにGraph-RAGを試す実用的な方法です。

関連

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