Skip to content
GitHub

Quickstart

Terminal window
uv add lexigram-ai-rag

Optional extras for PDF loading, web scraping, reranking, and compression:

Terminal window
uv add "lexigram-ai-rag[pdf,web,compression,reranking]"

import asyncio
from lexigram import Application
from lexigram.ai.rag import RAGModule
async def main() -> None:
async with Application.boot(
name="rag-demo",
modules=[RAGModule.configure()],
) as app:
pipeline = await app.container.resolve(RAGPipelineProtocol)
result = await pipeline.execute(
RAGContext(query="What is Lexigram?")
)
if result.is_ok():
print(result.unwrap().answer)
asyncio.run(main())

  1. RAGModule.configure() created a RAGProvider with default config (in-memory backing, top_k=5, chunking enabled).
  2. The provider registered RAGPipelineProtocol and RetrievalStrategyProtocol in the container.
  3. pipeline.execute() ran retrieval → synthesis → quality assurance and returned a RAGResponse.

  • Guide — mental model, core concepts, common patterns
  • Configuration — all config keys and env vars
  • How-Tos — copy-pasteable recipes