Passo 1 · uv e o runtime
uv init --app --name assistant --python 3.12 --no-readme --vcs none .
uv add fastapi "uvicorn[standard]" litellm "psycopg[binary,pool]" pgvector numpy httpx pydantic mcp ...
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
RUN uv sync --frozen --no-dev --no-install-project
O Docker no macOS não tem GPU: rode o Ollama nativamente, OLLAMA_URL=http://host.docker.internal:11434.