[project] name = "vrag" version = "0.1.0" description = "Multimodal video RAG over YouTube videos with EmbeddingGemma 2 + Gemma 4 12B" readme = "README.md" requires-python = ">=3.12" dependencies = ["fastapi==0.143.0", "uvicorn==0.54.0", "numpy==1.26.4", "pillow==12.3.0", "python-multipart==0.0.32", "httpx==0.28.1", "pydantic==2.14.0", "PyYAML==6.0.3"] [project.optional-dependencies] offline = ["av", "soundfile", "librosa", "yt-dlp[default,curl-cffi]", "webvtt-py", "jiwer", "openai>=1.40", "rich", "typer"] legacy-local = ["torch>=2.11", "torchvision", "torchaudio", "transformers>=5.19.0", "sentence-transformers>=6.1.0", "torchcodec", "accelerate"] [tool.uv] package = true [[tool.uv.index]] name = "pytorch-cu130" url = "https://download.pytorch.org/whl/cu130" explicit = true [tool.uv.sources] torch = { index = "pytorch-cu130" } torchvision = { index = "pytorch-cu130" } torchaudio = { index = "pytorch-cu130" } torchcodec = { index = "pytorch-cu130" } [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["vrag", "config"] [project.scripts] vrag = "vrag.cli:app" [dependency-groups] dev = ["pytest==9.1.1", "pytest-asyncio==1.4.0", "psutil==7.2.2"]