Arcana (Arcana v1.3.3)

View Source

RAG (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

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

ask(question, opts)

Asks a question using retrieved context from the knowledge base. See Arcana.Ask.ask/2 for options.

chunker()

Returns the configured chunker as a {module, opts} tuple. See Arcana.Config for configuration options.

config()

Returns the current Arcana configuration.

delete(document_id, opts)

Deletes a document and all its chunks.

Options

  • :repo - The Ecto repo to use (required)

embedder()

Returns the configured embedder as a {module, opts} tuple. See Arcana.Config for configuration options.

graph_enabled?(opts)

Returns whether GraphRAG is enabled.

ingest(text, opts)

Ingests text content, creating a document with embedded chunks. See Arcana.Ingest.ingest/2 for options.

ingest_file(path, opts)

Ingests a file, parsing its content and creating a document with embedded chunks. See Arcana.Ingest.ingest_file/2 for options.

rewrite_query(query, opts \\ [])

Rewrites a query using a provided rewriter function. See Arcana.Search.rewrite_query/2 for options.

search(query, opts)

Searches for chunks similar to the query. See Arcana.Search.search/2 for options.