156 lines
5.3 KiB
Markdown
156 lines
5.3 KiB
Markdown
# 1
|
||
|
||
我想增加一个新skill,用于修复markdown中的引用错误。名字你建议一个。
|
||
|
||
我导出的Deep Research报告转成markdown后,引用全部不正确,需要转换为正确的引用格式。
|
||
同时把引用放到文档底部。
|
||
|
||
比如:`citeturn34view0turn34view3turn20search2turn34view6`
|
||
|
||
在导出元数据里对应的是:
|
||
|
||
```md
|
||
[湖北省卫健委通报](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)
|
||
```
|
||
|
||
希望:
|
||
```md
|
||
正文:删除所有
|
||
文末:保留按案例整理的参考资料链接
|
||
必要位置:加标准脚注,如 [^1]
|
||
```
|
||
|
||
标准 Markdown 可以写成:
|
||
|
||
```md
|
||
武汉早期疫情通报中,官方表述强调“未发现明显人传人现象”。[^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 <path>,优先从独立 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一样。
|
||
|
||
|
||
|
||
|
||
|