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는 문서를 평면 텍스트 벡터로만 저장하는 대신 지식 그래프로 저장하는 오픈소스 RAG(Retrieval-Augmented Generation) 시스템입니다. 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 지연 시간 4447ms 4359ms ≈ 동률
웜 쿼리 p50(캐시됨) 82ms 993ms 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.

문서 및 학습 리소스

  • 웹 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 플랫폼입니다. 별도의 벡터 및 그래프 데이터베이스의 운영 오버헤드 없이 Graph-RAG를 시도할 수 있는 실용적인 방법입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트