Arcana (Arcana v1.3.3)
View SourceRAG (Retrieval Augmented Generation) library for Elixir.
Arcana provides document ingestion, embedding, and vector search capabilities that you can embed into any Phoenix/Ecto application.
Usage
# Ingest a document
{:ok, document} = Arcana.ingest("Your text content", repo: MyApp.Repo)
# Search for relevant chunks
{:ok, results} = Arcana.search("your query", repo: MyApp.Repo)
# Ask questions with RAG
{:ok, answer} = Arcana.ask("What is X?", repo: MyApp.Repo, llm: my_llm)
# Delete a document
:ok = Arcana.delete(document.id, repo: MyApp.Repo)Modules
Arcana.Config- Configuration managementArcana.Ingest- Document ingestionArcana.Search- Vector and hybrid searchArcana.Ask- RAG question answeringArcana.Graph- GraphRAG functionality
Summary
Functions
Asks a question using retrieved context from the knowledge base.
See Arcana.Ask.ask/2 for options.
Returns the configured chunker as a {module, opts} tuple.
See Arcana.Config for configuration options.
Returns the current Arcana configuration.
Deletes a document and all its chunks.
Returns the configured embedder as a {module, opts} tuple.
See Arcana.Config for configuration options.
Returns whether GraphRAG is enabled.
Ingests text content, creating a document with embedded chunks.
See Arcana.Ingest.ingest/2 for options.
Ingests a file, parsing its content and creating a document with embedded chunks.
See Arcana.Ingest.ingest_file/2 for options.
Rewrites a query using a provided rewriter function.
See Arcana.Search.rewrite_query/2 for options.
Searches for chunks similar to the query.
See Arcana.Search.search/2 for options.
Functions
Asks a question using retrieved context from the knowledge base.
See Arcana.Ask.ask/2 for options.
Returns the configured chunker as a {module, opts} tuple.
See Arcana.Config for configuration options.
Returns the current Arcana configuration.
Deletes a document and all its chunks.
Options
:repo- The Ecto repo to use (required)
Returns the configured embedder as a {module, opts} tuple.
See Arcana.Config for configuration options.
Returns whether GraphRAG is enabled.
Ingests text content, creating a document with embedded chunks.
See Arcana.Ingest.ingest/2 for options.
Ingests a file, parsing its content and creating a document with embedded chunks.
See Arcana.Ingest.ingest_file/2 for options.
Rewrites a query using a provided rewriter function.
See Arcana.Search.rewrite_query/2 for options.
Searches for chunks similar to the query.
See Arcana.Search.search/2 for options.