This is a simple a multi-modal RAG system that can handle MS Office documents, PDFs, images, audio, and video. It uses Google Vertex AI for embeddings and Google Gemini 2.5 Flash for LLMs.
├── db/
│ └── (empty, will be auto-populated)
├── documents/
│ └── sample_document.txt
│
├── src/
| └── multi_modal_rag/
| ├── __init__.py
| ├── embedder.py
| ├── ingestion.py
| ├── llm_interface.py
| ├── main.py
| └── vector_store.py
|
├── .env.example
├── .gitignore
├── .python-version
├── LICENSE.txt
├── pyproject.toml
├── README.md
└── uv.lock
- Python 3.13
- Google Cloud Platform account with Vertex AI and Gemini 2.5 Flash enabled
gcloudCLI installed and authenticateduvpackage manager installed (pip install uv)
-
Clone this repo and
cd multi-modal-raginto it. -
Run
uv syncto install dependencies into virtual environment.venvfrompyproject.toml. -
Replace the name
.env.exampleto.envfile in the root of the project and add your Google Cloud project ID and Gemini API key:GOOGLE_CLOUD_PROJECT=your-project-id GEMINI_API_KEY=your-api-key
-
Run
gcloud config set project <your-project-id>to set your Google Cloud project. -
Run
gcloud services enable speech.googleapis.comto enable the Speech API. -
Run
uv run multi-modal-ragto start the application.
- ✅ No dependencies required
- ✅ Fast startup
⚠️ Must build on each platform- 📦 ~150-200MB per platform
Build: See BUILD.md
- ✅ True cross-platform (one image for all)
- ✅ Consistent environment
- ✅ Easy updates
⚠️ Requires Docker- 📦 ~500MB compressed
Build: See DOCKER.md
- ✅ Smallest size
- ✅ Easy to modify
⚠️ Requires Python 3.13+- 📦 ~50MB
Install: uv sync && uv run multi-modal-rag
# Pull and run
docker pull ghcr.io/yourusername/multi-modal-rag:latest
docker run -it --rm -v $(pwd)/.env:/app/.env multimodal-rag:latest
# Or use docker-compose
docker compose up# Download from releases
# Extract and run:
# Windows
MultiModalRAG.exe
# macOS
open MultiModalRAG.app
# Linux
./MultiModalRAGuv sync
uv run multi-modal-rag- BUILD.md - Build native executables
- DOCKER.md - Docker distribution guide
- CONTRIBUTING.md - Development guide
| Platform | Docker | Native Exe | Python |
|---|---|---|---|
| Windows 10/11 | ✅ | ✅ | ✅ |
| macOS (Intel) | ✅ | ✅ | ✅ |
| macOS (Apple Silicon) | ✅ | ✅ | ✅ |
| Linux (x86_64) | ✅ | ✅ | ✅ |
| Linux (ARM64) | ✅ | ✅ |