Skip to content

说话人识别第 5 轮:第三人称呼证据可达性(呼叫-回应旁证)+ 平台先验 - #247

Merged
zj1123581321 merged 3 commits into
mainfrom
card/VideoTranscriptAPI-261015-r5
Oct 15, 2026
Merged

zj1123581321 merged 3 commits into
mainfrom
card/VideoTranscriptAPI-261015-r5

Conversation

@zj1123581321

Copy link
Copy Markdown
Collaborator

说话人识别第 5 轮:第三人称呼证据可达性(呼叫-回应旁证)+ 平台先验

背景

生产重测(Space 1wxWjlzQVwDJQ)发现主持人型角色(64 段发言、只被他人称呼、从不自称)无法获得合规证据:其称呼句 100% 在他人段落(生产探针:383 段仅 6 段含「胖哥」,0 段属本人),name-in-quote+归属判据下可达性趋近于零。codex 咨询(20261015-224416,结论「继续」选 D 收紧版)定案本方案。

改动

  1. 呼叫-回应旁证收集(_collect_call_response_evidence):他人段落含疑似称呼 token(X哥/X姐/老师/@提及 等启发式,不按元数据人名索引——「Adrian Punk」与「胖哥」无字面对应)+ 紧邻下一段恰为本人应答 → 收为该说话人旁证(≤2 条/人、80 字符截断、全局 ≤24 条)。收紧说明:指令字面「3 段窗口内出现本人发言」存在多归属漏洞(呼叫 A 后 B 也发言则旁证双归属),收紧为「窗口内首个发言段恰为本人」(等价于紧邻应答),已获主脑批准。
  2. 旁证渲染与核对:独立「第三人提及旁证」prompt 区(标注实际发言者/段号/时间,不混入本人分组);_verify_candidates 新增旁证通道(dialog_address 专属,quote 逐字命中本说话人旁证条目),候选附带 corroboration meta(source_speaker/segment_index/quote_time)可审计。
  3. 平台先验:PLATFORM_SPEAKER_PRIORS 表(twitter_space:作者常任主持人、专场标题为主讲、称呼与元数据文字可能完全不同);表外平台 prompt 逐字不变(测试锁三种形态)。先验段不进任何引用分区(摘录即 fail-closed 作废)。
  4. SPEAKER_EVIDENCE_RULES_VERSION 3→4(prompt 证据可达性变化属规则变化,旧缓存经指纹自然失效重算)。
  5. 新合成 fixture tests/fixtures/call_response_host/:建模生产形态(主持人开场在场、全程不自称、称呼全在他人段落且紧邻本人应答、作者署名与称呼无字面对应)。

验证

  • Narrow-Verify 100 passed(inferencer 43 + evidence_gate 37 + call_response 20)
  • 全量 pytest 4035 tests / 1 failure(AF_UNIX path too long,base 即红继承环境红)/ 3 skipped
  • TDD 先红(旁证区缺失、错误目标拒绝)+ 改坏转红(gate 归属行)双红验,原文在 report
  • 指纹签名与读侧消费点未动(rules_version 常量 bump 两侧同源)

已知边界

「第三人提及 + 呼叫-回应核对」仍不能证明称呼语义指向(应答可能巧合)——该残余风险沿袭第 5 轮 wont-fix 契约:全部 applied 映射带 corroboration meta 可审计,页面风险提示保留。主审影子轮已 7/5 arbitration_required,本 PR 若再出同族切面按既定终止声明提交仲裁。

zj1123581321 added 3 commits October 15, 2026 23:00
- PLATFORM_SPEAKER_PRIORS 表:表内平台在视频信息区追加先验段(作者常任
  主持人、专场标题为主讲、称呼与元数据文字可能完全不同);表外平台
  prompt 与旧输出逐字一致(测试锁定三种形态零变化)。
- 先验段只进 prompt 展示、不进 build_speaker_quote_sections 任何引用
  分区:从先验文案摘 quote 被 fail-closed 作废(测试锁定)。
- SPEAKER_EVIDENCE_RULES_VERSION 3→4:prompt 证据可达性变化属裁决规则
  变化,旧缓存经指纹自然失效重算。
- build_speaker_inference_user_prompt 加 platform/corroboration_snippets
  keyword 参数(旁证区入口为下一提交接线)。

Agent-Executor: glm-pi
Agent-Model: glm-5.3-flash
Agent-Effort: high
Dispatch-Id: dlg-20261015-144911-e12017
Task-Id: vta-20261015-01
生产形态:主持人不自称、称呼全在他人段落(如「胖哥」),本人采样覆盖不到,
dialog_address 核对必然失败。三件事:

- 采样阶段新增 _collect_call_response_evidence:他人段落含疑似称呼 token
  (启发式白名单,不按元数据人名索引)且紧邻下一段恰为被采样说话人应答
  (「首个应答者必须本人」收紧判据——宽松「窗口内任意位置」会让同一呼叫句
  归属多个说话人,错误目标无法程序化拒绝)→ 收为旁证条目;每说话人 ≤2 条、
  单条 ≤80 字符、全局 ≤24 条;渲染为独立旁证区(标注实际发言者/段号/呼叫
  对象),不混入本人分组。
- _verify_candidates 新增 corroboration_entries 第二通道:dialog_address
  quote 在本人分区核对不过时允许逐字命中本说话人旁证条目;name-in-quote
  判据两通道同样适用;核对通过候选附带 corroboration meta(来源说话人/
  段号/时间)。通道只对 dialog_address 开放,静态行分区核对不变。
- 新合成 fixture call_response_host(生产形态建模:主持人开场即在场不自称、
  称呼句全部出自他人且紧邻本人应答、含错误目标/仅提及/配额边界场景)+
  20 条测试(TDD 先红后绿:旧实现 AssertionError '说话人1' == '说话人1')。

Agent-Executor: glm-pi
Agent-Model: glm-5.3-flash
Agent-Effort: high
Dispatch-Id: dlg-20261015-144911-e12017
Task-Id: vta-20261015-01
Agent-Executor: glm-pi
Agent-Model: glm-5.3-flash
Agent-Effort: high
Dispatch-Id: dlg-20261015-144911-e12017
Task-Id: vta-20261015-01
@github-actions

Copy link
Copy Markdown

Required Gate v2 — 状态面板

当前状态:fail · 要修代码

当前裁决:code_fail / primary_findings

PRIMARY-FINDINGS — 主审发现(2 / 2 条)

severity id location title
major correctness-corroboration-speaker-alias-resolution src/video_transcript_api/llm/core/speaker_inferencer.py:823 新功能只兼容 speaker 这一种字段形态,导致实际支持的别名输入无法生成第三人旁证。对于主持人不自称、只能依赖旁证获得姓名的场景,模型继续得到错误的默认说话人编号,且没有异常或诊断提示,属于静默出错。
major correctness-platform-cache-discrimination src/video_transcript_api/llm/prompts/init.py:975 若缓存实际只按媒体指纹或 media_id 命中,平台先验会被缓存绕过:不同平台请求可能复用另一平台生成的说话人映射,结果错误且不报错。该问题的触发取决于未改动缓存实现是否已包含平台隔离。

PR 累计主审轮(影子):history_unavailable(未估算累计轮数)

历史可能不完整:1 个制品处理失败:URLError;1 个历史重建预算耗尽;1 个GitHub run targeting unavailable: URLError

Gate 历史(v1;来源为持久化 gate_terminal 制品)

Run Attempt Head 状态 PR 累计主审轮(影子) 收件人动作
38765699104 2 18a2019 fail history_unavailable 要修代码

历史行按 run_id + run_attempt 去重并只增不删;删除本评论后可由 gate_terminal 制品重建。

@zj1123581321

Copy link
Copy Markdown
Collaborator Author

Codex finding disposition: correctness-dialog-candidate-name-not-bound-to-quote = wont-fix — 与 PR #245 第 5 轮同 id 同裁决(disposition 评论 6191172850 四点反证仍全部成立:设计级信号/三层程序判据/同族非确定性/全链可审计)。本轮增量(呼叫-回应旁证)正是对该 finding 指出问题(第三人称呼证据不可达)的工程缓解:提及句现在必须通过「呼叫后紧邻本人应答」的程序化指向核对才可 applied,且 corroboration meta 落盘(source_speaker/segment_index/quote_time)。语义指向层维持 wont-fix 边界:进程内不可证,用户已授权按既有契约合并(2026-10-15)。其余 8 条 minor 维持 backlog issue #244。

@zj1123581321
zj1123581321 merged commit b8f0841 into main Oct 15, 2026
15 of 21 checks passed
@zj1123581321
zj1123581321 deleted the card/VideoTranscriptAPI-261015-r5 branch October 15, 2026 16:32
@zj1123581321 zj1123581321 mentioned this pull request Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant