docs: document the optional call deadline and cancellation settlement
The deadline governs waiting, not the moment a call returns: cleanup still runs in finally, so the return time is the deadline plus the cleanup cost (5-7x the deadline in the measured fixture). An expiry therefore does not mean nothing was produced or nothing was billed. Leaving the key unset keeps 1.3.5 semantics verbatim, which also keeps its two long waits: a pure 429 sequence can still wait for a long time, and a large finite Retry-After is still slept in full because the library deliberately does not clamp the hint with backoff_max_s. - CHANGELOG unreleased section states those three sentences, records the cancellation settlement change (an attempt cancelled after the port started but before the settlement is known keeps its reservation at the source estimate: over-charge rather than refund something the upstream may already have billed; known settlements and unclassified escapes are untouched) and warns that except GatewayUnavailableError does not catch CallDeadlineExceeded - README in four places: the capability table, the exception handling example, the "which exceptions reach the caller" table and the error model section, which now spells out the remaining large-but-finite Retry-After wait - .env.example documents LLM__CALL_DEADLINE_S as commented out - new findings file indexes the red/green evidence, the commands and their exit codes, what was not run and who covers it, and repeats the three residual risks No version bump, no tag, no release: those belong to the release checklist.
This commit is contained in:
@@ -69,6 +69,11 @@ LLM_CIRCUIT_BREAKER_COOLDOWN=60 # 或 LLM__BREAKER__COOLDOWN_S
|
||||
# ── 在几毫秒内死掉且 MAX_ATTEMPTS 一格用不上。wait 不削弱保护(等待期照样
|
||||
# ── 不发请求),只是把最坏墙钟拉长到 BACKPRESSURE__STALL_WINDOW_S ──
|
||||
# LLM__CIRCUIT_OPEN=fail_fast # 熔断开路: fail_fast(默认) | wait
|
||||
# LLM__CALL_DEADLINE_S= # 一次逻辑调用的墙钟硬边界(秒);缺省不设 = 不启用
|
||||
# ── 治理对象是"等待"(退避/配额轮询/熔断冷却/结构化重问/embedding 分批共享一份),
|
||||
# ── 不是单次 HTTP 超时(那是 TIMEOUT_S)。清理仍在 finally 跑完: 返回时刻 = 期限 + 清理耗时,
|
||||
# ── 且到期 ≠ 未产出、≠ 未计费。到期抛 CallDeadlineExceeded(不属四分类、
|
||||
# ── 不属 GatewayUnavailableError 族、无 retry_after_s);非法值(0/负/nan/inf)装配期报错 ──
|
||||
|
||||
# ══ 装配选择(PGW_*)══
|
||||
PGW_LIMITER_BACKEND=memory # memory | redis(redis 需 REDIS_URL;多进程 worker 必须 redis)
|
||||
|
||||
Reference in New Issue
Block a user