【Agent智能体】27智库文档处理节点

📅 2026/7/8 8:21:39
【Agent智能体】27智库文档处理节点
章节二十七智库——文档处理节点一、PDF转Markdown1. 节点作用把非结构化的PDF文档转换成结构清晰的Markdown格式为后续的文本切分和图片理解打基础。2. 实现思路云端算力卸载PDF解析OCR、布局分析非常耗资源所以调用MinerU在线API来处理不占用本地算力。异步轮询机制大文件解析耗时长设计了上传 - 提交 - 轮询 - 下载的异步流程定时查询状态避免超时。完整性保障解析完不仅提取Markdown文本还同步下载关联的图片资源。3. 处理步骤第一步校验路径——从状态中获取PDF路径和输出目录确认文件存在。第二步上传与轮询——调用MinerU API申请上传链接上传PDF提交解析任务循环查询任务状态直到完成。第三步下载与解压——下载生成的ZIP包解压后读取.md文件内容更新到状态中。需要在.env中配置MINERU_API_TOKEN在MinerU官网申请。二、图片处理1. 节点作用实现文档的多模态语义对齐——把图片从本地迁移到对象存储并用AI给每张图片生成文字摘要让图片也能被文本检索到。2. 实现思路图文解耦与持久化把图片从本地文件系统迁移到MinIO对象存储实现计算和存储分离。语义增强用多模态大模型qwen3-vl-flash对每张图片看图说话把视觉信息转成文字摘要写入Markdown图片的Alt文本中。速率控制调用VLM API时实现令牌桶算法限流防止图片太多触发API风控。3. 处理步骤第一步获取内容与路径——从状态中读取Markdown文件路径和内容。第二步图片扫描——用正则表达式扫描Markdown中引用的本地图片校验图片是否存在同时提取图片的上下文前后文。第三步图片摘要——用多模态大模型对每张图片生成中文摘要通过令牌桶算法控制调用频率。第四步上传与替换——清理MinIO中的旧图片目录将图片批量上传到MinIO把Markdown中的本地路径替换为MinIO的HTTP URLAlt文本填入生成的摘要。第五步备份文件——将处理后的内容保存为_new.md文件更新状态中的路径。三、文档切分1. 节点作用将长文档切分成适合向量检索的小片段Chunk在保持语义完整的前提下控制切片长度最大化检索的召回率和准确率。2. 实现思路结构化优先不简单按固定字符数切而是优先按Markdown标题层级分块保持同一知识点的连贯性。递归优化对超长段落采用段落 - 句子的递归切分策略先按换行符切还超长就按句号切避免在句子中间截断。上下文保留每个切片保留file_title和parent_title父级标题为后续LLM回答提供丰富上下文。3. 处理步骤第一步获取输入——从状态中提取Markdown内容、文件标题等进行基础清洗。第二步标题初切——基于Markdown标题语法#进行第一轮粗略切分保留层级结构。第三步无标题兜底——处理没有任何Markdown标题的纯文本文件避免丢失内容。第四步精细化处理——对过长的Chunk用RecursiveCharacterTextSplitter递归切分先按段落再按句子对过短的Chunk合并仅合并同父标题且长度不足阈值的相邻块。第五步打印统计——输出原始行数、最终Chunk数量等统计信息。第六步备份与更新——将切分结果备份到本地JSON文件更新到状态中。名词解释MinerUPDF转Markdown的在线工具支持公式、表格等复杂排版提取。OCR光学字符识别把图片里的文字提取出来变成可编辑文本。多模态同时处理文字、图片等多种类型数据的能力。令牌桶一种限流算法控制API调用频率防止触发风控。Chunk文档切分后的小片段是向量检索的基本单位。RecursiveCharacterTextSplitterLangChain提供的递归文本分割器按分隔符优先级递归切分文本。Alt文本图片的替代文字描述图片无法显示时会展示也用于SEO和辅助检索。