Skill 实战指南八:Word生成 Skill
一、背景
在灰灰君过往的技术工作中,技术建议书 、需求文档、结算材料 等 Word 文档的撰写占据了大量时间。这类文档通常具备两个显著特征:格式高度固定、内容来源多样化(源自 Excel 清单、历史文档或大模型生成)。
虽然直接使用 Python docx 库可以将数据写入文档,但在构建高可用的 AI Skill 时,我们面临着一个核心架构挑战:如何确保数据源与文档模板的解耦?
-
传统直连模式的痛点:如果让 Skill 直接从 Excel 读取数据并写入 Word,一旦数据结构变动或源文件格式微调,整个生成逻辑就会崩溃,且难以调试。
-
“中间态”架构的优势:本章节采用的是一种更稳健的工程化思路——“两阶段生成法”。
-
第一阶段(数据标准化):无论数据来自 Excel 解析还是大模型生成,首先统一输出为一个固定结构的标准 JSON 对象。在这个阶段,完成数据的清洗、层级映射和完整性校验。
-
第二阶段(文档渲染):Word 生成 Skill 不再关心数据来源,它只专注于“消费”这个标准 JSON,将其精准地渲染为带有特定样式、页眉页脚和多级标题的 Word 文档。
这种设计不仅实现了数据与表现的彻底分离,还支持“追加模式”:每次新的功能模块生成时,只需产出对应的 JSON 片段,Skill 即可将其无缝拼接到现有文档结构中。这正是实现从“杂乱数据”到“专业文档”自动化闭环的关键所在。
二、Skill封装
整个封装过程依然很简单,让大模型基于已有的两个py脚本,将其中的word处理部分提取出共通功能,封装为一个word生成skill
主要文件说明:
基于上述场景,封装后的skill目录结构如下:

1. main.py
核心实现文件,包含了Word文档生成技能的所有功能实现。
-
主要功能:
-
初始化Word文档(支持模板和现有文档)
-
支持追加模式,向现有文档添加内容
-
处理多种内容类型(标题、段落、列表、表格、图片)
-
智能标题去重,避免重复生成相同标题
-
自动解析标题级别,支持简化格式
-
保存生成的文档
-
关键方法:
-
generate_document() : 主入口方法,处理文档生成流程
-
_initialize_document() : 初始化文档对象
-
_add_title() : 添加标题,支持自动级别提取
-
_add_paragraph() : 添加段落内容
-
_add_list() : 添加列表内容
-
_add_table() : 添加表格内容
-
_add_image() : 添加图片内容
-
_add_section() : 添加章节内容
-
_title_exists() : 检查标题是否存在
-
_extract_title_level_and_content() : 从标题文本中提取级别和内容
-
使用方式:
-
命令行调用: python main.py(执行测试代码)
-
代码调用:通过导入WordGenerator类使用
-
技能调用:通过manifest.yaml定义的输入参数调用
2. manifest.yaml
技能配置文件,定义了技能的基本信息、依赖项、输入和输出参数。
-
基本信息:
-
技能名称:word_generator
-
版本:1.0.0
-
描述:纯Word文档生成技能,支持模板使用、内容管理、表格生成和图片插入等功能
-
依赖项:
-
python-docx
-
输入参数:
-
template_path : 模板文件路径(可选)
-
output_path : 输出文件路径(必填)
-
data : 文档数据,包含标题、段落、表格、图片等(必填)
-
config : 配置选项,如字体、样式等(可选)
-
append : 是否追加到现有文档,默认为false(可选)
-
输出结果:
-
success : 操作是否成功
-
output_file : 生成的文档文件路径
-
error : 错误信息(如果有)
3. skill.md
技能文档,提供了技能的详细说明、使用方法和注意事项。
-
功能介绍:
-
模板使用:可以基于现有Word模板创建文档
-
内容管理:支持添加标题、段落、列表等内容
-
表格生成:可以创建和填充表格数据
-
图片插入:支持插入图片并添加说明
-
章节管理:可以组织文档结构,添加多级章节
-
追加模式:支持向现有文档追加内容
-
标题去重:自动检查并避免重复生成相同的标题
-
自动级别提取:根据标题编号自动设置正确的标题级别
-
适用场景:
-
技术文档生成
-
需求文档生成
-
业务报告生成
-
自动化文档生成
-
从Excel数据生成Word文档
-
使用方法:
-
详细的输入参数说明
-
输出结果格式说明
-
代码示例(创建简单文档、包含表格和图片的文档、追加内容、标题去重等)
-
技术实现:
-
文档引擎:python-docx
-
内容处理:支持多种内容类型
-
标题处理:自动级别提取和去重
-
追加模式:支持逐步构建文档
-
异常处理:完善的错误捕获和提示
-
安装说明:
-
依赖安装命令:pip install python-docx
-
故障排除:
-
依赖错误:确保已安装所有必要的依赖包
-
文件路径错误:检查文件路径是否正确,确保目录存在
-
数据格式错误:确保输入数据格式符合要求
-
权限错误:确保有写入输出目录的权限
三、效果验证
-
输入如下提示词:
结合word生成skill的实现,输出对应的word文档内容。1、Excel中的一级、二级、三级、四级分别对应word中的二级,三级,四级,五级标题2、二级概述对应标题名称为:概述。三级描述对应标题名称为需求概述。四级信息对应标题名称为功能描述3、使用mermaid生成skill在四级信息下生成子章节时序图并输出对应图片
-
输入Excel内容如下:

-
输出
以
用户生命周期管理功能为例,输出的目录结构如下:
-
用户注册与激活章节的输出内容如下:

从截图上看,输出内容已经符合要求。
四、总结
通过上述示例,可以看到已经按照要求输出了对应文档,基本满足要求。后续会根据几个真实的场景,将之前生成的一系列的skill串联起来,真正展示skill的威力。
夜雨聆风