news 2026/7/8 8:27:37

【Agent智能体】26智库导入基础架构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Agent智能体】26智库导入基础架构

章节二十六:智库——导入流程基础架构

一、骨架代码

1. 状态定义

所有导入流程的节点共享同一个状态对象,用来在节点间传递数据。状态中定义了文件路径、文件标题、Markdown内容、切分结果、向量列表、任务ID等字段。

定义方式使用TypedDict,给每个键指定类型,方便IDE提示和类型检查。

2. 节点基类设计

为了避免每个节点都重复写日志、异常捕获等通用代码,设计了一个NodeBase抽象基类:

  • 通用逻辑封装__call__方法统一处理日志记录、任务追踪、异常捕获。
  • 子类约束:强制子类覆盖name属性,实现核心业务方法process
  • 兼容LangGraph:实例化后可直接作为节点加入工作流。

每个具体节点继承NodeBase,只需实现process方法即可。

3. 节点注册

导入流程共有8个节点:

  1. node_entry:入口节点,判断文件类型。
  2. node_pdf_to_md:PDF转Markdown。
  3. node_md_img:图片处理。
  4. node_document_split:文档切分。
  5. node_item_name_recognition:商品名识别。
  6. node_bge_embedding:向量化嵌入。
  7. node_import_milvus:写入Milvus。

开发策略采用"自顶向下"模式:先创建所有节点的骨架(只打印日志),再串联主图验证流程通畅,最后逐一填充节点业务逻辑。

4. 主图编排

主图的工作流程:

  • 入口节点接收文件后,根据文件类型路由:
    • PDF文件走:入口 -> PDF转换 -> 图片处理 -> 文档切分 -> 商品识别 -> 向量化 -> 写入Milvus
    • Markdown文件走:入口 -> 图片处理 -> 文档切分 -> 商品识别 -> 向量化 -> 写入Milvus
    • 其他格式文件直接在入口节点结束

验证时分别测试PDF、Markdown和其他格式文件,确认路由正确。

5. 工作流类封装

将工作流改造成类的形式,提升可维护性:

  • 封装内部逻辑,对外暴露简洁接口。
  • 懒加载编译,首次执行时才触发。
  • 每个实例拥有独立的节点和工作流对象,支持多实例并发。

二、入口节点

1. 功能说明

入口节点是整个导入流程的第一个节点,负责接收文件并判断类型,决定后续走哪条路线。

核心逻辑:
第一步:从状态中获取local_file_path(文件路径)。
第二步:检查文件后缀是.pdf还是.md
第三步:根据类型设置对应标记——PDF设置is_pdf_read_enabledpdf_path,Markdown设置is_md_read_enabledmd_path
第四步:从文件名中提取file_title,作为后续元数据。

2. 路由分发

主图中通过路由函数读取入口节点设置的标记,决定下一步走哪个节点:

  • 如果is_pdf_read_enabled为True,路由到PDF转换节点。
  • 如果is_md_read_enabled为True,路由到图片处理节点。
  • 其他情况直接结束(END)。

这样不同格式的文件会走不同的处理路径,PDF需要先转换再处理,Markdown则跳过转换直接处理图片。


名词解释

NodeBase:节点抽象基类,封装了日志、异常处理等通用逻辑,子类只需实现业务方法。
骨架代码:只有基本结构没有完整业务逻辑的代码,先搭框架再填内容。
入口节点:工作流的第一个节点,接收输入、判断类型、启动整个流程。
路由分发:根据条件决定下一步走哪个节点的机制,类似if-else分支。
自顶向下:先设计整体框架再实现细节的开发方式,先保证流程走通再填功能。
主体识别:从文档中自动找出核心主题或关键实体,比如产品名称。
向量化:把文字转成数字向量的过程,方便计算机做相似度比较。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 8:26:49

打破游戏限制:QKeyMapper让手柄玩转所有PC游戏的终极方案

打破游戏限制:QKeyMapper让手柄玩转所有PC游戏的终极方案 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠&#xf…

作者头像 李华
网站建设 2026/7/8 8:26:47

STM32与WSEN-ISDS传感器实现工业级运动跟踪

1. 项目背景与硬件选型解析 在工业自动化和机器人控制领域,精确的空间运动感知是实现精准控制的基础。WSEN-ISDS(型号2536030320001)是Wrth Elektronik推出的一款高性能6轴MEMS惯性传感器,集成了三轴加速度计和三轴陀螺仪。这款传…

作者头像 李华
网站建设 2026/7/8 8:26:30

深度解析QR码修复技术:QrazyBox工具完整使用指南

深度解析QR码修复技术:QrazyBox工具完整使用指南 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 在数字信息时代,QR码已成为连接物理世界与数字世界的桥梁,…

作者头像 李华
网站建设 2026/7/8 8:21:14

【Nginx】配置参数和使用案例

【Nginx】配置参数和使用案例【一】反向代理和负载均衡参数【1】重点参数介绍【2】完整模板案例【3】upstream 负载均衡模块参数(1)核心参数(2)四种负载均衡调度算法【4】proxy 反向代理核心参数解析(1)lis…

作者头像 李华