InsightDocs is a production-ready AI-driven agent architecture system that transforms unstructured documents into operational intelligence through multi-agent collaboration. Built on modern microservices patterns, it demonstrates best practices for building scalable, maintainable AI applications.
- Orchestrator Agent: Coordinates workflows across all agents
- Data Agent: Handles document ingestion, storage, and transformation
- Analysis Agent: Generates embeddings, summaries, and entity extraction
- Planning Agent: Provides workflow planning and decision support
- Document chunking and embedding generation
- Vector similarity search with Milvus
- Context-aware response generation with Gemini
- Source citation and attribution
- Celery workers for background processing
- Real-time task status tracking
- Progress monitoring and error handling
- FastAPI for high-performance APIs
- PostgreSQL for reliable data storage
- Redis for message queuing and caching
- S3/MinIO for scalable file storage
- Docker Compose for easy deployment
- 35 Python modules implementing the complete system
- 5 documentation files covering all aspects
- 4 specialized agents working in coordination
- 3 API routers (documents, query, tasks)
- Full test coverage with pytest
CLI Tool → FastAPI REST API → API Documentation (Swagger/ReDoc)
Agent Orchestration → Specialized Agents → Message Queue
PostgreSQL (Metadata) ← → Milvus (Vectors) ← → Redis (Queue)
S3/MinIO (Files) ← → Local Storage (Temp)
1. User uploads PDF via API
2. API creates Document record in PostgreSQL
3. Celery task triggers Orchestrator Agent
4. Orchestrator coordinates:
a. Data Agent: Store file in S3, parse content
b. Data Agent: Chunk text into segments
c. Analysis Agent: Generate embeddings
d. Data Agent: Store embeddings in Milvus
5. Task marked as completed
6. Document ready for querying
1. User submits query via API
2. Analysis Agent generates query embedding
3. Milvus retrieves top-k similar chunks
4. LLM Client constructs context from chunks
5. Gemini generates contextual answer
6. Response includes answer + sources with citations
7. Query saved to history
# Clone and setup
git clone https://github.com/HarshilMaks/InsightDocs.git
cd InsightDocs
cp .env.example .env
# Add your GEMINI_API_KEY to .env
# Start all services
docker compose up -d
# Access
# - API: http://localhost:8000
# - Docs: http://localhost:8000/docs
# - MinIO: http://localhost:9001# Install CLI
pip install click requests
# Upload document
python cli.py upload document.pdf
# Query
python cli.py query "What is the main topic?"
# Check status
python cli.py status <task-id>orchestrator.py: Central workflow coordinatordata_agent.py: Data ingestion and transformationanalysis_agent.py: Embeddings and content analysisplanning_agent.py: Workflow planning and tracking
main.py: FastAPI application setupdocuments.py: Document management endpointsquery.py: RAG query endpointstasks.py: Task monitoring endpointsschemas.py: Pydantic request/response models
agent.py: Base agent frameworkmessage_queue.py: Redis-based message passing
schemas.py: SQLAlchemy database modelsdatabase.py: Database connection management
document_processor.py: Document parsing and chunkingembeddings.py: Embedding generation and vector searchllm_client.py: Gemini integration
celery_app.py: Celery configurationtasks.py: Async background tasks
file_storage.py: S3/MinIO integration
Environment variables (.env):
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
GEMINI_API_KEY=sk-...
S3_ENDPOINT=http://...
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...# Run all tests
pytest tests/
# Run with coverage
pytest --cov=insightdocs --cov-report=html
# Run specific test
pytest tests/test_core_agent.py -v../README.md: Project overview and featuresQUICKSTART.md: Getting started guide../ARCHITECTURE.md: Detailed system architectureAPI.md: API endpoint referenceDEVELOPMENT.md: Development guide
Makefile: Common development taskscli.py: Command-line interfacepytest.ini: Test configurationdocker-compose.yml: Local development environmentDockerfile: Container image definition
- Document Intelligence: Upload PDFs, Word docs, text files for Q&A
- Knowledge Base: Build searchable knowledge repositories
- Content Analysis: Extract entities, generate summaries
- Workflow Automation: Coordinate multi-step AI workflows
- Research Assistant: Query across multiple documents
- Environment-based configuration
- Secrets management via environment variables
- Input validation with Pydantic
- SQL injection prevention via ORM
- File upload validation
- Horizontal scaling of API servers
- Independent worker scaling
- Database connection pooling
- Redis clustering support
- S3 for unlimited storage
- Async I/O throughout
- Batch embedding generation
- Connection pooling
- Caching strategies
- Optimized vector search
- REST API: JSON-based HTTP API
- Message Queue: Redis pub/sub and queues
- Storage: S3-compatible object storage
- Database: PostgreSQL with SQLAlchemy
- LLM: Gemini API (extensible to other providers)
The codebase demonstrates:
- Async Python programming
- Agent-based architectures
- Microservices patterns
- RESTful API design
- Vector embeddings and RAG
- Celery task queues
- Docker containerization
- Test-driven development
See DEVELOPMENT.md for:
- Development workflow
- Code style guide
- Testing guidelines
- Best practices
- GitHub Issues: Bug reports and feature requests
- Documentation: Comprehensive guides in this directory
- Code Examples: See
cli.pyand tests
Built with: Python 3.11, FastAPI, Celery, PostgreSQL, Redis, Milvus, Gemini, Docker