AI 办公自动化(四):Word 文档智能处理 — 从阅读到
AI 办公自动化(四):Word 文档智能处理 : 从阅读到改写,AI 一站式搞定
还在手动写摘要、改风格、提取关键信息?Word 文档处理的全流程,AI 帮你自动完成。
前言
Word 文档处理是办公场景中频率最高、也最容易被忽视效率黑洞的工作。
想想你最近一次处理文档的经历:读一篇 20 页的技术报告,提炼出 200 字的摘要: : 翻了半天;把正式报告改写成公众号推文: : 改了半小时;从合同里提取关键条款: : 逐条找得眼花。
这些操作的共同特点:需要理解文档语义,但不一定需要领域专家。这正是大语言模型擅长的任务。
本期我们实现一个 Word 文档智能处理器,覆盖「读取 → 摘要 → 改写 → 信息提取 → 格式处理 → 自动生成」全流程。
一、整体架构
AI + Word 处理的核心流程分为六个步骤:
第一步,智能读取。使用 python-docx 库读取 .docx 文件,提取段落文本、表格数据、文档结构(标题层级)。
第二步,AI 摘要。将文档内容发送给 DeepSeek API,让 AI 生成三级摘要:一句话摘要、段落摘要、详细摘要。
第三步,风格改写。定义多种目标风格(公众号推文、PPT 大纲、正式报告、邮件摘要),AI 一键转换。
第四步,信息提取。定义提取 schema(标题、作者、关键发现、统计数据、建议等),AI 从非结构化文本中提取结构化 JSON。
第五步,格式处理。批量文本替换、模板填充({{占位符}})、格式统一。
第六步,文档生成。给定主题,AI 自动生成章节大纲和各章节内容,输出完整 .docx 文件。
二、环境准备
确保安装了 python-docx 库:
pip install python-docx
完整依赖见仓库根目录的 requirements.txt。
三、代码实现
3.1 项目结构
04-word-processing/
├── main.py # 主程序,交互式菜单
├── config.py # 配置管理
├── llm_client.py # LLM 统一客户端
├── doc_reader.py # Word 读取器
├── doc_summarizer.py # AI 文档摘要
├── doc_rewriter.py # AI 风格改写
├── doc_extractor.py # 信息提取器
├── doc_formatter.py # 格式处理器
└── doc_generator.py # AI 文档生成器
3.2 文档智能读取
doc_reader.py 是文档处理的入口。除了基本的段落和表格读取,它还提供了结构化提取功能:
from docx import Document
class DocReader:
def load(self, filepath: str):
self.doc = Document(filepath)
return self
def get_paragraphs(self) -> list:
return [p.text for p in self.doc.paragraphs if p.text.strip()]
def get_tables(self) -> list:
tables = []
for table in self.doc.tables:
rows = [[cell.text for cell in row.cells] for row in table.rows]
tables.append(rows)
return tables
def get_full_text(self) -> str:
parts = []
for p in self.doc.paragraphs:
if p.text.strip():
style = p.style.name if p.style else "Normal"
if "Heading" in style:
parts.append(f"## {p.text}")
else:
parts.append(p.text)
return "\n\n".join(parts)
get_structured_content 方法能识别标题层级(Heading 1/2),将文档组织成有层次的 JSON 结构,方便后续处理。
3.3 AI 多级摘要
这是本期最实用的功能。我们将文档内容发送给 AI,让它生成三个层级的摘要。
def summarize(self, text: str) -> dict:
prompt = f"""请为以下文档生成三级摘要,以 JSON 返回:
文档内容:{text[:3000]}
返回格式:
{{
"one_sentence": "一句话摘要(50字以内)",
"brief": "段落摘要(150-200字)",
"detailed": {{
"background": "背景介绍",
"key_points": ["要点1", "要点2"],
"conclusions": "主要结论"
}}
}}"""
return llm.chat_json(prompt, system_prompt="你是文档分析专家")
三个层级的使用场景不同:一句话摘要适合邮件通知和列表展示;段落摘要适合报告扉页和会议前快速浏览;详细摘要是完整的信息压缩。
当文档较长时(超过 3000 字),代码会自动截取前 3000 字进行摘要。实际项目中可以分段摘要再合并。
3.4 AI 风格改写
风格改写是 AI 的强项。我们预定义了五种常见的目标风格:
STYLE_TEMPLATES = {
"wechat_article": "微信公众号推文风格:口语化、段落短、有互动感",
"ppt_outline": "PPT 大纲风格:要点化、每行简短、层级清晰",
"formal_report": "正式报告风格:严谨、数据驱动、结构化",
"email_brief": "邮件摘要风格:简洁、直接、要点突出",
"casual_blog": "博客风格:轻松、个人化、有观点",
}
def rewrite(self, text: str, target_style: str) -> str:
style_desc = STYLE_TEMPLATES.get(target_style, target_style)
prompt = f"""请将以下文本改写为指定风格:
目标风格:{style_desc}
原文:{text}
请直接输出改写后的文本。"""
return llm.chat(prompt, system_prompt="你是专业写手")
使用示例:把一篇技术报告改写为公众号推文:
rewriter = DocRewriter()
article = rewriter.rewrite(report_text, "wechat_article")
AI 会自动把长段落拆短、加入互动句式、调整语气: : 整个过程不到 10 秒。
3.5 结构化信息提取
这是「非结构化→结构化」的关键能力。给定一个提取 schema,AI 能从文档中提取结构化信息。
def extract_standard(self, text: str) -> dict:
return self.extract(text, {
"report_title": "报告标题",
"author": "作者",
"date": "日期",
"key_findings": ["关键发现"],
"statistics": [{"name": "指标名", "value": "数值"}],
"recommendations": ["建议"],
"keywords": ["关键词"],
})
AI 返回的 JSON 可以直接存入数据库,用于构建文档知识库或报表系统。这是 RAG(检索增强生成)应用的基础步骤。
3.6 模板填充和格式处理
doc_formatter.py 提供了三个实用功能:
批量文本替换:将文档中的关键词批量替换为新词。比如把旧产品名换成新产品名,一键完成。
模板填充:创建带 {{占位符}} 的模板文档,然后用数据字典自动填充。
def template_fill(template_path, data):
doc = Document(template_path)
for p in doc.paragraphs:
for key, value in data.items():
placeholder = f"{{{{{key}}}}}"
if placeholder in p.text:
p.text = p.text.replace(placeholder, str(value))
格式统一:批量统一文档的字体大小、行间距、段落格式。
3.7 AI 文档生成
给定一个主题,AI 能生成完整的文档结构和内容:
def generate(self, topic: str) -> str:
sections = self._generate_sections(topic) # AI 生成章节大纲
for section in sections:
content = self._generate_content(topic, section) # AI 生成每节内容
# 写入 docx
生成的文档可以直接作为初稿使用,大幅减少「从零开始」的时间成本。
四、实战演示
运行 main.py 进入交互式菜单:
cd 04-word-processing
python main.py
选择功能:
– 选项 1:读取 Word 文档,展示基本信息
– 选项 2:AI 生成文档摘要
– 选项 3:AI 风格改写(选择目标风格)
– 选项 4:提取结构化信息
– 选项 5:模板填充(创建模板 + 填入数据)
– 选项 6:AI 生成新文档
– 选项 7:运行完整演示
完整演示 python main.py --demo 会执行全流程:创建演示文档 → 读取 → AI 摘要 → AI 改写 → 信息提取。
五、小结
本期我们实现了 Word 文档处理的六大 AI 能力:
文档读取:python-docx 解析 .docx 文件,提取段落、表格、标题层级。结构化读取让后续 AI 处理更精准。
多级摘要:一句话摘要、段落摘要、详细摘要,三个层级覆盖不同使用场景。
风格改写:技术报告 ↔ 公众号推文 ↔ PPT 大纲 ↔ 邮件摘要,五种风格一键转换。
信息提取:从非结构化文本提取结构化 JSON,可直接入库或用于下游分析。
格式处理:批量替换、模板填充、格式统一,减少重复性手工操作。
文档生成:输入主题,AI 自动生成完整的结构化文档。
一个关键的实践建议:对于长文档(超过 5000 字),建议先分段处理再合并结果,这样可以获得更好的 AI 输出质量。
下一期我们将深入邮件自动化: : 场景化撰写、语气调整、智能回复、自动分类,让 AI 帮你处理每天的邮件。
完整代码已上传到 Gitee,欢迎 Star 和 Fork:
https://gitee.com/genesisesNoun/ai-office-tutorial
本教程为「CV技术笔记」公众号 AI 办公自动化实战专题第 4 期。每期代码独立、可运行,循序渐进带你打造自己的 AI 办公助手。
夜雨聆风