AI智能体文档处理实战:用ChatGPT+LangChain构建自动分类、摘要和提取的智能工作流
零基础学习用AI智能体自动分类文档、提取关键信息、生成摘要,配合LangChain实现企业级文档自动化处理流程,含完整代码示例。
没有数据分析经验,但手头有一堆要处理的文件?你是刚入行的运营、行政人员,还是被老板要求快速整理大量资料的助理?2026年做文档处理已经不需要手动复制粘贴了。
利用AI智能体(Agent)和LangChain框架,你可以搭建一个能自动识别文件类型、提取关键信息、生成摘要并分类归档的完整工作流。本文从最实用的三个场景出发,手把手教你从零构建自己的智能文档处理系统。
一、为什么需要智能文档处理工作流
每天收到的PDF报告、Word简历、Excel数据表、图片合同……超过10份以上时,人工分类提取关键字段不仅耗时还容易出错。引入AI智能体后:
- 自动分类:无需提前知道文件类型,让AI判断是合同、简历还是报价单
- 信息提取:自动填写发票日期、金额、供应商等关键字段
- 内容摘要:长篇报告自动生成100字要点摘要
- 智能归档:按类别和时间自动生成文件夹结构
整个流程可以一键启动,效率提升10倍以上。这就是今天我们要实现的目标。
二、环境准备:安装必要的依赖
首先确保你已经安装了Python 3.10+。创建一个项目目录并初始化虚拟环境:
mkdir ai-doc-processor && cd ai-doc-processor
python -m venv venv
source venv/bin/activate
pip install langchain openai python-dotenv tikzplotlib
提示:如果你需要使用本地模型或开源方案,也可以替换为
llama-index框架,配合Ollama本地运行更节省费用。
创建 .env 文件存放 API Key:
OPENROUTER_API_KEY=your_key_here
推荐使用 OpenRouter 聚合多个模型,价格和灵活性最优。你的免费额度可以从 198007.xyz 的模型评测文章中找到最适合的配置方案。
三、第一步:文档分类模块
先让AI判断文件类型。我们用 prompt 模板定义分类规则:
from langchain_core.prompts import ChatPromptTemplate
classification_prompt = ChatPromptTemplate.from_messages([
("system", """你是一个文档分类专家,根据文件内容判断所属类型:
合同类、财务类、技术文档、人力资源、销售资料、市场素材、其他
只输出一个类别名称,不要额外说明。"""),
("human", "文件内容摘要:{summary}")
])
实际使用时,先用简单的文本摘要工具快速读取文件内容(可参考 用AI做CSV数据清洗 中的文本提取思路),再传给分类器。一个简单的文件阅读器加上这个分类prompt,就能自动判断几百份文件的类型。
四、第二步:关键字段提取
分类完成后,针对不同类别提取特定字段。以合同为例,需求可能是「甲方名称、乙方名称、签署日期、有效期、总金额」:
extraction_template = ChatPromptTemplate.from_messages([
("system", """你是一个合同信息提取专家,从下面文本中提取以下字段:
甲方名称、乙方名称、签署日期(YYYY-MM-DD)、有效期(天)、总金额(元)
如果某个字段不存在,返回null。最终以JSON格式输出。"""),
("human", "合同正文:{text}")
])
对于财务报表,则可以提取「项目名称、发生日期、金额、会计科目、备注」等不同组合。这是文档处理的核心价值:把非结构化文字转化为结构化数据。提取出的JSON可以直接存入数据库或Excel,便于后续分析。
这里强烈推荐搭配 duckdblab.org/zh/ 使用——DuckDB是一个嵌入式关系型数据库,支持SQL直接查询JSON字段。提取完的合同信息写入DuckDB后,你可以用SQL写任何自定义统计报表,比如「过去三个月总合同额多少」、「哪个部门支出最多」。这比单纯导出Excel强大得多。
五、第三步:生成摘要和归档
对长文档生成简要摘要是关键步骤。LangChain内置了多种摘要策略:
from langchain.chains import create_summary_chain
summary_chain = create_summary_chain(
llm=your_llm,
prompt=summary_prompt,
verbose=False
)
short_summary = summary_chain.run(document_content)
摘要可以是简短的一句概述(50字以内),也可以是分段式的要点清单(150-300字),根据读者用途选择。最后,将分类结果 + 提取字段 + 摘要 + 原文一起保存到对应文件夹,形成完整的结构化归档体系。
你甚至可以进一步自动化:调用文件操作API,自动创建 /documents/合同/2026-07/ 这样的目录结构,并把文件移动过去,配合命名规则如 合同-甲方-20260728.pdf,实现零手动整理。
六、进阶:串联成完整智能体工作流
单个文件处理逻辑实现后,下一步是用 LangChain Agent 把它编排成一个整体工作流:
- Agent 遍历指定目录下所有文件
- 每个文件自动走「读取→分类→提取→摘要→归档」流水线
- 处理过程中遇到错误自动重试或标记待处理项
- 最后生成一份处理报告,说明成功数和异常列表
这种多步串联正是AI智能体的核心能力——它不是单次对话,而是一个自主完成复杂任务的小系统。你可以把这个工作定时在每天早上8点自动跑一遍,新上传的文档当天就处理完毕,彻底解放你的时间。
七、避坑指南与优化建议
- 大文件分块处理:超过一定长度的文档要分段处理后再拼接结果,避免上下文溢出
- 模板迭代优化:最初的prompt可能提取不准,收集几份样本反馈给模型微调规则
- 本地优先策略:敏感文档可用本地模型(如通过 Ollama 运行的 Llama 3)处理,不上传云端
- 测试先行:先用小样本批量跑通全流程,确认分类和提取准确率达标后再投入正式使用。提取结果如果是 JSON 格式,可以用站内的 JSON 格式化工具 快速检查格式是否正确。
八、总结
本文构建了一个完整的智能文档处理工作链:从文件分类到信息提取再到摘要归档,每一个环节都可以独立优化组合。关键是理解这个框架的可扩展性——你可以根据业务需求增加更多步骤,例如添加「重要度评级」「关联项目匹配」「自动邮件通知」等模块。
记住,文档处理只是起点。同样的智能体框架可以扩展到【客户询盘回复】【竞品报告整理】【会议纪要提炼】等几乎所有重复性文书工作。当你掌握了这套方法,就等于获得了一个永不疲倦的文档助理——这正是AI工具赋能生产力的最佳实践范例。
现在就开始动手吧!在你的第一个项目里跑通这个工作流,然后不断迭代出更适合你团队的版本。