Inspiration We kept noticing the same problem in our own group chats: someone shares a tech headline, someone else asks "wait, is that actually true / what's the source," and then everyone just... trusts whatever an LLM says from memory, hallucinations included. We wanted to build something small and inspectable that proves an LLM can answer real questions about real news while showing its work — citing the exact snippet it pulled the claim from, and admitting when it doesn't know. AG News's Sci/Tech split was the perfect small, clean sandbox to prove that pattern fast during the hackathon.
What it does SciSift pulls the Sci/Tech-labeled slice of the AG News dataset live from Hugging Face, chunks and embeds the articles, and stores them in a ChromaDB vector database. When you ask it a question — "what's new with AI chips," "which security stories came up" — it retrieves the most relevant article snippets and hands them to Gemma, which answers using only that retrieved context and cites which snippet backs each claim. If the indexed articles don't contain the answer, it says so instead of making something up.
How we built it We split the pipeline into clear stages: a Hugging Face datasets-server API loader that filters AG News down to Sci/Tech only, a LlamaIndex-based chunker, an ai-sdk-powered embedding step (text-embedding-004), ChromaDB for vector storage/retrieval, and a Gemma-powered generation step (called through the Vercel AI SDK's @ai-sdk/google provider) that turns retrieved chunks into a cited answer. It's wrapped in a small Express app with a single dashboard page for ingesting the dataset and asking questions, deployable to Vercel.
Challenges we ran into Getting AG News's raw text field (title and body glued together with a backslash) into clean, citable snippets took some custom parsing. We also had to design around Vercel's stateless serverless functions, since ChromaDB normally wants a persistent server — that pushed us toward documenting a hosted-Chroma deployment path instead of assuming local storage. Tuning chunk size for already-short news articles took a few passes so we weren't over-fragmenting context.
Accomplishments that we're proud of A working end-to-end RAG loop — live dataset pull, chunking, embedding, vector search, and Gemma-generated, cited answers — built and wired together within the hackathon window, plus a deployment-ready structure (Vercel config, env template, README) so it's not just a notebook demo.
What we learned How cleanly a "citation-or-refusal" system prompt curbs hallucination compared to open-ended prompting, and how much of a RAG pipeline's reliability comes from the boring parts — dataset cleaning and chunking — rather than the generation model itself.
What's next for SciSift Multi-source cross-referencing as a small agentic loop, an offline-friendly mode using a smaller Gemma variant via Ollama, swapping in a live news feed instead of a static dataset, and an automated groundedness eval to score answers against their cited sources.
Built With
- ag-news
- ai-sdk
- chromadb
- express.js
- gemma
- google-ai-studio
- graphics
- html
- huggingface
- javascript
- llamaindex
- node.js
- rag
- swiftui
- vercel

Log in or sign up for Devpost to join the conversation.