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),可輕鬆替換。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案