| # LangGraph stack | |
| # Note: the `langchain` meta-package is intentionally excluded — it pins | |
| # `langgraph>=1.0`, which is incompatible with our `langgraph 0.6.x` graphs. | |
| # We only need the granular packages below. | |
| langgraph>=0.6.0,<0.7.0 | |
| langchain-core>=1.0.0,<2.0.0 | |
| langchain-openai>=0.3.0 | |
| langchain-ollama>=0.3.0 | |
| # RAG infra | |
| chromadb>=0.5.0 | |
| rank-bm25>=0.2.2 | |
| sentence-transformers>=5.0.0 | |
| # Document processing | |
| pymupdf>=1.27.0 | |
| pdfplumber>=0.11.0 | |
| python-docx>=1.1.0 | |
| pytesseract>=0.3.10 | |
| Pillow>=10.0.0 | |
| # UI | |
| streamlit>=1.40.0 | |
| nest-asyncio>=1.6.0 | |
| # Settings + dataclasses | |
| pydantic>=2.0.0,<3.0.0 | |
| pydantic-settings>=2.0.0 | |
| python-dotenv>=1.0.0 | |
| # Reliability | |
| tenacity>=9.0.0 | |
| # Test data generation | |
| faker>=24.0.0 | |
| # LangSmith (optional, env-bound) | |
| langsmith>=0.2.0 | |
| # Testing | |
| pytest>=8.0.0 | |
| pytest-asyncio>=0.24.0 | |