# 综合输入去重与动态输出预算(F100/F103) API和CLI为最终综合使用独立JsonModel实例,避免修改全文分析共用模型的可变属性。两者在API仍受同一个全局模型信号量约束,不新增并发额度。纯政策卡片综合、知识/附件/混合综合均使用新实例;全文分析、规划、短文案和中间整理仍使用原模型及其16384输出预留。 ```dotenv ANSWER_MAX_OUTPUT_TOKENS=8192 ANSWER_MIN_OUTPUT_TOKENS=4096 ``` 最大值默认8192,允许1024–16384。最小值默认min(4096,最大值),允许1024至最大值;系统环境优先,非法值拒绝启动。本轮未修改本地.env,下限未配置时使用默认。上下限相同可关闭动态收缩。修改需重启,新请求生效;输出达到上限仍明确失败/降级,不能把截断内容当完整成功。 F103按完整输入大小计算剩余空间:上下文上限−安全余量−输入字节。剩余空间大于等于下限时,实际输出上限取“剩余空间与配置最大值的较小者”,否则保留正常预算并进入既有超长处理。预算与实际max_tokens同步,单次调用通过模型副本隔离,API仍共用原限流器。纯卡片路径同样动态调整,不另增整理流程;联合综合明显超长时继续分批整理。来源修复追加输入后重新计算,不低于下限强行调用;整理后内容缩小可恢复完整输出预算。 例如122306+8192+904超出131072时,实际预留调整为7862即可直接综合,保持904余量。此处仅为保守预算算术,不保证实际模型回答长度或质量,也不表示输入字节等于token数。 ## 无损去重范围 仅处理发给综合模型的独立副本;每一来源条目内的citations、conditions和match_basis移除字段和值完全相同的重复项,known_subject_facts同样按完整对象去重,保留首次顺序。对象key排列不同视作同一个对象,文字、空格、否定、条件状态、原文路径、页码/位置、版本等值必须完全相同才去重。 不合并不同来源,不删相似但不相同内容,不重写answer,不截断任何独有引文或条件。原始来源、候选分析、返回的完整引文及卡片保持原数据;同题QA直接引用路径保持。纯政策和联合综合均应用去重,不增加模型请求。 ## 超长输入兜底与观测 仍使用原UTF-8字节保守预算,没有接入tokenizer,不把字节数叫作实际token。最终综合按独立输出预留判断;仍超限时保留原有有界分批整理。中间整理按其原模型上下文和16384输出预留独立计算预算;来源错误仍仅在原批次有界修正,总调用上限保持,不因更大的最终输入预算让中间整理请求越界。 summary.diagnostics及result_ready.summary_diagnostics新增: | 字段 | 含义 | | --- | --- | | input_bytes_before_dedup | 去重前输入字节计数,含提示与JSON | | input_bytes | 去重后计数,含提示与JSON | | deduplicated_items | 移除的完全重复列表项数量 | | output_token_reserve | 最终综合独立输出预留 | | configured_output_token_reserve | 配置的输出最大预留 | | min_output_token_reserve | 配置的动态收缩下限 | | output_reserve_reduction | 当前最终候选调用相对最大值缩小的预留 | | final_call_input_bytes | 当前最终候选调用输入大小,包含来源修复或整理后的变化;调用前失败时不表示已发送 | | reserved_total | 当前最终候选输入+实际输出预留+安全余量;动态路径不再始终对应最初input_bytes | | reduction_output_token_reserve | 联合综合的中间整理模型预留;仅用于预算,不表示已调用整理 | model_calls、reduction_levels及F097的reduction/synthesis耗时继续反映实际工作。无重复项时去重不节省字节,不能保证每个请求不再整理。原日志示例119470+8192+904=128566,小于131072;这只是按旧输入计算预算,真实新请求的召回和分析内容仍可能变化。 合成验证覆盖去重保留来源/位置/矛盾、输入副本不修改、公开证据不删、重复输入从超限到单次综合、实际max_tokens独立、长独有证据仍整理且各自预算正确、输出截断明确降级。未重放真实用户资料或测线上质量/延迟,需重启后采集前后数据。 F103另覆盖短输入、最大预算边界、超1/330、最低预算边界及明显超长、多来源差异与历史、来源修复、并发隔离和配置。仍使用保守字节口径,没有接入模型tokenizer或改变安全余量;真实长答在下限下的完整性需采样评测。中间整理是分批生成证据笔记,再最终综合,可能增加延迟或遗漏细节,故尽量避免不必要调用但保留超长兜底。