Spaces:
Sleeping
Sleeping
| 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`, and `chatbot_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 | |
| ```text | |
| 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 | |
| 1. **User input** is rewritten into subqueries (LLM1) | |
| 2. **Retriever** fetches relevant chunks using BM25 and FAISS | |
| 3. **Classifier LLM** decides if results are relevant to Krishna | |
| 4. **GPT-4o** generates final answer using top-k chunks | |
| 5. **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 | |
| ```bash | |
| # 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 | |