本案例概要
使用的节点
| 节点名称 | 类型 / 能力 | 作用 |
|---|---|---|
| Excel 转 JSON | 文档解析 / 格式转换 | 将上传的 xlsx 转为结构化数据,输出 text(对话列表的 JSON 字符串)及 json。 |
| 将 ROWS 处理为 LIST | 代码节点 | 对 text 做转义处理后 json.loads,得到字典列表 result,供迭代节点遍历。 |
| 迭代 | 循环 | 对 result 中每条对话记录执行内部子流程(提取、情感分析、问题分类、总结、聚合)。 |
| 提取 ID 和 MSG | 代码节点 | 从当前迭代的 row 中取出 msg_id、history_message,输出为 id、msg。 |
| 情感分析 | 大模型 + 结构化输出 | 根据对话内容判断用户情绪等级(非常负向/负向/正常/正向/非常正向),输出 rank 与 reason。 |
| 问题分类 | 大模型 + 结构化输出 | 将对话归类为产品问题、服务问题、体验问题及具体标签(如质量缺陷、响应慢投诉等),输出 product/content/experience 数组。 |
| 聚合分析结果 | 代码节点 | 将问题分类、内容总结、情感分析结果与 msg_id、msg 合并为统一的 result 结构。 |
技术要点
- Workflow 与文件输入:本案例使用 Dify Workflow(非 Chatflow),开始节点配置为接收
input_file(xlsx),用户上传客服对话数据后一次性执行全流程并输出分析列表。 - Excel → JSON → 列表:先通过「Excel 转 JSON」得到
text(含msg_id、history_message的 JSON 字符串),再经代码节点处理转义并解析为字典列表,供迭代使用。 - 迭代内多任务并行:每条对话在迭代内依次经过「提取 ID 和 MSG」→「情感分析」「问题分类」「内容总结」三个大模型节点(可并行)→「聚合分析结果」代码节点,将情感、分类、总结与原始 id/msg 合并为一条分析结果。
- 大模型与结构化输出:情感分析、问题分类均开启结构化输出,情感分析输出
rank、reason,问题分类输出product/content/experience数组,便于下游代码节点稳定解析。 - 代码节点:两处——① 将 ROWS 处理为 LIST:
text转义后json.loads得到result;② 聚合分析结果:将problems、summary、senti_analysis、msg_id、msg组装为单条result,迭代结束后由结束节点汇总为完整列表。
工作流程概览
开始(input_file: xlsx)
↓
Excel 转 JSON → text(对话列表 JSON 字符串)、json
↓
将 ROWS 处理为 LIST(代码:text 转义 + json.loads) → result(字典列表)
↓
迭代(result):对每条 row →
↓
提取 ID 和 MSG(代码) → id, msg
↓
情感分析(大模型:msg) → rank, reason
问题分类(大模型:msg) → product, content, experience
内容总结(大模型:msg) → summary(text)
↓
聚合分析结果(代码) → result{ content, experience, product, msg_id, msg, summary, rank, reason }
↓
结束:输出所有迭代 result 组成的列表