对话系统负责管理用户与 Dify 中 AI 应用程序之间的对话交互。该系统处理从发起、消息交换、反馈收集到对话管理的全生命周期。它支持多种应用模式,包括聊天应用、补全应用和基于工作流的应用。
有关对话中可触发的工作流执行系统,请参阅 工作流引擎。有关用户界面组件的详细信息,请参阅 聊天和对话界面。
对话系统围绕几个关键数据库模型构建,这些模型代表了对话数据结构。
Conversation 模型作为对话交互的主要容器。
来源: api/models/model.py614-874
消息在对话中有几个关联组件以增强功能。
来源: api/models/model.py1121-1400
当用户首次与应用程序交互时,会创建对话。系统根据应用程序类型确定对话模式。
来源: web/app/components/base/chat/chat/hooks.ts47-176 api/models/model.py614-720
消息处理流程处理从用户输入到 AI 响应的流程。
来源: web/app/components/base/chat/chat/hooks.ts212-410 web/app/components/base/chat/chat/chat-input-area/index.tsx86-108
聊天界面采用模块化组件架构构建。
来源: web/app/components/base/chat/chat/index.tsx78-346 web/app/components/base/chat/chat/answer/index.tsx40-237
聊天系统使用基于树的数据结构来管理对话分支和消息线程。
来源: web/app/components/base/chat/utils.ts1-150 web/app/components/base/chat/chat/hooks.ts72-106
系统提供全面的对话管理功能。
来源: web/app/components/base/chat/chat-with-history/hooks.tsx186-250 models/web.py1-50
用户可以对 AI 响应提供反馈和标注。
来源: api/models/model.py1252-1310 web/app/components/base/chat/chat/answer/operation.tsx1-200
对话系统支持不同应用模式,功能各异。
| 应用模式 | 对话功能 | 特殊功能 |
|---|---|---|
聊天 | 标准聊天界面 | 开场白,建议性提问 |
补全 | 单轮补全 | 输入表单,文件上传 |
高级聊天 | 工作流增强聊天 | 工作流进程显示,调试信息 |
代理聊天 | 工具驱动的对话 | 代理思考,工具调用 |
工作流 | 工作流执行跟踪 | 节点执行状态,进程可视化 |
来源: api/models/model.py48-68 web/app/components/base/chat/chat-with-history/chat-wrapper.tsx52-64
高级聊天和工作流应用将对话管理与工作流执行集成。
来源: core/workflow/workflow_cycle_manager.py40-200 api/models/workflow.py380-533
对话系统实施严格的租户隔离。
来源: api/models/model.py622-824 api/models/account.py83-189
系统包含全面的数据清理功能。