A modern, AI-powered document chatbot that lets you upload documents and chat with them using advanced RAG (Retrieval-Augmented Generation) technology. Built with React and FastAPI.
- 📤 Drag & Drop Upload - Easily upload PDF, DOCX, TXT, XLSX, and CSV files
- 💬 AI-Powered Chat - Ask questions about your documents in natural language
- 📚 Source Citations - See exactly where answers come from with relevance scores
- 🎨 Beautiful UI - Modern glassmorphism design with smooth animations
- ⚡ Fast Responses - Powered by Groq's LLaMA 3.1 model
- 🔒 Secure - Vector embeddings stored in Pinecone
Upload any document and start asking questions! The AI will provide detailed answers with source citations showing exactly where the information came from.
- React 19 - Modern UI framework
- CSS3 - Glassmorphism design with custom animations
- Fetch API - RESTful backend communication
- FastAPI - High-performance Python web framework
- LangChain - RAG orchestration and document processing
- Pinecone - Vector database for semantic search
- Groq - Fast LLM inference (LLaMA 3.1 8B)
- HuggingFace - Sentence embeddings (all-MiniLM-L6-v2)
CELLA_AI_2.0/
├── backend/
│ ├── routes/
│ │ ├── upload.py # Document upload & processing
│ │ └── chat.py # Chat & query handling
│ ├── service/
│ │ └── utils.py # RAG services (chunking, embeddings, vector store)
│ └── main.py # FastAPI application
├── frontend-new/
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── DocumentUpload.js
│ │ │ ├── ChatInterface.js
│ │ │ └── MessageBubble.js
│ │ ├── App.js # Main application
│ │ └── index.css # Design system
│ └── public/
└── requirements.txt
- Python 3.10+
- Node.js 16+
- Pinecone API Key (Get one here)
- Groq API Key (Get one here)
- Clone the repository
git clone <your-repo-url>
cd CELLA_AI_2.0- Set up Backend
# Create and activate virtual environment
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac
# Install dependencies
pip install -r requirements.txt- Configure Environment Variables
Create a .env file in the backend folder:
GROQ_API_KEY=your_groq_api_key_here
PINECONE_API_KEY=your_pinecone_api_key_here- Set up Frontend
cd frontend-new
npm installTerminal 1 - Start Backend:
.venv\Scripts\activate
python backend\main.pyBackend runs on: http://localhost:8000
Terminal 2 - Start Frontend:
cd frontend-new
npm startFrontend runs on: http://localhost:3000
- Document Upload - Files are processed and split into chunks
- Embedding - Chunks are converted to vector embeddings
- Storage - Vectors are stored in Pinecone for fast retrieval
- Query - User questions are embedded and matched with relevant chunks
- Generation - LLM generates answers based on retrieved context
- Citation - Sources are displayed with relevance scores
- Glassmorphism Design - Frosted glass effect with backdrop blur
- Smooth Animations - Fade-in effects and hover transitions
- Responsive Layout - Works on desktop, tablet, and mobile
- Real-time Feedback - Upload progress and typing indicators
- Source Expansion - Click to view full source content and metadata
| Variable | Description | Required |
|---|---|---|
GROQ_API_KEY |
Groq API key for LLM inference | Yes |
PINECONE_API_KEY |
Pinecone vector database key | Yes |
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is open source and available under the MIT License.
- Built with LangChain
- Powered by Groq and Pinecone
- UI design inspired by modern glassmorphism trends
- Learned from Sunny Savita YouTube Channel⭐
Made with ❤️ using React and FastAPI