Fake News Detector
A RAG-powered fact-checking pipeline that cross-references incoming articles against a curated evidence base and surfaces a retrieval-grounded trust verdict.

Fake News Detector ingests an article, retrieves semantically similar verified evidence from a vector store, and asks an LLM to produce a calibrated trust verdict grounded strictly in the retrieved sources. The pipeline is wrapped behind a Flask service and uses Supabase for persistence and News API for evidence collection.
Misinformation moves faster than manual fact-checking. Generic LLM answers are unreliable because they hallucinate and lack provenance. The challenge was to build a system that grounds every verdict in retrieved, traceable evidence instead of model memory.
Treat the LLM as a reasoning layer, not a knowledge source. Convert trusted evidence into embeddings, store them in a vector database, retrieve the top-k semantically similar items for each incoming article, and feed them into a strict prompt that asks for a verdict traceable to those sources only.
Flask API → News API ingestion → text chunking → embedding model → vector database → semantic retrieval → strict-grounded LLM prompt → trust verdict with cited sources. Supabase stores article metadata and verdict history.
Technical Challenges
Retrieval relevance was the hardest part — naive similarity often surfaced tangential sources. Tightening chunk size, adding metadata filters, and constraining the prompt to refuse when evidence was insufficient materially improved verdict quality.
Engineering Learnings
Grounded retrieval beats a larger model. The most reliable upgrades came from better chunking, stricter prompts, and refusing to answer when evidence was weak — not from scaling the LLM.