georgeguimaraes/arcana

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

解决的问题

Arcana 是一个为 Elixir 和 Phoenix 应用程序设计的可嵌入式 RAG(检索增强生成)库。它无需单独的向量数据库、索引服务或编排层,而是直接集成到现有的 Ecto 仓库(PostgreSQL + pgvector)中。它提供了一种统一的方式来处理文档摄入、向量搜索、知识图谱以及 LLM 驱动的检索,所有操作都在单一进程模型中完成。

工作原理

Arcana 集成到 BEAM 进程模型中,使用 Nx.Serving 实例作为嵌入器和重排序器,并在监督树中运行。它基于代理型 RAG 分类体系,支持三种操作模式:

  • 高级 RAG:提供简单的入口点(Arcana.search/2Arcana.ask/2),默认处理查询重写、混合搜索和重排序。
  • 模块化 RAG:提供可组合的流水线(Arcana.Pipeline),开发者可以自定义一系列步骤,如重写、分解、搜索和接地。
  • 代理型 RAG:提供 LLM 驱动的循环(Arcana.Loop),模型在运行时选择工具(搜索、回答、放弃)以回答复杂或多跳问题。

适用人群

希望在不增加基础设施开销或在栈中引入多种语言(如 Python)的情况下实现 RAG 功能的 Elixir 和 Phoenix 开发者。

核心亮点

  • 无基础设施:通过 pgvector 使用您现有的 Postgres 数据库来存储文档、嵌入向量和知识图谱。
  • 本地优先:通过 Bumblebee(EXLA、EMLX、Torchx)支持本地嵌入和交叉编码器重排序。
  • GraphRAG:实现实体提取、社区检测(Leiden)以及与向量结果融合的图搜索。
  • 语言学接地:包含用于 NLI 幻觉检测和忠实度评分的工具。
  • 可插拔架构:每个步骤(分块器、嵌入器、搜索器、重排序器)都定义为行为(behaviour),可轻松替换。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目