[build-system] requires = ["hatchling>=1.21.0"] build-backend = "hatchling.build" [project] name = "visual-rag-toolkit" version = "0.1.0" description = "End-to-end visual document retrieval with ColPali, featuring two-stage pooling for scalable search" readme = "README.md" license = {text = "MIT"} requires-python = ">=3.9" authors = [ {name = "Ara Yeroyan"} ] keywords = [ "visual-rag", "document-retrieval", "colpali", "colbert", "visual-search", "pdf-processing", "multimodal-rag", "qdrant", "late-interaction" ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Image Processing", ] dependencies = [ "torch>=2.0.0", "numpy>=1.21.0", "Pillow>=9.0.0", "tqdm>=4.60.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", ] [project.optional-dependencies] # Core ColPali embedding support embedding = [ "colpali-engine>=0.3.0", "transformers>=4.35.0", ] # PDF processing pdf = [ "pdf2image>=1.16.0", "pypdf>=3.0.0", ] # Vector database (Qdrant) qdrant = [ "qdrant-client>=1.7.0", ] # Image CDN (Cloudinary) cloudinary = [ "cloudinary>=1.30.0", ] # Streamlit UI demo ui = [ "streamlit>=1.25.0", "httpx>=0.24.0", ] # All dependencies all = [ "visual-rag-toolkit[embedding,pdf,qdrant,cloudinary,ui]", ] # Development dependencies dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", "black>=23.0.0", "ruff>=0.1.0", "mypy>=1.0.0", ] [project.scripts] visual-rag = "visual_rag.cli.main:main" [project.urls] Homepage = "https://github.com/your-org/visual-rag-toolkit" Documentation = "https://github.com/your-org/visual-rag-toolkit#readme" Repository = "https://github.com/your-org/visual-rag-toolkit" Issues = "https://github.com/your-org/visual-rag-toolkit/issues" [tool.hatch.build.targets.wheel] packages = ["visual_rag", "benchmarks"] [tool.ruff] line-length = 100 target-version = "py39" [tool.ruff.lint] select = ["E", "F", "I", "W"] ignore = ["E501"] [tool.black] line-length = 100 target-version = ["py39", "py310", "py311", "py312"] [tool.mypy] python_version = "3.9" warn_return_any = true warn_unused_configs = true ignore_missing_imports = true