AI-powered document analysis and Q&A system built with Streamlit and Google Gemini AI.
- Upload PDF and DOCX documents
- Ask questions about document content
- AI-powered responses using Google Gemini
- Clean, responsive UI with chat interface
- Secure API key management
Deploy in 3 clicks:
- Push this repo to GitHub
- Go to share.streamlit.io
- Select your repo → Add API key in secrets → Deploy!
📖 Full deployment guide: DEPLOYMENT.md
- Python 3.10+
- uv package manager
- Clone the repository:
git clone <repository-url>
cd Document-Query-Assistant- Install dependencies using uv:
# Using make (recommended)
make install
# Or manually
uv sync-
Configure your Gemini API key (choose one method):
Option A: Environment variable
# Create .env file from example cp .env.example .env # Edit .env and add your API key
Option B: Streamlit secrets
make setup-secrets # Or manually edit .streamlit/secrets.toml
Run the application:
# Using make (recommended)
make run
# Or manually
uv run streamlit run app.pyThe app will open at http://localhost:8501
make help # Show all available commands
make test # Run tests
make lint # Run linter
make lint-fix # Auto-fix linting errors
make deploy # Check deployment readiness
make clean # Clean cache filesuv run pytestuv run ruff check .uv run mypy .Document-Query-Assistant/
├── app.py # Main Streamlit application
├── config/
│ └── settings.py # Configuration management
├── services/
│ ├── document_parser.py # PDF/DOCX/TXT parsing
│ └── gemini_service.py # Gemini AI integration
├── utils/
│ └── session_manager.py # Session state utilities
├── tests/ # Test files
├── pyproject.toml # Project configuration
└── README.md # This file
MIT License - see LICENSE file for details.