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:

Python · 19 lines
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

Python · 8 lines
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

Python · 5 lines
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

Python · 5 lines
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

Python · 6 lines
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

Python · 5 lines
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

Related pages