File size: 1,548 Bytes
6b62834
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[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"]