今天我们完成另一个实用的功能,突破大模型上传附件大小限制,完成大文件的阅读和总结。
背景说明
大模型的附件上传,一般不会超过100M,如果想利用大模型的强项、对于一本体积大的电子书进行快速的阅读和总结,以了解其主要内容,则需要一些特殊处理。
本次MCP实现的主要功能包括:
1、对电子书按页面进行拆分和读取
2、支持主流的pdf、word、epub、chm、txt、mobi等格式
3、支持图像识别,用以电子书中的图片内容处理
4、对分块之后的电子书进行阅读总结并输出,当然大模型默认支持翻译
5、最终整合为一个整体阅读总结,并以html格式美化输出
老规矩,先看最终效果。
以“Foundation_of_LLMs.pdf”为例,全书分为6个章节,最终的效果如下:
当然总结的内容比较简单,主要是为了验证功能,如果希望得到更好的总结结果,需要调优Agent的Prompt。
转换为HTML之后的展示效果截图
原书目录索引截图
MCP+Agent+大模型的核心是,要分清楚各自的职能,哪些MCP实现、哪些Agent实现、哪些大模型实现。
MCP的原理,以及如何从零开发一个MCP Server和Client的教程详见上一篇文章,以下只介绍本次实现
以下是详细的实现过程
一、需求拆解和程序设计
1、大模型能干什么:对内容进行翻译、总结和输出
2、需要MCP干什么:根据不同格式、按页码读取文件内容,并输出
3、需要Agent干什么:串整个流程,根据需要调用不同的MCP tools或者大模型,完成不同任务,比如调用mcp完成文件拆分、调用大模型完成内容翻译和总结、调用mcp完成内容存储等。
4、功能要求:
1)能对电子书进行按块阅读,比如按章节进行拆分、按页面进行拆分等
2)支持主流的各种电子书格式
3)要将最终结果进行汇总并美化输出
5、工程设计:
1)新建mcp-server-readbooks的mcp server完成mcp的功能
2)新建mcp-client完成mcp-server的测试
3)在host中新建mcp和agent完成整体任务
4)在大模型聊天时调用mcp和agent,then have fun!
二、MCP的实现
1、工程目录如下:
mcp-server-readbooks/├── src/│ ├── core/│ │ ├── __init__.py│ │ ├── ebook_parser.py # 主解析逻辑│ │ ├── ocr_engine.py # OCR处理│ │ └── cache_manager.py # 缓存管理│ ├── utils/│ │ ├── __init__.py│ │ └── file_convert.py # 文件格式转换│ └── readbooks——server.py # 服务入口├── tests/│ ├── test_parser.py # 单元测试│ └── test_server.py # 集成测试├── .env # 环境配置├── requirements.txt # 依赖管理├── config.yaml # 运行配置└── README.md # 文档说明
2、依赖的python包
fastmcp>=2.0.0pymupdf>=1.24.0python-docx>=0.8.11pychm>=0.8.6mobi>=0.3.0pytesseract>=0.3.10docx2pdf>=0.1.8python-dotenv>=1.0.0uv>=1.0.0Pillow>=10.0.0
3、readbooks_server.py是mcp server的核心代码
使用FastMCP.tools()注解完成工具代码的生成
同时支持sse和stdio模式(推荐,因为电子书都在本地)
4、ebook_parser.py解析并读取电子书的核心代码
调用fitz(公认的处理pdf最快的包)、mobi、chm等包完成相应格式的电子书的
针对需要orc的部分,调用orc程序进行内容识别
5、orc_engine.py解析并处理图像识别核心代码
调用pytesseract完成图像识别
6、file_convert.py完成word转pdf,剩下的交给pdf
7、cache_manager.py,缓存处理
三、MCP的配置(以Trae为例)
第二步的Client测试验证通过之后再进行,否则调试起来很麻烦,因为没有日志!都不知道哪里出错!
Host工具的选择:Trae(推荐)、CherryStudio、VS tools、coze都行。
1、以Trae为例,打开MCP界面
2、选择新建->手工新建,配置如下:
参数一定要根据实际情况修改:
command:python的路径
ags:mcp server的路径
PYTHONPATH:指向mcp server的路径
TRANSPORT_MODE: 默认stdio
{ "mcpServers": { "mcp_server_readbooks": { "command": "E:/envs/llm_learn/python", "args": [ "d:/Server/mcp-server-readbooks/src/readbooks_server.py" ], "env": { "PYTHONPATH": "d:/Server/mcp-server-readbooks/src", "TRANSPORT_MODE": "stdio", "PYTHONIOENCODING": "utf-8" } } } }
四、Agent的配置(以Trae为例)
Trae里的Agent可以串联调用一系列的mcp server和llm等完成特定任务,有点儿类似coze的工作流,但只不过是通过prompt来完成。
由于大模型的不确定性,所以prompt的好坏,则决定了完成任务的质量。
由于他不能像coze一样有明确的先后顺序,总是跳跃,导致有些步骤执行失败。
本次使用的Agent,前前后后调试了得有几十次!!!
本次Agent的设计:
1、根据用户输入的“本地电子书”附件,获取文件名,创建【文件名】子目录
2、调用电子书阅读工具,获取“目录”页,得到每章节的索引并保存到本地
3、按每个章节读取内容,并传递给大模型进行翻译、总结
4、将每章翻译总结的内容保存到本地
5、最后合并成一个文件,并输出为html
具体实现:
打开trae的Agent界面新建Agent
- 输入名字
- promots - 核心中的核心
- 把刚新建的mcp包含在内 - 别忘了
五、聊天中调用Agent,验证实际效果**(以Trae为例)**
在trae中打开聊天窗口,选中刚才建立的Agent,在聊天窗口拖入需要处理的电子书,剩下的就交给电脑吧。
注意:trae不支持外部直接上传附件,所以需要把“电子书”放到工程目录中,然后直接拖入聊天框即可。
执行过程截图:
过程文档内容截图
完成啦✅
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。