fastapi==0.109.2
psycopg2-binary==2.9.9
uvicorn[standard]==0.27.1
sqlalchemy==2.0.27
alembic==1.13.1
python-jose[cryptography]==3.3.0
bcrypt>=4.0.1
python-multipart==0.0.9
pydantic[email]==2.6.1
pydantic-settings==2.1.0
PyMuPDF==1.23.22
# Thumbnails. It arrives transitively today, which is not a reason to let a
# feature depend on somebody else's dependency tree.
Pillow==12.3.0
chromadb==0.4.24
celery[redis]==5.3.6
redis==5.0.1
fastapi-mail==1.4.1
apscheduler==3.10.4
aiofiles==23.2.1
python-dotenv==1.0.1
# The only HTTP client in the process. Completions, embeddings, model
# discovery and the audio endpoints all POST to the same OpenAI-compatible
# proxy; litellm and then the openai SDK each stood in front of the
# completions half of that, and neither was doing anything this was not.
httpx==0.27.0
boto3==1.34.69
pgvector==0.3.6
openpyxl==3.1.2
authlib==1.3.0
itsdangerous==2.1.2
fpdf2==2.8.1
python-json-logger>=2.0.0
