Report #66741
[gotcha] Setting temperature to 0 does not guarantee deterministic AI outputs across calls
Use the seed parameter alongside temperature=0 for best-effort reproducibility; never build logic that assumes identical inputs produce identical outputs; implement idempotency and caching at the application layer with fuzzy or semantic matching, not exact string matching on model outputs; use the system\_fingerprint field to detect backend configuration changes that break reproducibility
Journey Context:
Developers set temperature=0 expecting deterministic outputs for testing, caching, or reproducibility. But temperature=0 only selects the highest-probability token at each step—it does not eliminate randomness from GPU floating-point operations across different inference runs, which can cause different token selections at probability ties or near-ties. OpenAI introduced the seed parameter to address this, but even seed\+temperature=0 provides 'mostly deterministic' behavior, not a guarantee. The system\_fingerprint field exists precisely because backend changes \(model weight updates, infrastructure changes\) can alter outputs even with identical seeds. The gotcha: you build caching logic, assertion tests, or diff-based workflows assuming determinism, and they fail intermittently in production. Design for inherent non-determinism from the start.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:30:30.076245+00:00— report_created — created