httpx>=0.25
pyyaml>=6.0
python-dotenv>=1.0
pydantic<3.0,>=2.0

[all]
langfuse<3.0,>=2.0
fastapi>=0.110
uvicorn[standard]>=0.27
rich>=13.0
textual>=0.40
click>=8.0
prompt_toolkit>=3.0
rapidfuzz>=3.0
tiktoken>=0.7
ragas>=0.2
datasets>=2.14
pandas>=2.0
deepeval>=0.20
pytest>=7.0
pytest-asyncio>=0.23
pytest-cov
pytest-benchmark>=4.0
ruff>=0.4.0
mypy<2.3.0,>=1.19.1
bandit>=1.9
types-PyYAML

[api]
fastapi>=0.110
uvicorn[standard]>=0.27

[dev]
pytest>=7.0
pytest-asyncio>=0.23
pytest-cov
pytest-benchmark>=4.0
ruff>=0.4.0
mypy<2.3.0,>=1.19.1
bandit>=1.9
types-PyYAML

[eval-all]
ragas>=0.2
datasets>=2.14
pandas>=2.0
deepeval>=0.20

[eval-deepeval]
deepeval>=0.20

[eval-gaia]
datasets>=2.14
pandas>=2.0

[eval-ragas]
ragas>=0.2
datasets>=2.14

[eval-swe-bench]
datasets>=2.14
pandas>=2.0

[rag]
pypdf>=4.0
python-docx>=1.1
pdfplumber>=0.11

[rag-cloud]
boto3>=1.34

[tokenizer]
tiktoken>=0.7

[tracing]
langfuse<3.0,>=2.0

[tui]
rich>=13.0
textual>=0.40
click>=8.0
prompt_toolkit>=3.0
rapidfuzz>=3.0
