An AI-powered RAG (Retrieval-Augmented Generation) platform where users can upload any type of document and ask questions based on its content. Powered by FastAPI, Qdrant, LangChain, HuggingFace embeddings, Redis memory, and CrewAI for intelligent agent orchestration.
AskVault.mp4
- 🧠 Retrieval-Augmented Generation (RAG) pipeline with CrewAI + Gemini/OpenAI
- 🧠 Context-aware conversations with persistent memory powered by Redis
- 📎 Supports multi-format document parsing (PDF, DOCX, TXT, PPTX, etc.) via
unstructured - 🧲 Fast and scalable semantic search using LangChain + Qdrant
- 🧩 Modular CrewAI agents for document understanding and reasoning
- 📦 Document embeddings generated using HuggingFace (
MiniLM-L6-v2) or any other model - 👥 Per-user document isolation for private, personalized search
- 🔄 End-to-end contextual QA based entirely on uploaded content
- 🌐 Ready-to-integrate with any frontend (e.g., Next.js)
| Layer | Tech Used |
|---|---|
| Backend | FastAPI, Prisma (PostgreSQL) |
| Frontend | Next.js |
| LLM Agents | CrewAI |
| Vector DB | Qdrant (local or cloud) |
| Embeddings | HuggingFace all-MiniLM-L6-v2 |
| Memory | Redis + LangChain ConversationBufferMemory |
| Parsing | unstructured |
| Auth | python-jose, bcrypt |
| Vector Search | LangChain + QdrantVectorStore |
Interactive API docs available at:
git clone https://github.com/tanish35/AskVault.git
cd AskVaultuv is a modern Python package/dependency manager.
uv init
uv installCreate a .env file:
DATABASE_URL=postgresql://username:password@localhost:5432/AskVault
QDRANT_URL=http://localhost:6333
REDIS_URL=redis://localhost:6379
SECRET_KEY=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_keynpx prisma generate
npx prisma migrate dev --name initdocker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
docker run -p 6379:6379 redisEnsure your .env variables match these.
uv run fastapi devInside the frontend/ folder:
npm install
npm run devThanks to unstructured, these formats are supported:
.pdf.docx.txt.pptx.html.eml,.msg.md,.rst
The app uses CrewAI to define a document expert agent that:
- Uses
LangChaintools to search your documents - Responds only using context retrieved from Qdrant
- Maintains conversational state using Redis-based memory to understand context across turns
- Handles user-specific queries using JWT-based filtering
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a new branch for your feature or fix
- Make your changes and commit them
- Push to your branch
- Create a pull request
MIT © 2025 – Tanish Majumdar