Packages

Elixir-native LangChain, LangGraph, and DeepAgents for traceable LLM apps: OTP workflows, tools, memory, human-in-the-loop, streaming, custom clients/adapters, minimal deps, and WeaveScope tracing.

Current section

Files

Jump to
beam_weaver examples retrieval_indexing_agent.exs
Raw

examples/retrieval_indexing_agent.exs

alias BeamWeaver.Core.Document
alias BeamWeaver.Core.Message
alias BeamWeaver.DocumentIndex
alias BeamWeaver.DocumentLoader
alias BeamWeaver.DocumentTransformer
alias BeamWeaver.Models.FakeEmbeddingModel
alias BeamWeaver.Retriever
alias BeamWeaver.VectorStore
alias BeamWeaver.VectorStore.ETS, as: VectorETS
store = VectorETS.new(embedding: %FakeEmbeddingModel{})
index =
DocumentIndex.new(
loader: DocumentLoader.text("BeamWeaver uses explicit retrievers.", metadata: %{source: "guide"}),
transformers: [DocumentTransformer.metadata_map(&Map.put(&1, :tenant, "demo"))],
vector_store: store
)
{:ok, %{added: 1}} = DocumentIndex.run(index)
retriever = VectorStore.as_retriever(store, k: 1)
{:ok, [%Document{} = doc]} = Retriever.retrieve(retriever, "retrievers")
IO.puts(Message.text(Message.assistant(doc.content)))