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 プロセスモデルに統合され、監視ツリー内に Nx.Serving インスタンスを用いてエンベッダーとリランカーを実行します。エージェント型 RAG タクソノミーに基づき、3つの動作モードをサポートしています:
- 高度な RAG:
Arcana.search/2、Arcana.ask/2といったシンプルなエントリポイントで、クエリの再書き換え、ハイブリッド検索、リランキングをデフォルトで処理します。 - モジュール型 RAG:開発者が
Arcana.Pipelineを用いて、再書き換え、分解、検索、グラウンド化などのカスタムステップシーケンスを定義できるコンポーザブルなパイプラインです。 - エージェント型 RAG:LLM駆動のループである
Arcana.Loopでは、モデルが実行時にツール(検索、回答、諦める)を選択し、複雑な多段階の質問に答えることができます。
対象ユーザー
インフラストラクチャの追加負荷やスタック内で複数の言語(例:Python)を扱う必要なく、RAG機能を実装したい Elixir および Phoenix 開発者。
特徴
- インフラストラクチャ不要:既存の Postgres データベース(pgvector を介して)を用いて、ドキュメント、埋め込み、知識グラフを管理します。
- ローカル優先:Bumblebee(EXLA、EMLX、Torchx)を介してローカル埋め込みとクロスエンコーダーのリランキングをサポートします。
- GraphRAG:エンティティ抽出、コミュニティ検出(Leiden)、ベクトル結果と統合されたグラフ検索を実装しています。
- 言語的グラウンド化:NLI ハルシネーション検査および忠実度スコアリングのためのツールを内蔵しています。
- プラグインアーキテクチャ:すべてのステップ(チャンカー、エンベッダー、検索エンジン、リランカー)は振る舞い(behaviour)として定義されており、簡単に交換可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト