比较两份文档(PDF、Word、图片、PPT),生成结构化差异报告,突出显示变更、新增和删除内容。使用 So...
文档 Diff : Overview. compare 的文档有两个版本, 其结构识别精度很高是一项面向实际任务的技能,主要用于因此, Mark首先将两个文件解析为干净的Markdown, 然后在文本级别生成 diff。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
以结构感知的高精度对比两版文档。 SoMark 首先将两个文件分别解析为规范的 Markdown 格式,再在此基础上进行文本级差异比对。结果可精确指出合同、报告、政策文件或其他任意文档在两个版本之间的具体变更内容。
原始 PDF/Word 二进制文件的直接 diff 毫无语义意义。通过先将两份文档统一解析为干净、结构化的 Markdown,diff 结果反映的是真实的语义变更——即实际新增、删除或修改的内容,而非无关的二进制噪声。
简言之:先用 SoMark 解析两份文档,再对结构化输出结果执行 diff。
示例请求:
重要提示: 开始前,请明确告知用户:SoMark 将首先把两份文档分别解析为规范的 Markdown,从而实现精准的内容级 diff,而非低效且无意义的原始二进制对比。
python document_diff.py -f1-f2 -o --output-formats '["markdown", "json"]' --element-formats '{"image": "url", "formula": "latex", "table": "html", "cs": "image"}' --feature-config '{"enable_text_cross_page": false, "enable_table_cross_page": false, "enable_title_level_recognition": false, "enable_inline_image": true, "enable_table_image": true, "enable_image_understanding": true, "keep_header_footer": false}'
脚本位置: document_diff.py 与本 SKILL.md 文件位于同一目录下
支持格式: .pdf .png .jpg .jpeg .bmp .tiff .webp .heic .heif .gif .doc .docx .ppt .pptx
--output-formats(可选)该参数在当前脚本中为可选项,需传入一个包含一个或多个输出格式的 JSON 数组。
若未指定,则默认值为:
["markdown", "json"]
支持的取值:
| 取值 | 说明 |
|---|---|
markdown |
将解析后的文档保存为 Markdown 文件 |
json |
将解析后的文档保存为 JSON 格式输出 |
示例:
--output-formats '["markdown", "json"]'
--element-formats(可选)该参数控制解析过程中特定元素类型的渲染方式。为确保对比一致性,同一配置将同时应用于两份文档。
若未指定,则默认值为:
{ "image": "url", "formula": "latex", "table": "html", "cs": "image" }
若提供该参数,请传入完整的 JSON 对象。
支持的键名、允许值及默认值:
| 键名 | 允许值 | 默认值 |
|---|---|---|
| image | url, base64, none | url |
| formula | latex, mathml, ascii | latex |
| table | html, image, markdown | html |
| cs | image | image |
示例:
--element-formats '{"image": "base64", "formula": "latex", "table": "html", "cs": "image"}'
--feature-config(可选)该参数用于控制解析器各项功能开关。为保证 diff 准确性,同一功能配置将在两份文档解析前统一启用。
若未指定,则默认值为:
{
"enable_text_cross_page": false,
"enable_table_cross_page": false,
"enable_title_level_recognition": false,
"enable_inline_image": true,
"enable_table_image": true,
"enable_image_understanding": true,
"keep_header_footer": false
}
若提供该参数,请传入完整的 JSON 对象,且所有值必须为布尔类型(true 或 false)。
支持的键名及默认值:
| 键名 | 默认值 | 说明 |
|---|---|---|
enable_text_cross_page |
false |
跨页合并文本内容 |
enable_table_cross_page |
false |
跨页合并表格 |
enable_title_level_recognition |
false |
识别标题与层级结构 |
enable_inline_image |
true |
输出内联图像 |
enable_table_image |
true |
输出表格图像 |
enable_image_understanding |
true |
启用图像理解能力 |
keep_header_footer |
false |
保留页眉与页脚内容 |
示例:
--feature-config '{"enable_text_cross_page": false, "enable_table_cross_page": false, "enable_title_level_recognition": false, "enable_inline_image": true, "enable_table_image": true, "enable_image_understanding": true, "keep_header_footer": false}'
脚本将在指定输出目录中生成以下文件:
diff_report.md —— 统一 diff 报告,含新增/删除/未变更行数统计.md —— 原始文档的解析后 Markdown 文件.md —— 新版文档的解析后 Markdown 文件diff_summary.json —— 元数据(文件路径、耗时等)脚本执行完毕后,请读取 diff_report.md 及两份解析后的 Markdown 文件,并提供一份面向人类读者的摘要说明:
摘要请按如下结构呈现:
## 文档对比结果 ### 变更概览 - 新增:X 行 - 删除:Y 行 - 未变更:Z 行 ### 主要变更内容 [按重要性列出关键变更,引用具体文本] ### 需要关注的变更 [标注可能影响权利义务、金额、日期、条款的变更] ### 未变更的主要部分 [简要说明哪些重要章节保持不变]
若用户尚未配置 API Key,请沿用 somark-document-parser 技能相同的配置流程。
步骤 1: 首先确认是否已配置完成 —— 不得要求用户在聊天窗口中粘贴密钥。
步骤 2: 引导用户访问 https://somark.tech/login 创建密钥,格式为 sk-******。
步骤 3: 提示用户运行以下命令:
export SOMARK_API_KEY=your_key_here
步骤 4: 告知用户可在 https://somark.tech/workbench/purchase 查看免费配额信息。
--output-formats、--element-formats 或 --feature-config 中 JSON 格式无效:提示用户检查并提供合法的 JSON 语法。markdown 和 json。image、formula、table 和 cs 的受支持键名与取值。feature-config 中值类型非法:提示用户所有配置项必须为布尔值(true 或 false)。1107 / API Key 无效:提示用户核查环境变量 SOMARK_API_KEY 是否正确设置。