| [project] | |
| name = "agentic-rag" | |
| version = "0.1.0" | |
| description = "Agentic RAG System — Multi-modal, ReAct-powered, MCP-enabled" | |
| requires-python = ">=3.10" | |
| readme = "README.md" | |
| dependencies = [ | |
| # Web framework and file uploads | |
| "fastapi>=0.115", | |
| "uvicorn[standard]>=0.30", | |
| "sse-starlette>=2.0", | |
| "python-multipart>=0.0.9", | |
| # Default LLM provider (also supports local OpenAI-compatible services) | |
| "openai>=1.60", | |
| # Vector database | |
| "pymilvus[milvus-lite]>=2.5", | |
| # Data and configuration | |
| "pydantic>=2.8", | |
| "pydantic-settings>=2.5", | |
| "pyyaml>=6.0", | |
| # CLI | |
| "typer>=0.15", | |
| "rich>=13.0", | |
| # HTTP, web search and async file I/O | |
| "httpx>=0.28", | |
| "ddgs>=9.0", | |
| "aiofiles>=24.0", | |
| ] | |
| [project.optional-dependencies] | |
| anthropic = [ | |
| "anthropic>=0.40", | |
| ] | |
| voice = [ | |
| # Remote SenseVoice/Kokoro clients; models run on AX8850 | |
| "aiohttp>=3.10", | |
| "numpy>=1.26,<2.3", | |
| "soundfile>=0.12", | |
| "librosa>=0.10", | |
| "pydub>=0.25", | |
| ] | |
| media = [ | |
| "opencv-python>=4.10", | |
| ] | |
| documents = [ | |
| "pymupdf>=1.24", | |
| ] | |
| gateways = [ | |
| "websockets>=13.0", | |
| "pycryptodome>=3.20", | |
| ] | |
| dev = [ | |
| "pytest>=8.3", | |
| "pytest-asyncio>=0.24", | |
| "pytest-cov>=5.0", | |
| "pillow>=10.0", | |
| "ruff>=0.7", | |
| "mypy>=1.13", | |
| ] | |
| [build-system] | |
| requires = ["setuptools>=75"] | |
| build-backend = "setuptools.build_meta" | |
| [tool.setuptools.packages.find] | |
| include = ["agentic_rag*"] | |
| [tool.ruff] | |
| line-length = 100 | |
| target-version = "py310" | |
| [tool.pytest.ini_options] | |
| asyncio_mode = "auto" | |
| testpaths = ["tests"] | |