Quickstart
On this page
Every subsystem in types wraps a backend object rather than being usable
standalone. The examples below use a minimal stand-in backend so the shapes
are runnable without the missing "zerda" core. Replace rag_system
with your real implementation once external dependencies are wired up.
A minimal duck-typed backend
Every module calls at least retrieve(query, ...) and generate(query, ...)
(exact parameter names vary — see each subsystem's page). This stub satisfies
the common contract:
from zerda.document_loaders.text_loader import TextLoader
from zerda.chunks.adaptive_chunker import AdaptiveChunker
from zerda.embeddings.hugginface_embedder import HuggingFaceEmbedder
from zerda.vector_database.faiss import FAISSVectorDatabase
from zerda.context import ContextManager
from zerda.llm.gemini_interface import GeminiInterface
from zerda.rag.core import RAGSystem
loader = TextLoader(file_path='db.txt').load()
chunks = AdaptiveChunker()
api_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx"
embeddings = HuggingFaceEmbedder()
db = FAISSVectorDatabase(embedder=embeddings)
llm = GeminiInterface(api_key= api_key)
cn = ContextManager()
rag_system = RAGSystem(vector_db=db , llm = llm,
chunker=chunks, context_manager=cn)
rag_system.add_documents(loader)
Agentic RAG
from zerda.rag.types.agentic_rag import AgenticRAG, AgenticConfig
backend = ToyRAGSystem()
backend.add_document("Paris is the capital of France.")
agent = AgenticRAG(rag_system, config=AgenticConfig(max_iterations=4, min_confidence=0.6))
result = agent.query("What is the capital of France?")
print(result.answer, result.confidence, result.iterations)
Conversational RAG
from zerda.rag.types.conversational_rag import ConversationalRAG
convo = ConversationalRAG(rag_system, lang="en", auto_save=False)
print(convo.ask("Who wrote Hamlet?"))
print(convo.ask("When was he born?")) # resolves "he" using history
Domain-Specific RAG
from zerda.rag.types.domain_rag import DomainSpecificRAG
domain_rag = DomainSpecificRAG(rag_system, domain="medical")
result = domain_rag.query("What are symptoms of the flu?")
print(result["answer"] if isinstance(result, dict) else result)
Federated RAG
from zerda.rag.types.federated_rag import FederatedRAG
fed = FederatedRAG()
fed.add_source("primary", backend, weight=1.5)
result = fed.query("Summarize the document set")
print(result)
Streaming RAG
from zerda.rag.types.streaming_rag import StreamingRAG
streamer = StreamingRAG(rag_system)
for chunk in streamer.stream("Tell me about Paris"):
print(chunk, end="", flush=True)
Next steps
- Read Architecture for the shared design pattern.
- Jump into the API Reference for exhaustive per-subsystem detail.