requirements-amd.txt/requirements-nvidia.txt were pulling a multi-GB torch wheel by default even though nothing in synapse/ imports torch, transformers, accelerate, bitsandbytes, or PySide6 - dead weight that made the pip batch fragile (one failed download could take unrelated base deps down with it on a slow connection). Split the unused ML/GUI stack out of requirements-base.txt into a new opt-in requirements-ml.txt, and dropped the torch lines from the AMD/NVIDIA overlays and generator. Also: recreate the venv if it exists but pip is missing, instead of silently reusing a half-built one (ensurepip can fail during venv creation and leave an interpreter with no pip). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
51 lines
989 B
Plaintext
51 lines
989 B
Plaintext
# --- Shared Base (GPU-agnostic) ---
|
|
|
|
# AI Stack (tokenizers/huggingface-hub: faster-whisper deps, not transformers)
|
|
tokenizers
|
|
huggingface-hub
|
|
|
|
# API & Web Infrastructure
|
|
fastapi
|
|
uvicorn
|
|
starlette
|
|
httpx # HTTP client (backend + controlpanel)
|
|
pydantic
|
|
pydantic_core
|
|
anyio
|
|
h11
|
|
httptools
|
|
watchfiles
|
|
websockets
|
|
wsproto
|
|
|
|
# Data, UI & System Tools
|
|
numpy
|
|
scipy
|
|
pandas
|
|
psutil
|
|
tqdm
|
|
rich
|
|
python-dotenv
|
|
PyYAML
|
|
|
|
# Document ingest (RAG): pure-Python text extraction, no native deps
|
|
pypdf
|
|
python-docx
|
|
# Vector search: loadable SQLite extension (prebuilt wheels). Brute-force cosine
|
|
# stays as the fallback when the host Python can't load extensions.
|
|
sqlite-vec
|
|
# Local speech-to-text: CTranslate2-based, no torch, keeps dictation on-device.
|
|
faster-whisper
|
|
# Email client: IMAP read (SMTP send is stdlib). Pure-Python, no native deps.
|
|
imap-tools
|
|
|
|
# Documentation Support
|
|
markdown-it-py
|
|
MarkupSafe
|
|
mdurl
|
|
Pygments
|
|
Jinja2
|
|
|
|
# Testing (bin/check.sh is the release gate; it shells out to pytest)
|
|
pytest
|