7.7 KiB
7.7 KiB
| name | description |
|---|---|
| docx | 创建、读取、编辑、转换、批注、修订和校验 Word 文档,并处理简历优化、专利撰写/审查/答复/布局、签证材料填写和公文写作。提供 Word/PDF/文本资料提取、图片 OCR、模板回填及 Typst 简历 PDF 排版。用户提供 Word 文档或提出上述专业文书需求时使用;独立 PDF 操作、电子表格、Google Docs 或普通代码任务使用对应技能。 |
Word 与专业文书
按需读取专业指南,文件操作统一使用下表中的固定脚本。普通 Word 任务直接进入文件流程;仅咨询内容时回答用户的问题,不额外生成文件。
调用与运行环境
- 用
read_skill_resource读取资料,传skill_name="docx"和完整的根目录相对路径,例如references/resume-writing.md。所有指南中的references/、scripts/、assets/都以本 skill 根目录为基准,不用../,也不把业务指南当成独立 skill 激活。 - 当前机器人通过
execute_skill_script执行固定脚本,传skill_name="docx"、script_path="scripts/create_document.py"和脚本参数。不要执行 shell、临时 Python/JavaScript 代码,或把python3、uv run、系统命令作为脚本参数。 - 只执行下表的入口,不执行目录或以
_开头的内部模块。LibreOffice、Pandoc、Poppler、Typst、ZIP 操作由入口脚本在内部调用。 - 每次检查返回 JSON 的
ok;失败时按error调整参数或报告失败。校验还需status: valid、issue_count: 0。 - 保留用户源文件。最终文档写入
/usr/local/src/word/,缓存、资料与中间文件写入/usr/local/src/word/tmp/<任务名>/,文件参数使用绝对路径。 - 容器依赖在镜像构建时安装,任务中不安装包。需要核对依赖、特定字体或排查字体替换时运行
scripts/inspect_environment.py,参考references/fonts.md。 - 不在回复或文件名中复述带敏感查询参数的完整下载 URL。
专业指南
只读取本次需要的指南,再按其中索引加载细节。
| 用户需求 | 指南 | 内容 |
|---|---|---|
| 简历、CV、职位定制、模板填写、成就梳理 | references/resume-writing.md |
保留模板、内容优化、ATS 检查、STAR 辅导 |
| 权利要求、说明书、技术交底、审查意见、专利布局、FTO | references/patent-writing.md |
撰写、审查、答复、策略;专利生成预设 |
| 签证表格、申请说明信、行程单、邀请函、在职证明 | references/visa-documents.md |
字段核对、资料一致性、支持材料模板 |
| 起诉状、答辩状、法律公告、会议通知、会议纪要 | references/official-documents.md |
文书要素与模板;按适用场景核对格式 |
| Word 详细参数、JSON 结构、高级 XML 操作 | references/word-operations.md |
所有 Word 操作的统一接口 |
| 用户要求 Typst 排版,或从零创建 PDF 简历 | references/typst.md |
固定编译入口、简历模板和 PDF 检查 |
文件流程
- 确定交付物:用户明确要求的格式优先,其次沿用原模板,未指定时按需求选择。Word 交付真实 DOCX;Word 的 PDF 副本用转换脚本。PDF 源资料不保证能恢复成与原版完全一致的可编辑 Word,重建时说明版式差异。
- 读取源资料:远程 Word 先用
download_document.py,其他任务附件用download_attachment.py(上限 25 MiB)。DOC/DOTX 先转换 DOCX。编辑、总结前用inspect_document.py读取正文、表格、章节、页眉脚、批注和修订,并按游标续读。PDF/TXT/MD/HTML 资料用extract_source.py,其参数见下节。 - 按需 OCR:Word 图片或扫描页使用
ocr_document.py,只采用usable_for_summary: true的文字,不覆盖可靠原生文本。PDF 返回needs_ocr: true时,通过可用的pdfskill 对指定页 OCR;不要直接读取二进制文件假定已有正文。 - 组织内容:专业文书按对应指南处理;保留来源、真实事实、用户明确的格式和已有授权。缺失关键事实时询问,不编造姓名、指标、日期、依据或正式签发状态。
- 生成或回填:无模板用
create_document.py;有模板用edit_document.py;批注用add_comment.py。需要保留模板时避免重建整份文件。普通跨 Run 替换保留未修改片段样式;替换后检查分页与内容溢出。 - 处理修订:依据用户已经明确的意图保留或接受原修订,未明确才询问。仅文本替换需要显示修订时,可使用
edit_document.py --track-changes --author <作者>;其范围与限制见操作指南,不把结构或样式修改伪装为修订。 - 校验与渲染:创建/修改 DOCX 后运行
validate_document.py --check-convert,再用render_document.py渲染全部页面并逐页检查;按next_page继续到has_more: false。检查修订、批注、页眉脚、表格、图片、目录、乱码和空白页。Typst 产物按对应指南检查 PDF。 - 交付:核对用户要求和承诺的内容已覆盖,适用的来源放入文档并在关键数据旁标注;模板不允许新增来源章节时另附来源说明。用户要求向当前微信会话交付文件时,激活可用的
send-fileskill 发送最终文件;未授权发送时只报告已生成的文件。没有对应交付工具时如实说明,不调用不存在的通知或画布工具。
可执行脚本
| 脚本 | 用途 |
|---|---|
scripts/inspect_environment.py |
检查依赖与精确字体家族;--font 可重复传入 |
scripts/download_document.py |
安全下载并校验 HTTPS Word 文件 |
scripts/download_attachment.py |
下载任务附件,限制 25 MiB |
scripts/inspect_document.py |
分段读取 Word 正文、表格、样式、批注、修订 |
scripts/extract_source.py |
分页读取 PDF 及 TXT/MD/HTML 支持资料 |
scripts/ocr_document.py |
提取 Word 图片/扫描页中的可靠文字 |
scripts/create_document.py |
JSON 创建 DOCX;--preset patent 生成专利文档 |
scripts/edit_document.py |
模板回填、替换、插入删除、调整页面;可记录文本替换修订 |
scripts/add_comment.py |
为精确文本范围添加批注 |
scripts/accept_changes.py |
接受全部已有修订并保留原文件 |
scripts/convert_document.py |
Word 格式转换及 PDF/Markdown/文本导出 |
scripts/unpack_document.py |
安全解包,仅用于常规接口不能完成的 XML 编辑 |
scripts/pack_document.py |
安全打包 OOXML 目录 |
scripts/validate_document.py |
检查 ZIP、XML、关系、批注、修订元数据与可渲染性 |
scripts/render_document.py |
分批生成 Word 逐页 PNG/PDF |
scripts/compile_typst.py |
编译任务内 Typst 源文件,或使用内置简历模板生成 PDF |
支持资料提取
调用 scripts/extract_source.py,例如:
--input '/usr/local/src/word/tmp/<任务名>/resume.pdf' --page 1
- 输入支持 PDF/TXT/MD/HTML/HTM,最大 25 MiB。Word 使用
inspect_document.py,旧格式先转换。 - PDF 每次读取一页;
--columns auto|1|2控制单/双栏,默认保守检测中央栏间距。表格从正文中排除后另列,避免重复。复杂跨栏布局须按原页核对阅读顺序;精细表格单元格提取可使用pdfskill。 --max-chars为 256–12000,默认 12000;has_more: true时把next_page作为--page,next_offset作为--start-offset继续。TXT/MD/HTML 使用逻辑页 1 和字符偏移续读。usable_for_summary: false的文本不能作为可靠事实;扫描或乱码 PDF 的needs_ocr: true表示需对该页补 OCR。has_images本身不是执行 OCR 的理由。