暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Dify 四种场景简单案例

IT那活儿 2025-08-28
412
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

  
Dify核心概念差异:

明确聊天助手、Agent、Chatflow、工作流四者的区别和适用场景,并通过具体Demo验证。



dify搭建聊天助手

适用场景:
对话型应用可以在客户服务、在线教育、医疗保健、金融服务等领域。这些应用可以帮助组织提高工作效率、减少人工成本和提供更好的用户体验。
1.1 创建
1.2 提示词
角色设定:你是一名{{name}}专家,专精{{name}}的研究,拥有20年学术经验。需以严谨的科学态度回应用户提问,语言需通俗易懂但避免过度简化。
可以自定义变量,在运行时会自动替换{{xxx}}的内容。
询问:


Agent

2.1 创建
2.2 提示词
## 角色设定:天气查询助手
### 技能:
1. 解析用户自然语言中的城市名(如“明天上海需要带伞吗?”→定位“上海”)[7](@ref)
2. 自动补全省份信息(如“广州”补全为“广东省广州市”)[6](@ref)
3. 提供穿衣/出行建议(根据温度、降水概率生成)[4](@ref)

### 交互流程:
1. 用户输入 → 提取城市名 → 调用天气API → 生成结构化报告   
2. 若城市名无效 → 引导用户重新输入(如“未找到该城市,请检查名称或切换城市”)[8](@ref)
3. 支持扩展查询(如“未来三小时降雨预测”)[1](@ref)
2.3 编辑开场白
测试:


工作流

3.1 创建
每个工作流一个开始节点,至少一个结束节点,用于输出完整执行的最终结果。
3.2 具体步骤
这里包含:开始、文档提取器、参数提取器、代码执行、结束。
1)开始
这里选择上传文件。
2)添加文档提取器,对File内容进行提取
3)参数提取,对内容进行构造
4)代码执行,这里选择 Javascript
functionmain({json_str}{

    let jsonString = json_str.replace(/'/g'"');

    const json = JSON.parse(jsonString);

    console.info(json);

    let option = {

        xAxis: {

            type'category',

            data: json[0]

        },

        yAxis:{

            type'value'

        },

        series: [

            {

                data: json[1],

                type'bar',

                showBackground: true,

                backgroundStyle:{

                    color: 'rgba(180, 180, 180, 0.2)'

                }

            }

        ]

    };

    let output = "```echarts\n" + JSON.stringify(option) + "\n```";

    return {result: output}

}

5)最终结束,测试


charflow

4.1 多轮对话流程
客户评价处理的工作流的开始节点定义了productId(商品id)review(客户评价)和默认的sys.user_id(客户id)输入变量。
4.2 问题分类器
再次分类:
增加http请求:
4.3 api 接口内容
http://localhost:8089/customer/handle?userId=1&productId=100&review=非常好,下次还买&type=1
type
type = 1 正面评价
type = 2 售后问题
type = 3 运输问题
type = 其他 其他问题
// CustomerServiceController.java

@RestController

@RequestMapping("/customer")

publicclass CustomerServiceController {



    @GetMapping("/handle")

    publicString handle(

            @RequestParamString userId,

            @RequestParamString productId,

            @RequestParamStringtype,

            @RequestParamString review){

        String message;

        switch (type) {

            case"1":

                // 发送至品牌宣传部邮箱

                message = "已发送至品牌宣传部邮箱";

                break;

            case"2":

                // 发送至售后邮箱

                message = "已发送至售后邮箱";

                break;

            case"3":

                // 发送至运输部邮箱

                message = "已发送至运输部邮箱";

                break;

            default:

                // 发送至默认客户支持邮箱

                message = "已发送至默认客户支持邮箱";

                break;

        }



        return message;

    }

}

4.4 变量聚合
将多路分支的变量聚合为一个变量,以实现下游节点统一配置。
客户评价处理的工作流中4个HTTP请求节点输出的变量(即Java SpringBoot接口返回值)聚合成一个变量在结束节点中输出。
4.5 测试


总结

5.1 聊天助手(Chatbot)
基础对话应用,快速搭建,适合简单问答,无法处理复杂逻辑。
5.2 Agent(智能体)
自主决策,调用工具,处理多步骤任务,适合需要动态规划的场景。
5.3 Chatflow(对话流)
Dify中的一种应用类型,结合多轮对话和工作流,保持上下文,支持交互式调整。
5.4 工作流(Workflow)
固定流程,自动化处理,适合标准化任务,不支持多轮对话。

END


本文作者:周瑞谋(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论