RAG SystemsStatus: Case StudyYear: 2026
Research Saathi
Grounded research answers, with every claim checked against the sources.
A look inside
5 screens from the real build. Select any to see it full size.
Overview
A research assistant that turns a question and a set of PDFs or web pages into a grounded answer, then checks every claim in it against the retrieved evidence.
Research workflows often fragment across PDFs, notes, web searches, and summaries, making citation tracking and factual grounding difficult.
What I built
Designed the workflow, the evidence-only synthesis and verification prompts, the retrieval fallback, and run storage.
What it does
- PDF and URL ingestion
- Five output formats, from summary to interview prep
- Claim-by-claim verification
- Saved run history
System and architecture
A LangGraph pipeline plans the research, ingests PDFs and URLs, indexes them, retrieves evidence, writes an answer using only that evidence, and runs a separate verifier over each claim.
A fixed LangGraph pipeline runs plan, ingest, index, retrieve, synthesize and verify in order. Sources are chunked and embedded into Chroma; when vector search is unavailable, retrieval falls back to keyword search over the chunks stored in SQLite. Every run, plan, source and verdict is saved, so a run can be reopened from History.
- Interface
- Retrieval & data
- AI & models
- Planner, synthesizer and verifier as separate model calls
- Evidence labels (S1, S2, …) shared by the answer and the verifier
- Keyword search over SQLite when vector search fails
Technology
Themes
Challenges and trade-offs
- Keeping the model inside the retrieved evidence instead of its own knowledge.
- Keeping retrieval working when the embeddings service fails.
Outcome
LangGraph pipeline · Evidence-only answers · Claim verifier
- Each claim gets a verdict (supported, weak support or unsupported) with the evidence labels it relied on.
- Runs are stored, so any answer can be traced back to its sources later.
Learnings
- A verifier is more useful when it flags problems than when it quietly rewrites the answer.
- Stored runs are only useful when source provenance is preserved.
Next steps
- Fix the embeddings call so vector search runs instead of the keyword fallback.
- Reuse already-ingested URLs instead of returning an empty answer on a repeat run.