Files
urbanLifeline/urbanLifelineServ/ai/AI模块功能说明.md
2025-12-18 16:48:45 +08:00

2.5 KiB
Raw Permalink Blame History

智能体创建

说明: 本服务只对智能体进行对话的转发不能对dify智能体进行修改

  1. 智能体创建用户上传tb_agent需要的字段进行智能体创建

智能体更新

  1. 更新数据库和redis缓存
  2. 注意加锁,避免并发时,其他线程用了错误数据

智能体删除

软删除本服务的智能体数据

智能体对话

  1. 校验智能体是否可以用
  2. 用户会先对1个智能体创建一个会话
  3. 用户先发起对话预处理请求传入会话携带的对象数据到redis中产生一个临时的消息id
  4. 真正发起对话数据请求时会传入3个必须参数1智能体id2会话id3本次消息id
  5. 优先从redis缓存中获取agentid对应的agent配置没有找数据库。这里要进行双检加锁避免智能体修改、重复加载等问题
  6. 从redis中获取消息id真正的数据包含各种数据对象和fileid等等内容
  7. 和dify构建sse流式对话并回应前端的sse流式对话。 不要乱生成无用的data事件直接返回dify的事件和数据
  8. 前端会自动处理dify的事件

对话评价

  1. 用户对对话进行评价评价会存储到tb_chat_message的comment字段中
  2. 调用dify代理服务更新dify智能体本消息的评价

知识库创建

  1. 用户上传tb_knowledge需要的字段进行知识库创建

知识库文件上传

  1. 用户上传文件到本服务存储到文件表和minio中并生成version版本
  2. 上传文件到dify知识库dify返回上传成功后插入tb_knowledge_file表并更新version版本否则提示用户

知识库更新文件

  1. 用户上传文件到本服务并生成version版本存储到文件表和minio中
  2. 上传文件到dify知识库dify返回上传成功后插入tb_knowledge_file表并更新version版本否则提示用户
  3. 删除dify旧的version的文件document来控制版本
  4. 本服务中旧的文件对象不会删除本条新的file对象会有file_root_id指向原始第一个file对象的file_id用来进行版本展示但dify知识库实际只有1个最新的文件

知识库删除文件

  1. 软删除本服务服务中tb_knowledge_file的该文件所有版本
  2. 真删除dify本文件

知识库创建、更新、删除文件分段

  1. 直接调用dify代理服务实现不存储到本服务也不生成新的version版本

知识库删除

  1. 软删除本服务服务中tb_knowledge的该知识库
  2. 真删除dify知识库