0% found this document useful (0 votes)
14 views3 pages

RAG Chatbot for News Websites Assignment

Uploaded by

mrbean patra
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views3 pages

RAG Chatbot for News Websites Assignment

Uploaded by

mrbean patra
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Assignment: Build a RAG-Powered Chatbot

for News Websites


1. Overview

This is an assignment for the role of Full Stack Developer at Voosh.

You are required to create a simple full-stack chatbot that answers queries over a news corpus
using a Retrieval-Augmented Generation (RAG) pipeline. Every new user should be a new
session so create a session identifier.

2. Objectives

1. RAG Pipeline
o Ingest ~50 news articles (e.g. RSS feed or scraped HTML).
o Embed with Jina Embeddings (free tier) or any other open source embeddings you like .
o Store embeddings in a vector store of your choice (Qdrant, Chroma, faiss, etc.).
o Retrieve top-k passages for each query, then call Gemini API for final answer.
2. Back-End
o Build a REST API ([Link] – Express).
o Use API / Socket based for chat. Also Implement to fetch session’s history and
clear session
o Storage:
▪ Redis for in-memory chat history (per session).
▪ Persist final transcripts optionally in a SQL database (MySQL/Postgres)(Optional).
3. Front-End
o React + SCSS with:
1. Chat screen:
▪ Displays past messages.
▪ Input box for new messages.
▪ Streaming bot responses (if possible) or typed-out reply.
▪ button to reset the session
4. Caching & Performance
o Cache session history and conversations in In-memory database
o Show in your README how you’d configure TTLs or cache warming.
3. Tech Stack (choose & justify)

• Embeddings
• Vector DB
• LLM API: Google Gemini (free trial)
• Backend: [Link] (Express)
• Cache & Sessions: Redis (in-memory) or any other in-memory database you like
• Database (optional): MySQL or Postgres
• Frontend: React + SCSS

4. Deliverables

Please share your work at richa@[Link] with-

1. List of Tech Stack Used


2. Git Repositories
o Two public repos (frontend & backend) with full code and a clear [Link] in each.
3. Demo Video
o A video (mp4 or hosted via unlisted link) showing:
▪ Starting the frontend.
▪ Sending queries and observing Gemini responses.
▪ Viewing and resetting chat history of session.
4. Code Walkthrough
o Written or video explanation of the end-to-end flow, covering:
▪ How embeddings are created, indexed, and stored.
▪ How Redis caching & session history works.
▪ How the frontend calls API/Socket and handles responses.
▪ Any noteworthy design decisions and potential improvements.
5. Live Deployment
o A hosted, publicly accessible link (using any free hosting service) where we can
test the chatbot.
5. Evaluation Criteria

Area Weight
End-to-End Correctness 35%
Code Quality 30%
System Design & Caching 20%
Frontend UX & Demo 5%
Hosting 10%

Good luck!

We look forward to reviewing your working demo, code repos, and detailed flow explanation
and testing it.

Note: Feel free to leverage any existing code—from open-source libraries, GitHub
repositories, or AI-generated snippets—provided you fully understand and can explain it.

Resources & References


• News ingestion example: [Link]
• Reuters sitemaps: [Link]
index/?outputType=xml
• Jina Embeddings: [Link]
• Google AI Studio API keys: [Link]
• Qdrant quickstart: [Link]
• Pinecone quickstart: [Link]
• [Link] hosting: [Link]
• Redis Python client: [Link]
• For frontend development you can use - v0, [Link] or any other LLM.

You might also like