DataTalksClub / DataTalksClub/datatalksclub.github.io

Project: Build an Interactive Podcast Q&A Chatbot

Open
#96 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Project Idea
Dominant language
Python
Stars
381
Forks
42
PR merge metrics
No merged PRs in 30d

Description

📝 Background & Objective

To make our podcast pages highly interactive, we want to build a Chatbot that allows visitors to ask natural-language questions about our content.

Instead of reading through long transcripts or scrubbing through audio, a user should be able to ask a question—either about a specific podcast episode or across the entire podcast library—and receive a concise answer. These answers must include timestamps and direct links so the user can jump straight to the exact moment the topic was discussed.

This tool will drastically improve the user experience by helping visitors quickly extract insights, references, and explanations from our vast archive.

✅ Core Requirements

You will need to build a Retrieval-Augmented Generation (RAG) pipeline and a chat interface that handles the following:

1. Natural Language Q&A

Users should be able to type conversational questions (e.g., "What did the guest say about handling data drift?" or "What are the best tips for contributing to open-source?"). The bot should be able to scope its search to a single episode or query the entire library.

2. Retrieval & Generation

The system needs to:

  • Load and process the episode transcripts.
  • Retrieve the most relevant text segments based on the user's query.
  • Generate a short, accurate, and concise answer synthesized from those segments.
3. Timestamping & Deep Linking

Every generated answer must cite its sources by including the exact timestamp(s) and a direct, clickable link to jump to that specific moment in the video or audio player.

🛠 Technical Architecture & Suggestions

We want to keep this lightweight and accessible. You do not need to build an overly complex system.

  • Simple RAG Setup: You don't necessarily need a heavy Vector DB. A simple search engine like minsearch is perfect for retrieval: https://github.com/alexeygrigorev/minsearch
  • LLM API: We recommend using Groq (which has a very generous free tier and lightning-fast inference) or standard plain OpenAI API calls.
  • Keep it Lean: No heavy agent frameworks (like LangChain or LlamaIndex) are strictly required. Plain API calls and lightweight retrieval are preferred to keep the codebase maintainable.

📂 Resources You Can Use

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the podcast pages and transcript data in the _people folder, including the YAML/JSON timecodes and speaker fields. Define the retrieval and chat entry points around the existing website structure; done means episode-scoped and library-wide questions return concise answers with exact timestamps and clickable links to the relevant media moments.

Written by the indexing model from the issue text.

Assessment

Tech stack
jekyll, python
Domain
ai, machine-learning, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.