feat: accept sampling overlay on chat() and per-source extra_body

Priority is structured injection > per-call overlay > per-source config,
and extra_body now takes part in the cache fingerprint.
This commit is contained in:
2026-07-31 21:17:49 -04:00
parent 152fa264ed
commit 6bb64ca938
4 changed files with 167 additions and 5 deletions
@@ -294,6 +294,9 @@ class OpenAICompatTransport:
payload.update(profile.thinking_on)
elif source.enable_thinking is False:
payload.update(profile.thinking_off)
# 顺序即优先级(issue #4 设计决策 A): 配置级 extra_body 在前,调用级
# overlay(含结构化注入)在后覆盖之。两行不可调换
payload.update(source.extra_body)
payload.update(overlay)
return payload