A RAG (Retrieval-Augmented Generation) system that allows users to upload documents, process them into chunks, store embeddings in a vector database, and query them using LLMs.
This project is currently in active development. Core RAG functionality is implemented and testable.
- Python 3.13+
- OpenAI API key
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install langchain
pip install langchain-openai
pip install chromadb
pip install pypdf
pip install python-docxSet your OpenAI API key:
import os
os.environ["OPENAI_API_KEY"] = "your-api-key-here"Or use a .env file (recommended):
OPENAI_API_KEY=your-api-key-hereAgenticAi/
├── llms.ipynb # Main Jupyter notebook for testing
├── chroma_db/ # Vector database storage (gitignored)
├── .env # Environment variables (gitignored)
├── .gitignore
└── README.md
- Document Loading: User selects a file (PDF, text, etc.)
- Chunking: Document is split into manageable chunks with overlap
- Embedding: Each chunk is converted to vector embeddings
- Storage: Embeddings are stored in ChromaDB vector database
- Query: User asks a question
- Retrieval: Most relevant chunks are retrieved via similarity search
- Generation: LLM generates answer based on retrieved context
- Only supports PDF and text files
- No user interface yet (Jupyter notebook only)
- Vector database is local (not cloud-based)
- Single document processing at a time