Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available:
5.33.2
metadata
title: Personal ChatBot
emoji: ๐ฌ
colorFrom: yellow
colorTo: purple
sdk: gradio
sdk_version: 5.0.1
app_file: app.py
pinned: false
license: apache-2.0
short_description: Krishna's Persona Chat Bot using Multi RAG network
๐ง Krishna's Personal AI Chatbot
A memory-grounded, retrieval-augmented AI assistant built with LangChain, FAISS, BM25, and Llama3 โ personalized to Krishna Vamsi Dhulipallaโs career, projects, and technical profile.
โก๏ธ Ask me anything about Krishna โ skills, experience, goals, or even what tools he used at Virginia Tech.
๐ Features
- โ Hybrid Retrieval: Combines dense vector search (FAISS) + keyword search (BM25) for precise, high-recall chunk selection
- ๐ค LLM-Powered Pipelines: Uses OpenAI GPT-4o and NVIDIA NIMs (e.g. LLaMA-3, Mixtral) for rewriting, validation, and final answer generation
- ๐ง Memory Module: Stores user preferences, recent topics, and inferred tone using a structured
KnowledgeBase
schema - ๐ ๏ธ Custom Architecture:
- Query โ Rewriting โ Hybrid Retriever โ Scope Validator โ LLM Answer
- Fallback humor model (Mixtral) for out-of-scope queries
- ๐งฉ Document Grounding: Powered by Krishnaโs actual markdown files like
profile.md
,goals.md
, andchatbot_architecture.md
- ๐ Enriched Vector Store: Chunks include LLM-generated summaries and synthetic queries for better search performance
- ๐๏ธ Gradio Frontend: Responsive, markdown-formatted interface for natural, real-time interaction
๐๏ธ Architecture
User Query
โ
[LLM1] โ Rephrase into 3 diverse subqueries
โ
Hybrid Retrieval (BM25 + FAISS)
โ
[LLM2] โ Classify: In-scope or Out-of-scope
โ
โโ In-scope โ Top-k Chunks โ GPT-4o
โโ Out-of-scope โ Mixtral (funny fallback)
โ
Final Answer + Async Memory Update
๐ Project Structure
.
โโโ app.py # Main Gradio app and pipeline logic
โโโ Vector_storing.py # Chunking, LLM-based enrichment, and FAISS store creation
โโโ requirements.txt # Python package dependencies
โโโ faiss_store/ # Saved FAISS vector index
โโโ all_chunks.json # JSON of enriched document chunks
โโโ personal_data/ # Source markdown files (right now excluded)
โโโ README.md
๐ง Knowledge Sources
All answers are grounded in curated markdown files:
File Name | Description |
---|---|
profile.md |
Krishnaโs full technical profile and education |
goals.md |
Short- and long-term personal goals |
chatbot_architecture.md |
System-level breakdown of this AI assistant |
personal_interests.md |
Hobbies, cultural identity, food preferences |
conversations.md |
Sample queries and expected response tone |
๐งช How It Works
- User input is rewritten into subqueries (LLM1)
- Retriever fetches relevant chunks using BM25 and FAISS
- Classifier LLM decides if results are relevant to Krishna
- GPT-4o generates final answer using top-k chunks
- Memory is updated asynchronously with every turn
๐ฌ Example Queries
- What programming languages does Krishna know?
- Tell me about Krishnaโs chatbot architecture
- Can this chatbot explain Krishna's work at Virginia Tech?
- What tools has Krishna used for data engineering?
๐ Setup & Usage
# 1. Clone the repo
git clone https://github.com/krishna-creator/krishna-personal-chatbot.git
cd krishna-personal-chatbot
# 2. Install dependencies
pip install -r requirements.txt
# 3. Set your API keys (OpenAI, NVIDIA)
export OPENAI_API_KEY=...
export NVIDIA_API_KEY=...
# 4. Launch the chatbot
python app.py
๐ฎ Model Stack
Purpose | Model Name | Provider |
---|---|---|
Query Rewriting | phi-3-mini-4k-instruct |
NVIDIA |
Scope Classifier | llama-3-70b-instruct |
NVIDIA |
Answer Generator | gpt-4o |
OpenAI |
Fallback Humor LLM | mixtral-8x22b-instruct |
NVIDIA |
๐ Acknowledgments
- Built as part of Krishna's exploration into LLM orchestration and agentic RAG
- Inspired by LangChain, SentenceTransformers, and NVIDIA RAG Agents Course
๐ License
MIT License ยฉ Krishna Vamsi Dhulipalla