georgeguimaraes/arcana

Embeddable RAG library for Elixir/Phoenix with agentic pipelines and dashboard

해결하는 문제

Arcana는 Elixir 및 Phoenix 애플리케이션을 위한 임베디드 가능한 RAG(Retrieval-Augmented Generation) 라이브러리입니다. 별도의 벡터 데이터베이스, 인덱싱 서비스, 오케스트레이션 계층을 필요로 하지 않고, 기존의 Ecto 리포지토리(PostgreSQL + pgvector)에 직접 통합됩니다. 문서 인제스트, 벡터 검색, 지식 그래프, LLM 기반 검색을 단일 프로세스 모델 내에서 통합적으로 처리할 수 있는 방법을 제공합니다.

작동 방식

Arcana는 BEAM 프로세스 모델에 통합되어 supervision 트리 내에서 Nx.Serving 인스턴스를 사용하여 엔베더 및 리랭커를 실행합니다. 에이전트 기반 RAG 분류 체계에 따라 세 가지 운영 모드를 지원합니다:

  • 고급 RAG: Arcana.search/2, Arcana.ask/2와 같은 간단한 엔트리 포인트로 쿼리 재작성, 하이브리드 검색, 리랭킹을 기본적으로 처리합니다.
  • 모듈형 RAG: 개발자가 Arcana.Pipeline을 사용해 재작성, 분해, 검색, 그라운딩 등의 사용자 정의 단계 시퀀스를 정의할 수 있는 컴포저블 파이프라인입니다.
  • 에이전트형 RAG: LLM 기반 루프인 Arcana.Loop에서는 모델이 런타임에 도구(검색, 답변, 포기)를 선택하여 복잡하거나 다단계 질문에 답합니다.

대상 사용자

인프라스트럭처 부담 없이 RAG 기능을 구현하고 싶은 Elixir 및 Phoenix 개발자들.

주요 특징

  • 인프라 없음: 기존의 Postgres 데이터베이스(pgvector를 통해)를 사용하여 문서, 임베딩, 지식 그래프를 관리합니다.
  • 로컬 우선: Bumblebee(EXLA, EMLX, Torchx)를 통해 로컬 임베딩 및 크로스엔코더 리랭킹을 지원합니다.
  • GraphRAG: 엔티티 추출, 커뮤니티 탐지(Leiden), 벡터 결과와 융합된 그래프 검색을 구현합니다.
  • 언어적 그라운딩: NLI 환각 검사 및 충실도 스코어링을 위한 도구를 포함합니다.
  • 플러그인 아키텍처: 모든 단계(체ン커, 엔베더, 검색기, 리랭커)는 행동(behaviour)으로 정의되어 쉽게 교체 가능합니다.

관련

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