# Web Framework
fastapi==0.135.1
uvicorn[standard]==0.34.2
gunicorn==23.0.0
python-multipart==0.0.28
websockets==15.0.1

# Vector Search Support
chromadb==1.5.7
langchain-chroma==1.1.0

# BM25 Search Support
rank-bm25==0.2.2

# LLM & LangChain Dependencies
langchain==1.2.15
langchain-community==0.4.1
langchain-core>=1.2.22,<2.0.0
langchain-huggingface==1.2.1
langchain-openai==1.2.1
langchain-anthropic==1.4.0
langchain-aws==1.4.3
langchain-google-genai==4.2.1
tiktoken==0.9.0
anthropic[vertex]==0.94.0
openai==2.31.0

# AI/ML Model Dependencies
transformers==4.53.0
torch>=2.8.0

# Utilities
python-dotenv==1.2.2
numpy>=1.26.4,<3.0.0
asgiref==3.8.1
requests==2.33.0
PyJWT[crypto]>=2.8.0  # For AWS Cognito and Cloudflare Access JWT validation
redis==5.0.1  # For async LLM request queuing
slowapi==0.1.9  # For rate limiting FastAPI endpoints
psutil==7.2.2  # For memory monitoring and WebSocket management

# Pydantic
pydantic==2.11.4

# Observability - Updated to Phoenix SDK v12.9.0 for annotation export support
arize-phoenix==12.9.0
arize-phoenix-client==1.21.0
arize-phoenix-otel==0.10.3
openinference-instrumentation-langchain==0.1.43
opentelemetry-exporter-otlp==1.34.0
opentelemetry-sdk==1.34.0
httpx>=0.28.1,<1.0.0
pandas>=1.5.0,<3.0.0

# ---
# Additional requirements for create/create_hansard_store.py
# These are needed for standalone execution of the Hansard vector store creation script.
nltk==3.9.4
langchain-text-splitters==1.1.2
tqdm==4.67.1

# Used for converting Livingwithmachines/bert_1890_1900 to a compatible format
sentence-transformers==2.6.1

# ---
# Load Testing Dependencies
# These are needed for load testing with Locust (no auth dependencies needed)
locust==2.20.0
websocket-client==1.7.0
faker==22.0.0
pyyaml==6.0.1

# ---
# Analysis Dependencies
# These are needed for analysis/analyze_darwin_spans.py
matplotlib>=3.7.0,<4.0.0
seaborn>=0.12.0,<0.14.0
