π€ A simple RAG (Retrieval-Augmented Generation) application for asking questions about PDF documents.
Upload your PDF π, let the application process it βοΈ, and ask questions about its content π¬.
- π€ Upload one or multiple PDF documents
- βοΈ Asynchronous document processing
- π PDF text extraction and chunking
- π§ Generate embeddings from document chunks
- π Semantic search using vector database
- π¬ Ask questions about uploaded documents
- π‘ Real-time document processing progress
- π Built-in PDF viewer
- π Navigate directly to specific PDF pages
- ποΈ Store document embeddings and metadata in Qdrant
π PDF
β
βΌ
π€ Upload Document
β
βΌ
β‘ FastAPI
β
βΌ
π Redis Queue
β
βΌ
βοΈ Background Worker
β
βββββββββ΄βββββββββ
βΌ βΌ
π Extract Text π‘ Progress
β β
βΌ βΌ
βοΈ Chunking WebSocket
β β
βΌ βΌ
π§ Embedding π» React
β
βΌ
ποΈ Qdrant
β
β
π¬ User Question
β
βΌ
π§ Query Embedding
β
βΌ
π Vector Search
β
βΌ
π Relevant Chunks
β
βΌ
π€ LLM
β
βΌ
π¬ AI Response
π§ͺ This is a learning project.
The main purpose of ask-pdf is to learn, experiment, and understand how RAG-based applications work.
This project is not intended to be production-ready.
The implementation may contain experimental approaches, simplified architecture, bugs, performance limitations, and missing production-level security or scalability considerations.