必需的非空提取字段可能会导致本地模型自行创建日期或所有者
□ 错误描述
后视法保留了提取器,要求“何时”、“何处”、“谁”和“为什么”作为非绝对线:
什麽: str
当: str # "N/A" 如果未知
何处: str # "N/A" 如果没有
谁: str # "N/A" 如果通用
为什么: str # "N/A" 如果明显" OpenAIStrictSchemaGenerator " 然后标出所需的每个模型属性。 对于更小/局部结构化输出模型,这会产生压力来填补描述字段,即使源没有说明一个值. 在一项确定性测试中,模型将附近的项目日期复制成一个无关的事实,即何时'字段,同时保持核心什么'文本的忠实。
这是一个正确性问题:一个被捏造的日期/所有者可以成为持久的记忆并随后采取行动。
□ 环境
- Hindsight:v0.9.2 源修订`ebad478240d3171bb88201ecda5e8d9883d22d'
- 提供商:Ollama 0.32.15
- 型号:`qwen3.5:9b'
- 启用严格结构输出
- 背景:16384
- 温度:0.1
- 种子:42个
□ 最小复制
代表源形状 :
页:1 该项目的目标是从9月14日开始。 外地工作开始前必须完成客户通知。
根据股票计划,提取的事实相当于:
贾森
{
"什么":"客户通知书必须在现场工作开始前完成",.
"时":"前于2026-09-14".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?这一日期没有说明,而是取自附近背景。
仅仅迅速缓解是不够的。 在加强取出任务后,重新运行同一体能/型能/种子,仍然产生同样的捏造日期。
□确认缓解
将四个描述字段改为无效, 同时保留严格的 JSON 输出所需的密钥 :
[Python] 当: str * * * * = 字段( 默认=无, 说明=“日期/时间对此事实作了明确表述;如果没有明确表述,则无效。 绝不要从附近的日期推断出来。 (中文(简体) ). 其中: str QQ None = Field( 默认值为无, 描述值为"Location 明确声明此事实; 否则无效" ). who:str QQ None = Field(默认=无,描述="人民/组织对此事实明确表示;否则无效"). why:str QQ None = Field(默认=无,描述="理由/原因关系"对此事实有明文规定;另作规定无效". ).
严格的计划仍然列出`需要'的每一个财产,但这四个财产成为`string Q' null'。
有了这个计划和其他完全相同的模型 体积、温度、种子和上下文:
贾森
{
"什么":"客户通知书必须在现场工作开始前完成",.
""时":"克""克".
"curred sart":无效,
"curred end":无效
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?没有发明附近的日历日期. 一个完整的三文件测试产生了零被发明的拥有者,日期,状态,最后期限,或因果关系.
□下游相容性
提取解析器已经在实际操作中将这些值视为可选值 :
如:
组合 部件. append (f"当 : { when}")
如果谁:
组合 组件. append( f) “ 涉及 : { who} ”
如果为什么:
. . . . . . .内容来源: vectorize-io/hindsight