5.3 KiB
1
我想增加一个新skill,用于修复markdown中的引用错误。名字你建议一个。
我导出的Deep Research报告转成markdown后,引用全部不正确,需要转换为正确的引用格式。 同时把引用放到文档底部。
比如:citeturn34view0turn34view3turn20search2turn34view6
在导出元数据里对应的是:
[湖北省卫健委通报](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 才能解码。
所以脚本设计应支持两种输入形态:
- report.md + report.metadata.json;
- 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,除非确实存在依赖冲突。
- 你检查一下,为什么看到这个规则,规则哪里不明确还是阅读遗漏
- 现在需要补一下
skills-vault环境相关的文件,比如安装说明之类的 - 现在
.agent/skills是否实装了,没实装需要实装;我使用这个技能,是在VS Code的Copilot下,就像用fix-tilte一样。