httpx<1.0.0,>=0.24.0
python-dotenv<2.0.0,>=1.0.0
rich<15.0.0,>=13.0.0
beautifulsoup4<5.0.0,>=4.12.0
requests<3.0.0,>=2.31.0
numpy<3.0.0,>=1.24.0
tiktoken<1.0.0,>=0.5.0
PyMuPDF<2.0.0,>=1.23.0
pdfplumber<1.0.0,>=0.10.0
pandas<3.0.0,>=2.0.0

[all]
openai<3.0.0,>=1.0.0
anthropic<1.0.0,>=0.18.0
google-generativeai<1.0.0,>=0.3.0
ollama<1.0.0,>=0.1.0
openai-whisper<20250626,>=20231117
marker-pdf<2.0.0,>=0.2.0
torch<3.0.0,>=2.0.0

[anthropic]
anthropic<1.0.0,>=0.18.0

[audio]
openai-whisper<20250626,>=20231117

[dev]
pytest<10.0.0,>=9.0.2
pytest-asyncio<2.0.0,>=0.21.0
pytest-cov<5.0.0,>=4.0.0
black<26.0.0,>=23.0.0
ruff<1.0.0,>=0.1.0
mypy<2.0.0,>=1.0.0

[evaluation]
apscheduler<4.0.0,>=3.10.0

[gemini]
google-generativeai<1.0.0,>=0.3.0

[ml]
marker-pdf<2.0.0,>=0.2.0
torch<3.0.0,>=2.0.0

[ollama]
ollama<1.0.0,>=0.1.0

[openai]
openai<3.0.0,>=1.0.0
