Skip to content

anshumankansana/ai-qa-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 AI Q&A Bot Pro - Development Journey & Documentation Author: Anshuman Kansana Date: 5/10/2025 Purpose: Internship Assignment Development Time: 4 Days Status: ✅ Complete and Production-Ready


📖 Table of Contents

  1. Assignment Overview
  2. My 4-Day Journey
  3. Challenges & Solutions
  4. Technical Decisions
  5. What I Learned
  6. Features Implemented
  7. Future Enhancements
  8. Installation & Usage
  9. Reflections

🎯 Assignment Overview The Challenge: Build a tiny AI-powered app as an internship assignment to demonstrate motivation, resourcefulness, and creativity. Options Given:

  1. AI Q&A Bot (command-line app with API integration)
  2. Text Summarizer (summarize articles in 3 sentences)
  3. Personal Expense Tracker (track and summarize expenses) My Choice: I chose the AI Q&A Bot because it offered the most learning potential and allowed me to explore modern AI APIs. Requirements: • Show effort and resourcefulness • Document every step (including failures) • Build something functional • Stretch goal: Add a simple UI or deploy it My Goal: Not just meet the requirements, but exceed them by building something I'd actually want to use.

🗓️ My 4-Day Journey Day 1: Research & First Attempt (8 hours) Morning: Understanding the Assignment I spent the first few hours researching AI APIs and reading the assignment carefully. I wanted to understand: • What makes a good Q&A bot? • Which APIs are available and free? • What's the simplest way to get started? Initial Research: • Looked at OpenAI (requires payment) • Found Hugging Face (free and open-source) • Read about various models available First Approach: Hugging Face I started with Hugging Face because everyone recommends it for beginners. I thought it would be straightforward. python```

My first attempt

from huggingface_hub import InferenceClient

client = InferenceClient() response = client.text_generation( "What is Python?", model="meta-llama/Llama-3.2-3B-Instruct" )```

The Problem: ❌ Model didn't exist ❌ Got 404 errors ❌ Tried 5 different models - all unavailable or loading Models I tried:

  1. meta-llama/Llama-3.2-3B-Instruct - Not found
  2. microsoft/Phi-3-mini-4k-instruct - Loading forever
  3. mistralai/Mistral-7B-Instruct-v0.2 - Timeout
  4. google/flan-t5-large - Service unavailable
  5. HuggingFaceH4/zephyr-7b-beta - 503 error Afternoon: Multiple Approaches Instead of giving up, I tried different strategies: Attempt 2: Direct API calls import requests

Tried making raw API calls - same issues

Attempt 3: Multiple model fallback

Created a list of models, tried each one

Still didn't work consistently

Attempt 4: Adding retry logic

Added wait times and retries

Models were genuinely unavailable, not just slow

What I Learned on Day 1: • Free inference APIs can be unreliable • Models need to "warm up" which can take 20-30 seconds • Sometimes the best solution is to try something completely different • Documentation doesn't always match reality End of Day 1 Status: Frustrated but determined. Decided to research alternatives overnight.


Day 2: The Breakthrough (10 hours) Morning: Discovering Groq While researching alternatives, I found Groq: • ⚡ Claims to be "fastest inference" • 🆓 Free tier with generous limits • ✅ Always-on infrastructure • 📚 Clean, simple API Decision Point: Should I keep fighting with Hugging Face or try Groq? I decided to give Groq a shot. Setting up Groq (30 minutes):

  1. Signed up at console.groq.com
  2. Created API key (instant, no credit card)
  3. Installed package: pip install groq
  4. Tested basic call from groq import Groq

client = Groq(api_key="my_key") response = client.chat.completions.create( model="llama-3.1-8b-instant", messages=[{"role": "user", "content": "Hello!"}] ) Result: ✅ Worked instantly! Response in under 1 second! That moment when it worked was incredible. After a full day of errors, seeing a real response felt amazing. Mid-Morning: Building CLI Version (2 hours) With working API, I quickly built the command-line version:

Basic structure I created:

  1. Initialize Groq client
  2. Loop for user input
  3. Send to API
  4. Display response
  5. Handle errors gracefully Features I added to CLI: • Welcome message • Error handling • "quit" command • Conversation counter • Clean formatting Tested with questions like: • "What is Python?" • "Explain machine learning" • "How do I learn to code?" All worked perfectly! Afternoon: Basic Streamlit UI (3 hours) Time to build the web interface for the stretch goal. First Streamlit app (1 hour): import streamlit as st

st.title("AI Q&A Bot") question = st.text_input("Ask anything:") if question: response = get_ai_response(question) st.write(response) It worked, but looked very basic - default Streamlit theme, no personality. Adding features (2 hours): • Chat message display • Conversation history • Timestamps • Basic statistics End of Day 2 Status: ✅ Working CLI version ✅ Working web version ✅ Core functionality complete ❓ But it looked like every other Streamlit tutorial... Evening Realization: Every intern probably submits a basic chatbot. I needed something that would stand out. Started thinking about what features would make this special.


Day 3: Making It Special (12 hours) Morning Brainstorm: I asked myself: "What would make this impressive?" My ideas: • Multiple chat sessions (like ChatGPT) • Private/incognito mode • Better UI design • Export functionality • More statistics Decision: Implement multiple chats + incognito mode + UI overhaul Morning: Implementing Multiple Chats (4 hours) This was the hardest part technically. The Challenge: Streamlit reruns the entire script on every interaction. How do I maintain multiple separate conversations? My Solution: Use session state with a dictionary structure: st.session_state.chats = { 'chat_id_1': { 'name': 'Chat 1', 'messages': [...], 'created': timestamp, 'incognito': False } } Issues I faced:

  1. Chats disappearing - Fixed by proper initialization
  2. App crashing on delete - Fixed by checking chat count
  3. State getting lost - Fixed by careful state management
  4. Switching chats not working - Fixed by proper rerun logic Debugging approach: • Added print statements (then removed them) • Drew diagrams of state structure on paper • Tested edge cases (delete, switch, create simultaneously) • Refactored code twice to make it cleaner Afternoon: Incognito Mode (2 hours) Why I added this: Privacy matters. Some questions are personal. Users should have control. Implementation:

Toggle in sidebar

incognito = st.toggle("Incognito Mode")

Visual indicator

if incognito: st.markdown("🕵️ INCOGNITO MODE ACTIVE") Features: • Purple badge when active • Per-chat setting • Clear messaging about what it does • Visual emoji indicators Evening: UI Overhaul (6 hours) This took the longest but was the most rewarding. Learning CSS (2 hours): • Watched YouTube tutorials on CSS gradients • Studied modern web apps (ChatGPT, Linear, Notion) • Experimented with color combinations • Learned about hover effects and transitions Implementing Custom Styles (4 hours): /* What I created */

  • Gradient backgrounds (purple to dark blue)
  • Smooth hover effects on buttons
  • Custom input field styling
  • Professional color scheme
  • Rounded corners everywhere
  • Shadow effects Trial and error: • Tried 10+ different color schemes • Tested different gradient angles • Adjusted spacing and padding • Made sure text was readable • Tested hover effects End of Day 3 Status: ✅ Multiple chat sessions working ✅ Incognito mode implemented ✅ Beautiful custom UI ✅ Way beyond assignment requirements

Day 4: Polish & Documentation (8 hours) Morning: Final Features (3 hours) Added:

  1. Export functionality - Download chats as JSON
  2. Chat management - Rename and organize
  3. Better statistics - Track usage
  4. Error messages - User-friendly feedback Testing (1 hour): • Created multiple test chats • Tested all buttons and features • Checked edge cases • Fixed minor bugs • Verified on different screen sizes Afternoon: Documentation (4 hours) What I documented:
  5. README.md - Project overview and setup
  6. Code comments - Explain complex parts
  7. This journey document - The full story
  8. .env.example - Show required variables
  9. Installation guide - Step-by-step instructions Evening: Final Review (1 hour) Checklist: • ✅ Code is clean and commented • ✅ All features work • ✅ Documentation is complete • ✅ Installation is simple • ✅ README explains everything • ✅ Git repository is organized • ✅ .gitignore is proper Final test: Walked through the entire setup process as if I was a new user. Made sure everything was clear. End of Day 4: ✅ Project complete! ✅ Ready for submission ✅ Proud of what I built

😓 Challenges & Solutions Challenge 1: Hugging Face Models Not Working Time Lost: 8 hours on Day 1 The Problem: Every Hugging Face model I tried was either unavailable, loading, or timing out. This was incredibly frustrating because all the tutorials made it look easy. What I tried:

  1. Different models (tried 5+)
  2. Direct API calls with requests
  3. Retry logic with delays
  4. Error handling for "model loading" The Solution: Switched to Groq API completely. Sometimes the best solution is to try a different approach entirely. What I learned: • Free services can be unreliable • Don't be married to your first idea • Research alternatives when stuck • Time spent struggling taught me more than if it worked immediately

Challenge 2: Multiple Chat Management Time Spent: 4 hours on Day 3 The Problem: Streamlit reruns everything on each interaction, making state management tricky. Chats were disappearing, or the app would crash when deleting. Specific Issues: • Creating new chat would reset existing chats • Deleting a chat would crash the app • Switching chats would lose messages • State wasn't persisting correctly The Solution:

Careful initialization

if 'chats' not in st.session_state: # Initialize properly

Safe access

if chat_id in st.session_state.chats: # Use the chat

Handle deletion

if len(chats) > 1: # Don't delete last chat del st.session_state.chats[chat_id] What I learned: • State management is harder than it looks • Drawing diagrams helps understand structure • Test edge cases thoroughly • Small bugs can cause big problems


Challenge 3: Making the UI Beautiful Time Spent: 6 hours on Day 3 The Problem: I'm not a designer. The default Streamlit look is functional but boring. I wanted something that looked professional. My Process:

  1. Research - Looked at modern apps (2 hours)
  2. Learn - CSS tutorials and documentation (2 hours)
  3. Experiment - Tried different designs (2 hours) What worked: • Starting with color scheme (picked red/pink gradients) • Adding gradients everywhere • Smooth transitions on hover • Consistent spacing • Professional typography What didn't work: • First 5 color schemes looked terrible • Too many animations made it distracting • Some effects didn't work on mobile What I learned: • Good UI takes time • Copy what works (ethically) • Less is often more • Test on different screens • User experience matters as much as functionality

Challenge 4: Streamlit Deployment & Secrets Management Time Spent: 2 hours on Day 4 The Problem: When I tried to deploy my app to Streamlit Cloud, it kept failing. The app worked perfectly locally but crashed on deployment. The Error: Error: GROQ_API_KEY not found App failed to start What was happening: Locally, I was using a .env file to store my API key:

This worked locally

load_dotenv() api_key = os.getenv("GROQ_API_KEY") But Streamlit Cloud doesn't support .env files! Why .env doesn't work on Streamlit Cloud: • .env files are in .gitignore (correctly, for security) • They never get pushed to GitHub • Streamlit Cloud can't access them • Different deployment platforms have different ways of handling secrets My debugging process:

  1. First deploy attempt - Failed ❌
  2. Checked logs - "GROQ_API_KEY not found"
  3. Realized .env isn't available
  4. Researched Streamlit secrets management
  5. Found Streamlit uses secrets.toml file The Solution: Streamlit Cloud uses a special secrets management system. Step 1: Create .streamlit/secrets.toml for local testing

.streamlit/secrets.toml

GROQ_API_KEY = "gsk_your_key_here" Step 2: Update code to support both methods

Updated my code to work both locally and on Streamlit Cloud

import os import streamlit as st from dotenv import load_dotenv

load_dotenv()

def get_api_key(): # Try Streamlit secrets first (for deployment) if hasattr(st, 'secrets') and 'GROQ_API_KEY' in st.secrets: return st.secrets['GROQ_API_KEY'] # Fall back to .env file (for local development) return os.getenv('GROQ_API_KEY')

api_key = get_api_key() Step 3: Configure secrets on Streamlit Cloud

  1. Went to app settings on Streamlit Cloud
  2. Found "Secrets" section
  3. Added my API key: GROQ_API_KEY = "gsk_xxxxxxxxxxxxx" Step 4: Updated .gitignore .env .streamlit/secrets.toml The Result: ✅ Works locally with .env ✅ Works on Streamlit Cloud with secrets ✅ API key never exposed in GitHub ✅ Deployment successful! What I learned: • Different platforms handle secrets differently • Always test deployment early • Read platform-specific documentation • Security and convenience can both be achieved • .env is great for local, but not for deployment Important lesson for future: Never assume local development environment matches production. Test deployment early, not at the last minute! Files I created for proper deployment: .streamlit/secrets.toml (local testing):

This file is gitignored

GROQ_API_KEY = "your_key_here" Updated .gitignore: .env .streamlit/ *.toml Deployment checklist I created: • [ ] Code works locally • [ ] .env in .gitignore • [ ] .streamlit/secrets.toml in .gitignore • [ ] Code supports both .env and st.secrets • [ ] Secrets added in Streamlit Cloud dashboard • [ ] Test deployment • [ ] Verify API key works in production This challenge taught me that deployment is part of development, not an afterthought!


Challenge 5: Time Management The Reality: I had 4 days to complete this. That's not a lot of time! My Approach: Day 1: Research + Failed attempts (necessary!) Day 2: Core functionality (CLI + basic web) Day 3: Advanced features (multiple chats, UI) Day 4: Polish, documentation, and deployment What worked: • Starting simple (CLI first) • Building incrementally • Testing as I go • Not trying to do everything at once • Testing deployment on Day 4 (caught the secrets issue!) What I'd improve: • Started Day 1 with more research • Could have found Groq faster • Should have sketched UI before coding • Should have tested deployment earlier (Day 3) What I learned: • Plan but be flexible • Document as you go (not at the end) • Small wins build momentum • It's okay to pivot when something isn't working • Test deployment before the last day!

Challenge 6 Streamlit Deployment Issues & Switching to Render Time Spent: 3 hours on Day 4 The Problem: After updating my app and preparing for deployment on Streamlit Cloud, I kept running into the “GROQ_API_KEY not found” error. The app worked perfectly locally, but deployment kept failing despite following the .env approach. What I tried: • Adding .env file (worked locally, but not in Streamlit Cloud) • Using load_dotenv() and os.getenv() in various ways • Searching forums for workarounds • Creating .streamlit/secrets.toml (still confusing at first) The Core Issue: • Streamlit Cloud doesn’t support .env files for secrets. • Secrets need to be configured in the Streamlit dashboard. • .env files are ignored in GitHub for security, so deployment fails if the platform cannot access the key. The Solution: I decided to switch deployment from Streamlit Cloud to Render, which provides full Python support and better handling for environment variables. Steps I followed on Render:

  1. Signed up at https://render.com.
  2. Prepared the project folder with app.py and requirements.txt.
  3. Uploaded the project manually (or connected GitHub repo).
  4. Set the Build Command: pip install -r requirements.txt
  5. Set the Start Command: streamlit run app.py --server.port $PORT --server.address 0.0.0.0
  6. Added GROQ_API_KEY as an environment variable in Render dashboard.
  7. Verified the app runs successfully with no secrets errors. The Result: ✅ Works locally and on Render deployment ✅ API key is never exposed ✅ Streamlit app runs without crash ✅ Deployment is stable and reliable What I Learned: • Different deployment platforms have unique requirements. • .env files are great for local development, but not for production. • Environment variables are crucial for API security. • Render provides more flexibility for Python apps than Streamlit Cloud for complex projects. • Always test deployment early, not at the last minute.

🤔 Technical Decisions Decision 1: Groq vs Hugging Face Why I switched: Criteria Hugging Face Groq Availability ❌ Unreliable ✅ Always up Speed ⏱️ Varies ⚡ < 1 second Cost ✅ Free ✅ Free Setup ⚠️ Complex ✅ Simple Documentation ✅ Good ✅ Excellent Winner: Groq Lesson learned: Reliability > Popularity


Decision 2: Streamlit vs Flask Why Streamlit: • ✅ Faster development • ✅ Built-in widgets • ✅ Easy deployment • ✅ Good for demos • ✅ No need for HTML/CSS/JS knowledge Trade-offs: • ❌ Less control over UI • ❌ Entire page reruns • ❌ Harder to debug Worth it: Yes, for a 4-day project


Decision 3: Multiple Chats Feature Why I added this: • ✅ Differentiates from basic bots • ✅ Actually useful feature • ✅ Shows advanced state management • ✅ Makes app feel professional Alternative: Single chat with clear button Why multiple is better: Better user experience, more impressive


Decision 4: Incognito Mode Why I added this: • ✅ Shows privacy awareness • ✅ Unique feature • ✅ Actually useful • ✅ Easy to implement once chat system was done Could have skipped it: Yes Glad I didn't: Absolutely, it's a standout feature


📚 What I Learned Technical Skills Gained Python Programming: • Dictionary manipulation • State management • Error handling • File operations • Environment variables • Function organization API Integration: • RESTful API concepts • Authentication (API keys) • Request/response handling • Error handling for APIs • Rate limiting awareness • Reading API documentation Web Development: • Streamlit framework • Session state management • Custom CSS injection • UI/UX principles • Responsive design basics • User interaction patterns CSS & Design: • Gradient backgrounds • Hover effects • Transitions and animations • Color theory basics • Layout and spacing • Visual hierarchy Problem-Solving Skills What I learned:

  1. When to pivot - Don't waste time on dead ends
  2. Break problems down - Big problems = many small problems
  3. Research first - Understanding before coding saves time
  4. Test frequently - Catch bugs early
  5. Document struggles - Failed attempts are learning experiences Specific examples: • Hugging Face didn't work → Found Groq • State management was hard → Drew diagrams, tested edge cases • UI looked basic → Spent time learning CSS Soft Skills Developed Persistence: • Didn't give up after Day 1 failures • Kept trying different approaches • Stayed motivated through challenges Time Management: • Planned 4-day schedule • Prioritized features • Knew what to skip • Met deadline User Empathy: • Thought about real use cases • Added features people would want • Made UI intuitive • Considered privacy Communication: • Wrote clear documentation • Explained technical decisions • Documented my journey • Made README useful

✨ Features Implemented Core Features (Assignment Requirements)

  1. AI-Powered Q&A ✅ • Groq API integration • Llama 3.1 8B Instant model • Response time < 1 second • Conversation context maintained
  2. Command-Line Interface ✅ • Simple, clean design • Error handling • Exit commands • Session statistics
  3. Web Interface (Stretch Goal) ✅ • Built with Streamlit • Chat message display • User-friendly input • Real-time responses
  4. Documentation ✅ • Complete README • Installation guide • Code comments • This journey document Advanced Features (Beyond Requirements)
  5. Multiple Chat Sessions ✨ • Create unlimited chats • Switch between conversations • Independent histories • Organized sidebar
  6. Incognito Mode ✨ • Privacy-focused feature • Visual indicators • Per-chat setting • Temporary message storage
  7. Chat Management ✨ • Rename chats • Delete chats • Message counters • Creation timestamps
  8. Export Functionality ✨ • Download as JSON • Data portability • Easy sharing
  9. Beautiful UI ✨ • Custom CSS styling • Gradient backgrounds • Hover effects • Professional look
  10. Statistics & Tracking ✨ • Chat counter • Message counter • Usage tracking

🔮 Future Enhancements What I'd Add With More Time Week 1 Extensions:

  1. Database Integration - Save chats permanently
  2. Search Feature - Find past conversations
  3. Markdown Support - Better text formatting
  4. File Upload - Ask questions about documents Month 1 Extensions: 5. User Authentication - Personal accounts 6. Multiple AI Models - Let users choose 7. Voice Input/Output - Accessibility 8. Mobile App - Native experience Long-term Vision: 9. Collaborative Chats - Share with others 10. API Access - Let developers build on it 11. Plugin System - Extend functionality 12. Advanced Privacy - End-to-end encryption Why These Features? Database: Current session state is temporary Search: Becomes important with many chats Markdown: Technical discussions need formatting Voice: Accessibility and convenience Mobile: Most people use phones Collaboration: Learning happens in groups

💾 Installation & Usage Quick Start (5 Minutes)

  1. Prerequisites: • Python 3.8+ • Internet connection • Text editor
  2. Install:

Create folder

mkdir ai-qa-bot-pro cd ai-qa-bot-pro

Install packages

pip install groq python-dotenv streamlit

Get Groq API key from console.groq.com

  1. Setup: Create .env file: GROQ_API_KEY=your_key_here
  2. Run: streamlit run app.py Usage Tips Creating Chats: • Click "➕ New Chat" • Rename with ✏️ icon • Delete with 🗑️ icon Using Incognito: • Toggle in sidebar • Check for purple badge • Good for sensitive topics Exporting: • Click "Export as JSON" • Downloads automatically • Includes all messages

🤓 Reflections What Went Really Well

  1. Finding Groq Early (Day 2) If I'd spent another day on Hugging Face, I wouldn't have had time for advanced features.
  2. Adding Multiple Chats This single feature elevated the entire project. It went from "simple bot" to "actual application."
  3. Focusing on UX The 6 hours on CSS were worth it. The app looks professional, not like a tutorial project.
  4. Time Management I finished in 4 days with time to spare for documentation.
  5. Documentation Writing this README helped me understand my own project better. What I'd Do Differently
  6. Research First, Code Second If I'd researched APIs for 2 hours on Day 1 instead of immediately coding, I might have found Groq sooner.
  7. Start with Git I didn't use Git until Day 3. Lost some early experimental code.
  8. Mobile Testing I focused on desktop. Mobile experience could be better.
  9. Ask for Feedback Earlier I worked alone until Day 4. Earlier feedback would have helped.
  10. Plan UI Before Coding It I redesigned the UI 3 times. A sketch would have saved time. Biggest Challenge Day 1 Hugging Face struggles. Those 8 hours were frustrating, but they taught me: • Not everything works as advertised • Knowing when to change approaches • How to research alternatives • Dealing with technical frustration Most Rewarding Moment When the Groq API worked on Day 2. After a full day of errors, seeing that first successful response was incredible. That's the moment I knew I could actually complete this. Skills I'm Most Proud Of
  11. Problem-solving - Found solutions when first approach failed
  12. Persistence - Didn't give up on Day 1
  13. Going beyond - Added features beyond requirements
  14. UI/UX thinking - Made it look professional
  15. Documentation - Thorough and honest What This Project Taught Me About Software Development: • Things rarely work first try • Good UX takes time • Documentation is part of the product • Simple often beats complex • User needs drive features About Myself: • I can learn quickly under pressure • I enjoy solving problems • I care about user experience • I don't give up easily • I can manage time effectively About AI Development: • API reliability matters • Speed affects user experience • Context management is tricky • Privacy is important • Good documentation helps

🎓 Assignment Reflection Did I Meet the Requirements? Required: • ✅ Build a simple AI-powered app • ✅ Document every step (including failures) • ✅ Show effort and resourcefulness • ✅ Demonstrate creativity Stretch Goals: • ✅ Add a simple UI (went way beyond "simple") • ✅ Deploy it (ready for Streamlit Cloud) What Makes This Stand Out? Beyond Requirements: • Not just one feature, but 10+ • Not just functional, but beautiful • Not just working, but polished • Not just code, but documentation • Not just basic, but advanced Demonstrates: • Technical ability (API integration, state management) • Problem-solving (Hugging Face → Groq) • User empathy (multiple chats, incognito mode) • Design sense (custom UI) • Communication (this README) Time Breakdown Total: ~38 hours over 4 days

Day 1 (8h): Research, failed attempts, learning Day 2 (10h): Finding Groq, building core Day 3 (12h): Advanced features, UI overhaul Day 4 (8h): Polish, testing, documentation Was it worth it? Absolutely. I learned more in 4 days than I have in weeks of tutorials.


🏆 Final Thoughts What I'm Proud Of

  1. I completed a fully functional application in 4 days • Both CLI and web versions • 10+ features • Professional quality • Complete documentation
  2. I didn't give up when things didn't work • Day 1 was frustrating • Could have submitted basic version • Pushed myself to add more
  3. I went significantly beyond requirements • Assignment asked for basic bot • I built a feature-rich application • Added unique features (incognito mode) • Made it look professional
  4. I learned a tremendous amount • AI APIs • State management • UI/UX design • Problem-solving under pressure • Time management
  5. I documented everything honestly • Didn't hide failures • Explained decisions • Showed the real journey • Made it reproducible What This Experience Taught Me Technical Lessons: • How to integrate AI APIs • State management in web apps • UI/UX design principles • Problem-solving strategies Personal Lessons: • I can build complex things quickly • Persistence pays off • Good documentation matters • User experience is crucial • It's okay to change approaches Professional Lessons: • Time management is key • Planning helps but flexibility is crucial • Documentation is as important as code • User needs drive good features • Polish makes a big difference Message to Evaluators This project represents 4 intensive days of learning, problem-solving, and building. It's not perfect—no project ever is—but it's something I'm genuinely proud of. The challenges I faced (especially Day 1) taught me as much as the successes. The decision to switch from Hugging Face to Groq taught me about adaptability. The time spent on UI taught me about user experience. The documentation taught me about communication. I didn't just build a chatbot. I built a learning experience for myself and (hopefully) an impressive demonstration of what I can accomplish when given a challenge. Thank you for this opportunity. It's been an incredible learning experience.

📞 Contact Questions about this project? I'm happy to discuss: • Technical decisions • Implementation details • Challenges faced • Future improvements • Anything else! Author: Anshuman Kansana Email: anshumankansana@gmail.com mobile:- +91-7223069582


🙏 Acknowledgments Thanks to: • My internship mentor for this opportunity • Groq team for the amazing free API • Streamlit team for the excellent framework • Stack Overflow community • Claude AI for guidance when stuck • Everyone who gave feedback Resources used: • Groq API documentation • Streamlit documentation • CSS-Tricks for design inspiration • ChatGPT interface for UX ideas • Various YouTube tutorials


📝 Project Statistics Development: • Time: 4 days (38 hours) • Lines of Code: ~500 • Features: 10+ • Bugs Fixed: Too many to count • Coffee: Enough ☕ Learning: • New Technologies: 3 (Groq, Streamlit, Advanced CSS) • Failed Attempts: 5+ (Hugging Face models) • Breakthroughs: 1 major (Finding Groq) • Lessons: Countless Results: • Assignment Status: ✅ Complete • Stretch Goals: ✅ Exceeded • Pride Level: 💯 • Would Build Again: Absolutely


📄 License MIT License - Built for educational purposes as an internship assignment.


Thank you for reading about my journey. I hope this demonstrates not just technical ability, but problem-solving, creativity, and the drive to build something great. Now I'm excited to see what challenges come next! 🚀


Version: 2.0 - Enhanced Edition Status: Ready for Review ✅ Mood: Proud and Excited 😊

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages