knowledge-vault/discussions/technology/Codex/4.Skills/修复引用.md

5.3 KiB
Raw Blame History

1

我想增加一个新skill用于修复markdown中的引用错误。名字你建议一个。

我导出的Deep Research报告转成markdown后引用全部不正确需要转换为正确的引用格式。 同时把引用放到文档底部。

比如:citeturn34view0turn34view3turn20search2turn34view6

在导出元数据里对应的是:

[湖北省卫健委通报](https://wjw.hubei.gov.cn/bmdt/dtyw/201912/t20191231_1822343.shtml)
[新华社郑州暴雨报道](https://www.xinhuanet.com/2021-07/20/c_1127676145.htm)
[新华社/News.cn MU5735报道](https://www.news.cn/2022-03/22/c_1128490813.htm)
[新华社唐山打人事件报道](https://www.xinhuanet.com/politics/2022-06/12/c_1128734449.htm)

希望:

正文:删除所有 
文末:保留按案例整理的参考资料链接
必要位置:加标准脚注,如 [^1]

标准 Markdown 可以写成:

武汉早期疫情通报中,官方表述强调“未发现明显人传人现象”。[^1]

[^1]: 湖北省卫健委《武汉市卫健委关于当前我市肺炎疫情的情况通报》2019-12-31。https://wjw.hubei.gov.cn/bmdt/dtyw/201912/t20191231_1822343.shtml

用于测试的文档位置C:\Users\wangq\Documents\Codex\knowledge-vault\sources\deep-research\中国官方媒体研究\中国官方媒体公共危机报道的比较研究.md


对此有什么问题,请提出。

这是它再次的问题:


收到,主逻辑按 turnXXviewY / turnXXsearchY 精确映射,顺序匹配只作为降级 fallback。这个约束会直接写进 Skill 的安全规则

  和脚本行为里。

• 下一个关键问题:导出元数据在什么位置、以什么格式提供?

  我需要确认脚本接口应该支持哪一种主路径:

  1. 元数据就在同一个 Markdown 文件里,比如文末包含 JSON / YAML / HTML 注释块。

  2. 元数据是旁边的独立文件,比如 report.md + report.metadata.json。

  3. 元数据需要从 ChatGPT/Deep Research 导出的完整 JSON 中读取,而 Markdown 只是正文。

  4. 以上都可能,需要脚本支持 --metadata <path>,找不到时再尝试从 Markdown 内嵌块解析。

  我的倾向是第 4 种repair-markdown-citations.py report.md --metadata export.json --in-place同时保留自动探测同  名 .json 的能力。这样长期最稳。

我的问题: 为什么需要元数据?这个元数据是每个文档都不一样,和文末增加的引用有什么区别? 我放到同一个文件里不行么?

我理解的,最后生成脚注,文末增加一个引用的章节不能解决么?


我的理解

修复引用的最终目标,确实是把正文里的 ChatGPT citation token 转换为 Markdown 脚注,并在文末生成“参考资料”章节。

但“文末参考资料”本身不能替代元数据,因为它只提供全局来源列表,不能可靠说明正文中每一个 token 对应哪些 URL。citation token 里的 turn34view0 / turn20search2 只是本次导出内部引用 ID必须依赖本篇报告自己的 metadata / content_references / search_result_groups 才能解码。

所以脚本设计应支持两种输入形态:

  1. report.md + report.metadata.json
  2. report.md 内嵌 metadata 或 citation map。

优先策略是:

  • 如果提供 --metadata ,优先从独立 JSON 读取;
  • 如果没有提供,则尝试从 Markdown 内部的 HTML 注释块或 fenced json 块中读取;
  • 如果仍然找不到元数据,只能降级为: A. 删除 citation token B. 把所有文末来源作为普通参考资料保留; C. 标记“无法恢复逐句脚注映射”,不要假装已经精确修复。

最终输出可以是一个清洗后的 Markdown 文件:

  • 正文中的 被替换为 [^1][^2]
  • 文末生成去重后的 ## 参考资料
  • 可选保留原始 metadata 到隐藏注释块,方便以后重新修复。

我建议这个 Skill 的能力分三级

Level 1无元数据清洗

只能做:

删除乱码 citation token
保留/整理文末已有 URL
提示“无法恢复逐句引用”

这是保底方案。

Level 2有 content_references 元数据

可以做:

把每一个 citation token 精确替换成 Markdown 脚注
生成去重参考资料
保留正文引用位置

这是核心方案。

Level 3有完整 Deep Research 导出 JSON

可以做得更好:

补标题、来源域名、发布日期、snippet
按案例 / 来源类型分组
生成 source map
检查悬空引用、重复引用、断链风险

这才是长期 Skill 的理想状态。

2

我先确认一下用的是skills-vault统一的conda环境么

现在能否对C:\Users\wangq\Documents\Codex\knowledge-vault\sources\deep-research\中国官方媒体研究\中国官方媒体公共危机报道的比较研究.md做个测试?

3

Level 2做不了我也不知道在哪里。现在这个就够我用了。

skills-vault 的 要求里python代码统一使用skills-vault这个conda除非确实存在依赖冲突。

  1. 你检查一下,为什么看到这个规则,规则哪里不明确还是阅读遗漏
  2. 现在需要补一下skills-vault环境相关的文件,比如安装说明之类的
  3. 现在.agent/skills是否实装了没实装需要实装我使用这个技能是在VS Code的Copilot下就像用fix-tilte一样。