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/2、Arcana.ask/2),預設處理查詢重寫、混合搜尋與重排序。 - 模組化 RAG:提供可組合的流程(
Arcana.Pipeline),開發者可自訂一系列步驟,如重寫、分解、搜尋與接地。 - 代理型 RAG:提供 LLM 驅動的迴圈(
Arcana.Loop),模型在執行時選擇工具(搜尋、回答、放棄)以回答複雜或跨跳問題。
適用對象
希望在不增加基礎設施負擔或在技術棧中引入多種語言(如 Python)的情況下,實現 RAG 功能的 Elixir 與 Phoenix 開發者。
核心亮點
- 無基礎設施:透過 pgvector 使用您現有的 Postgres 資料庫來儲存文件、嵌入向量與知識圖譜。
- 本地優先:透過 Bumblebee(EXLA、EMLX、Torchx)支援本地嵌入與交叉編碼器重排序。
- GraphRAG:實作實體萃取、社群檢測(Leiden)以及與向量結果融合的圖形搜尋。
- 語言學接地:包含用於 NLI 幻覺檢測與忠誠度評分的工具。
- 可插拔架構:每個步驟(分塊器、嵌入器、搜尋器、重排序器)皆定義為行為(behaviour),可輕鬆替換。
相關
- 專案
- 專案
- 專案
- 專案
- 專案