# Mistral Small 4 (official NVFP4) on ana-ml2 GPU 0 — copy to .env on the host.
# Real .env lives on ana-ml2 at /opt/docker/compose/mistral-small-4/.env (gitignored).
#
# See compose.yaml header for the NVFP4/TP=1/MLA rationale and the vLLM>=0.20 floor.

# PINNED to v0.22.0 — the last release BEFORE the Mistral multimodal regression
# (#44911, MistralCommonImageProcessor.fetch_images, landed ~0.22.1; 0.23.0 is
# affected). v0.22.0 loads the NVFP4 (compressed-tensors) AND serves VISION —
# verified: half-blue/half-red image read correctly ("left blue, right red").
# This gives a working vision tower as the abliteration/tuning baseline. Do NOT
# bump to 0.23.0 (breaks vision). reasoning_effort works (none/high only) but
# reasoning_content-splitting is unreliable on this version — vision is the
# priority. Revisit when vLLM patches the Mistral mm path on a newer release.
MISTRAL_IMAGE=vllm/vllm-openai:v0.22.0

MISTRAL_CONTAINER_NAME=vllm-mistral4
MISTRAL_MODEL=mistralai/Mistral-Small-4-119B-2603-NVFP4
MISTRAL_PORT=8010

# GPU 0 = the free 96 GB Blackwell card, dedicated single-tenant to this model
# (74.4 GB weights leave no room to co-tenant). GPU 1 holds qwen36 + granite +
# the embed/rerank/reward trio.
MISTRAL_GPU_ID=0

# util 0.93 (~89 GB budget) — measured 66.1 GiB weights + 0.8 GiB graph + ~18.5 GiB
# KV. MLA keeps KV compressed, so the FULL native 256K context fits (verified).
MISTRAL_GPU_MEM_UTIL=0.93
# 262144 = native 256K (for novel-length consistency-checking). The KV pool is
# util-bound (~862K tokens) regardless of max-len, so 256K costs no extra VRAM —
# it just lets one request use up to 256K (→ max concurrency 3.29x at full length).
MISTRAL_MAX_MODEL_LEN=262144
# 32 (halved from 64 when going to 256K): the warmup transient scales with
# max-num-seqs × max-model-len, so halving seqs while doubling len keeps it flat
# and fits the tight card. 32 is ample — this is a low-concurrency creative model.
MISTRAL_MAX_NUM_SEQS=32

# Optional — model is ungated (Apache-2.0), no token needed.
HF_TOKEN=
API_KEY=
