Files
urbanLifeline/urbanLifelineServ/ai/AI模块功能说明.md

52 lines
2.5 KiB
Markdown
Raw Normal View History

2025-12-18 16:48:45 +08:00
# 智能体创建
说明: 本服务只对智能体进行对话的转发不能对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知识库