Hubermanbot2 / README.md
Angel
Update README.md
e29b955
|
raw
history blame
3.75 kB

Andrew Huberman RAG-Based AI Chatbot Using YouTube Videos

πŸ“Œ Overview

Xyzbot is an AI chatbot designed to mimic Andrew Huberman by fetching and analyzing YouTube video transcripts from his channel. It automatically retrieves transcripts when new videos are uploaded, updates its knowledge base in ChromaDB, and provides citations linking to the specific video sources. The application is built using Streamlit and deployed in a Docker container.

πŸš€ Features

  • Mimics Andrew Huberman by extracting insights from his YouTube videos
  • Automatically fetches transcripts when new videos are uploaded
  • Stores and updates knowledge base using ChromaDB
  • Uses RAG to generate accurate, citation-linked responses
  • Provides direct links to cited YouTube videos
  • Interactive Streamlit UI for seamless user experience
  • Deployed using Docker for easy scalability and portability

πŸ›  Tech Stack

  • Backend: Python, LangChain, OpenAI API
  • Frontend: Streamlit
  • Database: ChromaDB (Vector Store)
  • Deployment: Docker

πŸ“‚ Project Structure

πŸ“¦ Xyzbot
β”œβ”€β”€ πŸ“‚ Data
β”œβ”€β”€ πŸ“‚ Example
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ rag_example.py
β”œβ”€β”€ πŸ“‚ Llm
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ llm_endpoints.py
β”œβ”€β”€ πŸ“‚ Notebook
β”œβ”€β”€ πŸ“‚ Prompts
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ huberman_prompt.py
β”‚   β”œβ”€β”€ summary_prompt.py
β”œβ”€β”€ πŸ“‚ Rag
β”‚   β”œβ”€β”€ chromadb.db
β”‚   β”œβ”€β”€ πŸ“‚ Processed_folder
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ error_log.txt
β”‚   β”œβ”€β”€ rag_pipeline.py
β”œβ”€β”€ πŸ“‚ utils
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ corefrence.py
β”‚   β”œβ”€β”€ get_link.py
β”‚   β”œβ”€β”€ summarization.py
β”œβ”€β”€ .dockerignore
β”œβ”€β”€ .env
β”œβ”€β”€ .gitignore
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ poetry.lock
β”œβ”€β”€ pyproject.toml

πŸ”§ Installation

  1. Clone the repository:
    git clone https://github.com/Angel-dash/Xyzbot.git
    cd Xyzbot
    
  2. Create a virtual environment and install dependencies:
    python3 -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    pip install -r requirements.txt
    

🎯 API Keys Required

To run this project, you'll need to obtain the following API keys:

  • Google Gemini API Key (For language processing and AI capabilities)
  • YouTube API Key (For fetching transcripts from YouTube)

How to Get Your API Keys:

▢️ Running the Application

  1. Start the Streamlit app:
    streamlit run src/main.py
    
  2. Open http://localhost:8501/ in your browser.

🐳 Running with Docker

  1. Build the Docker image:
    docker build -t xyzbot:latest .
    
  2. Run the container:
    docker run -p 8501:8501 xyzbot:latest
    

πŸ“Œ Future Enhancements

  • Improve response generation with fine-tuned LLMs
  • Enable real-time monitoring of multiple YouTube channels
  • Enhance citation formatting for better user experience
  • Provide timestamps for specific content along with the links
  • AI agent ability to detect greetings and unrelated topics
  • Improve RAG by using a hybrid method
  • Implement caching for better performance

πŸ“œ License

This project is licensed under the MIT License.

🀝 Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.


Author: Angel Dash | GitHub: Angel-dash