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
- UI: http://localhost:3000
- REST API(Swagger): http://localhost:8080/swagger-ui
- ヘルスエンドポイント: http://localhost:8080/health
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を試す実用的な方法です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト