Dify知识库如何实现多轮对话中的情感分析

张开发
2026/5/3 14:16:20 15 分钟阅读
Dify知识库如何实现多轮对话中的情感分析
在 Dify 中要实现“基于知识库的多轮对话情感分析”通常需要将知识库 (RAG)、多轮记忆​ 和情感分析节点​ 结合起来。知识库本身不负责情感分析而是为分析提供上下文依据。以下是几种主流的实现方案从简单到复杂排列 方案一在提示词中直接分析 (最简单)此方法无需额外节点直接在 LLM 的提示词 (Prompt) 中完成情感分析。适用场景快速验证、简单分类如正面/负面/中性、对分析精度要求不高。实现步骤应用类型创建Chatflow应用确保开启“记忆”功能以支持多轮对话。核心配置在LLM节点的System Prompt中同时要求模型扮演两个角色知识问答助手和情感分析师。Prompt 示例text你是一个专业的客服助手同时也是一个情感分析专家。【知识库内容】{{#context#}}【对话历史】{{#conversation#}}请遵循以下要求首先根据【知识库内容】回答用户的问题。然后分析用户【最新问题】的情感将其归类为“正面”、“负面”或“中性”。最后按照以下格式输出知识回答{{此处填写基于知识的回答}}情感分析{{正面/负面/中性}}用户最新问题{{#query#}}优点配置简单一步到位。缺点结果非结构化难以被后续节点如工单创建调用复杂分析任务下效果不稳定。 方案二工作流拆分 (推荐)此方法将“知识问答”和“情感分析”拆分为两个独立步骤结构清晰易于维护。适用场景需要结构化输出如 JSON、需根据情感触发不同流程如转人工、需要记录情感日志。实现步骤应用类型创建Chatflow应用。节点编排开始 (Start)接收用户输入query。知识检索 (Retrieval)连接知识库获取与问题相关的上下文context。知识问答 LLM仅负责回答问题。Prompt 中引用context和query输出变量为knowledge_answer。情感分析 LLM仅负责分析情感。其Input仅引用query可选加上conversation历史。Prompt 要求其以 JSON 格式输出结果输出变量为sentiment_result。模板转换 (Template)将前两步的结果拼接成最终回复。结束 (End)输出最终结果。情感分析 LLM 的 Prompt 示例text你是一个情感分析专家。请分析用户最新的发言并以严格的JSON格式输出不要包含其他任何说明文字。JSON格式如下{emotion: 正面/负面/中性,score: 0.9,keywords: [关键词1, 关键词2]}用户最新发言{{#query#}}优点逻辑清晰结果结构化便于后续处理。缺点节点较多配置稍显繁琐。 方案三基于多轮历史的综合分析此方法不仅分析用户当前发言还结合整个对话历史进行情感判断能更准确地捕捉用户情绪的变化趋势。适用场景长周期客服对话、心理咨询、需要追踪用户情绪变化的场景。实现步骤应用类型创建Chatflow应用并开启多轮记忆。节点编排开始 (Start)接收query。知识检索 (Retrieval)获取知识库上下文如果分析问题也需要背景信息。知识问答 LLM输出knowledge_answer。情感分析 LLM这是关键节点。其输入变量应包含query: 用户当前问题conversation: 完整的对话历史后续节点拼接结果并输出。情感分析 LLM 的 Prompt 示例text你是一个情感分析专家。请结合【对话历史】和【用户最新发言】综合分析用户当前的整体情绪状态。请以JSON格式输出。【对话历史】{{#conversation#}}【用户最新发言】{{#query#}}JSON格式{overall_sentiment: 正面/负面/中性,trend: 情绪正在好转/情绪正在恶化/情绪稳定,reason: 分析理由}优点能理解情绪的演变分析更精准、人性化。缺点消耗更多 Token对模型的理解能力要求更高。 方案四利用外部工具/API如果 Dify 内置模型的分析效果不满足要求可以调用专业的第三方情感分析 API。适用场景对情感分析精度有极高要求、已有成熟的外部 NLP 服务。实现步骤准备 API确保你拥有一个可通过 HTTP 请求访问的情感分析 API。节点编排开始 (Start)接收query。HTTP 请求节点向外部 API 发送 POST 请求Body中包含用户的query。代码节点 (可选)解析 API 返回的 JSON 数据提取情感标签、置信度等信息。知识问答 LLM根据原始query和知识库生成回答。模板/LLM 节点将知识回答和情感分析结果组合成最终输出。优点可利用最专业的模型分析能力强。缺点依赖外部服务增加系统复杂度和延迟。 核心要点总结知识库的角色提供事实依据不直接参与情感计算。情感分析的对象是“用户对话文本”。多轮对话的实现通过Chatflow类型应用和开启“记忆”功能来自动维护conversation变量。情感分析的实现本质上是通过精心设计的Prompt引导 LLM 或外部 API 对文本进行分析。结构化的关键使用“方案二”或“方案四”将情感分析结果以 JSON 等结构化格式输出便于后续流程判断和记录。

更多文章