首页 › AI Agent实战项目案例库 › 智能客服实战项目 › Agent项目:基于dify平台搭建智能体助手

Agent项目:基于dify平台搭建智能体助手

​

本方案旨在利用 Dify 平台的智能体功能,为电商企业打造一个高度智能化的 AI 客服助手。通过采用先进的智能体技术,能够自主理解和处理复杂客户询问任务,提供个性化和精准的服务响应。​

​

​

📌

​

本方案适合各种规模和复杂度的电商平台,帮助企业显著提升客服效率和响应速度,减少人工参与,降低运营成本。​

通过这套方案,企业可以实现客服流程的全面智能化,提升市场竞争力和客户满意度。​

​

​

一、构建智能体(Agent)AI 电商客服助手​

1.搭建 AI 应用​

创建一个智能体(Agent)AI 电商客服助手。​

​

其不仅可以检索和利用知识库中的信息,还能够进行自主决策和处理复杂任务,这为用户带来了更优质的体验。​

​

创建知识库。​

​

使大模型能够获取专属业务知识,从而提供更精准的回答。若知识库已创建则可跳过本步骤。​

​

​

#qkLWQnPtysmy text { white-space: pre; }#qkLWQnPtysmy .fb0 { stroke: var(--N900-FG, 0.15); }#qkLWQnPtysmy .fb0 {stroke: rgba(31,35,41, 0.15)}#qkLWQnPtysmy .fx0 { stroke-miterlimit: 10; }#qkLWQnPtysmy .fx0 {stroke-miterlimit: 10}#qkLWQnPtysmy .fa1 { fill: rgb(187, 191, 196); }#qkLWQnPtysmy .fa1 {fill: rgb(187, 191, 196)}#qkLWQnPtysmy .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#qkLWQnPtysmy .fx1 {font-style: normal}#qkLWQnPtysmy .fx2 { text-anchor: middle; }#qkLWQnPtysmy .fx2 {text-anchor: middle}#qkLWQnPtysmy .fx3 { dominant-baseline: central; }#qkLWQnPtysmy .fx3 {dominant-baseline: central}#qkLWQnPtysmy .fx4 { stroke: none; }#qkLWQnPtysmy .fx4 {stroke: none}#qkLWQnPtysmy .fc0 { fill: var(--text-caption); }#qkLWQnPtysmy .fc0 {fill: #646a73}#qkLWQnPtysmy .fa2 { fill: var(--text-link-disabled); }#qkLWQnPtysmy .fa2 {fill: rgb(187, 191, 196)}#qkLWQnPtysmy .fa3 { fill: rgb(229, 229, 229); }#qkLWQnPtysmy .fa3 {fill: rgb(229, 229, 229)}#qkLWQnPtysmy .fx5 { font: 700 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#qkLWQnPtysmy .fx5 {font-style: normal}#qkLWQnPtysmy .fx6 { text-anchor: start; }#qkLWQnPtysmy .fx6 {text-anchor: start}#qkLWQnPtysmy .fx7 { dominant-baseline: alphabetic; }#qkLWQnPtysmy .fx7 {dominant-baseline: alphabetic}#qkLWQnPtysmy .fc1 { fill: rgb(31, 35, 41); }#qkLWQnPtysmy .fc1 {fill: rgb(31, 35, 41)}#qkLWQnPtysmy .fx8 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#qkLWQnPtysmy .fx8 {font-style: normal}#qkLWQnPtysmy .fc2 { fill: rgb(88, 88, 88); }#qkLWQnPtysmy .fc2 {fill: rgb(88, 88, 88)}#qkLWQnPtysmy .fc3 { fill: rgb(0, 0, 0); }#qkLWQnPtysmy .fc3 {fill: rgb(0, 0, 0)}#qkLWQnPtysmy .fb1 { fill: var(--N900-FG, 0.15); }#qkLWQnPtysmy .fb1 {fill: rgba(31,35,41, 0.15)}#qkLWQnPtysmy .fb2 { fill: rgb(223, 223, 223); }#qkLWQnPtysmy .fb2 {fill: rgb(223, 223, 223)}#qkLWQnPtysmy .fa4 { fill: var(--bg-body); }#qkLWQnPtysmy .fa4 {fill: #fff}ABC12345项目说明示例值分段设置检索设置选择分段设置。选择索引方式。选择高质量会调用模型供应商的相关嵌入模型,可能会消耗 tokens,请按需选择。选择选择检索类型。通用高质量text-embedding-v2混合检索索引方式Embedding 模型Embedding 模型。说明

​

​

📌

​

单击 Dify 平台顶部知识库,接着单击下方的创建知识库,​

选择数据源为导入已有文本,随后选择本地文件,最后单击下一步。​

设置文本分段与清洗。按如下配置进行设置后,单击保存并处理。未提及配置使用默认值即可。​

在处理并完成页面,单击下方的前往文档,在文档列表页面,待状态显示为可用后,即表示当前文档已处理完成。​

​

​

创建"查询订单信息"自定义工具。​

​

使大模型能够通过工具调用获取实时订单数据。​

​

​

​

📌

​

打开浏览器,进入 Dify 平台。​

单击Dify 系统页面顶部工具,接着单击下方的自定义 > 创建自定义工具。​

在弹出的创建自定义工具面板中,填写如下信息,然后单击保存。未提及配置使用默认值即可。​

​

​

​

​

#namshTNZLSRT text { white-space: pre; }#namshTNZLSRT .fb0 { stroke: var(--N900-FG, 0.15); }#namshTNZLSRT .fb0 {stroke: rgba(31,35,41, 0.15)}#namshTNZLSRT .fx0 { stroke-miterlimit: 10; }#namshTNZLSRT .fx0 {stroke-miterlimit: 10}#namshTNZLSRT .fa1 { fill: rgb(187, 191, 196); }#namshTNZLSRT .fa1 {fill: rgb(187, 191, 196)}#namshTNZLSRT .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#namshTNZLSRT .fx1 {font-style: normal}#namshTNZLSRT .fx2 { text-anchor: middle; }#namshTNZLSRT .fx2 {text-anchor: middle}#namshTNZLSRT .fx3 { dominant-baseline: central; }#namshTNZLSRT .fx3 {dominant-baseline: central}#namshTNZLSRT .fx4 { stroke: none; }#namshTNZLSRT .fx4 {stroke: none}#namshTNZLSRT .fc0 { fill: var(--text-caption); }#namshTNZLSRT .fc0 {fill: #646a73}#namshTNZLSRT .fa2 { fill: var(--text-link-disabled); }#namshTNZLSRT .fa2 {fill: rgb(187, 191, 196)}#namshTNZLSRT .fa3 { fill: rgb(229, 229, 229); }#namshTNZLSRT .fa3 {fill: rgb(229, 229, 229)}#namshTNZLSRT .fx5 { font: 700 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#namshTNZLSRT .fx5 {font-style: normal}#namshTNZLSRT .fx6 { text-anchor: start; }#namshTNZLSRT .fx6 {text-anchor: start}#namshTNZLSRT .fx7 { dominant-baseline: alphabetic; }#namshTNZLSRT .fx7 {dominant-baseline: alphabetic}#namshTNZLSRT .fc1 { fill: rgb(31, 35, 41); }#namshTNZLSRT .fc1 {fill: rgb(31, 35, 41)}#namshTNZLSRT .fx8 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#namshTNZLSRT .fx8 {font-style: normal}#namshTNZLSRT .fc2 { fill: rgb(16, 24, 40); }#namshTNZLSRT .fc2 {fill: rgb(16, 24, 40)}#namshTNZLSRT .fc3 { fill: rgb(0, 0, 0); }#namshTNZLSRT .fc3 {fill: rgb(0, 0, 0)}#namshTNZLSRT .fc4 { fill: rgb(88, 88, 88); }#namshTNZLSRT .fc4 {fill: rgb(88, 88, 88)}#namshTNZLSRT .fb1 { fill: var(--N900-FG, 0.15); }#namshTNZLSRT .fb1 {fill: rgba(31,35,41, 0.15)}#namshTNZLSRT .fb2 { fill: rgb(223, 223, 223); }#namshTNZLSRT .fb2 {fill: rgb(223, 223, 223)}#namshTNZLSRT .fa4 { fill: var(--bg-body); }#namshTNZLSRT .fa4 {fill: #fff}ABC1234项目说明示例值名称鉴权方法鉴权方法。单击API KeyBearer键:值:test123Schema设置工具名称。设置接口的 Schema。设置,在弹出框中进行相关设置。查询订单信息请将以下代码中的 <ECS 公网 IP> 替换为您在“部署 Dify 平台”方案中,部署电商系统的云服务器ECS的公网 IP。鉴权类型:鉴权头部前缀:Authorization本方案提供的电商系统,默认鉴权值为 test123。如需对接自有系统,请以实际鉴权信息为准。重要说明

​

​

​

代码块​

YAML

openapi: "3.0.0"​

info:​

version: 1.0.0​

title: 订单API​

servers:​

- url: http://<ECS 公网 IP>​

paths:​

/order:​

get:​

summary: 获取订单详情信息​

operationId: 查询订单信息​

parameters:​

- name: orderid​

in: query​

required: true​

schema:​

type: string​

description: 订单唯一标识​

responses:​

'200':​

description: 获取成功​

content:​

application/json:​

schema:​

type: object​

properties:​

code:​

type: integer​

data:​

type: object​

security:​

- bearerAuth: []​

components:​

securitySchemes:​

bearerAuth:​

type: http​

scheme: bearer​

​

单击顶部工作室,然后单击创建空白应用。​

​

在弹出的创建空白应用面板中,选择应用类型为 Agent,并设置应用名称,最后单击创建,进入应用编排页面。​

​

设置对话使用的模型。在右侧模型选择下拉框中,选择模型为qwen-max。模型参数保持默认即可,您也可以按需进行调整。​

​

​

​

​

设置提示词。在提示词输入框中填写以下提示词。​

此处的提示词:​

​

代码块​

Python

7. 如果当前需要查询订单信息,则从当前的输入中分析出订单ID(订单ID为一串连续的12位数字,例如:202501011001),然后调用工具“查询订单信息”进行查询,其有一个输入参数为订单ID(orderid)​

​

​

增加的内容是为了提示大模型在需要查询订单时,调用(Function Call)工具“查询订单信息”,以获取订单数据。​

​

​

代码块​

Markdown

你是一名资深电商客服专家,拥有十年以上的电商客服经验。你的任务是通过友好、专业的交流,帮助用户解决他们在购物过程中遇到的问题,提供满意的售后服务。在回答问题时,请遵循以下原则:​

​

1. 亲切的口语化表达:使用自然、亲切的语言,让用户感受到温暖和被重视。例如:​

- "您好!感谢您的咨询,很高兴为您服务。"​

- "没问题,我来帮您看看具体情况。"​

​

2. 关键数据精确:在涉及金额、时间、订单号等关键信息时,务必准确无误。例如:​

- "您的订单号是123456789,总金额为588元。"​

- "预计送达时间为2天后,您可以放心等待。"​

​

​

添加知识库。单击知识库区域右侧的“+添加”,然后选择前面步骤创建的知识库,最后单击添加。​

​

添加自定义工具。单击工具区域右侧的“+添加”按钮。在弹出面板中选择自定义 > 查询订单信息 > 查询订单信息。​

​

调试应用。在右侧调试与预览下的对话框中输入问题,然后单击,即可调试对话效果。​

​

发布应用。单击右上方的发布 > 发布更新,然后单击下方的运行。系统将打开一个新页面,该页面的地址即为应用发布后的访问地址。​

​

测试对话效果。按照页面提示开始对话,体验与 AI 应用对话功能。​

​

​

​

​

2.集成 AI 应用​

2.1网页嵌入​

通过在电商系统的网页中嵌入 Dify 提供的代码,可以实现快速集成,无需额外的开发工作。​

​

📌

​

单击 Dify 平台页面顶部中间的工作室,单击需要集成到电商系统中的目标应用,进入应用编排页面。​

单击右侧发布 > 嵌入网站。在弹出的“嵌入到网站中”的面板中选择第 2 种方式,然后复制代码。​

​

​

​

​

​

​

找到在“部署 Dify 平台”方案中已部署电商系统的目标云服务器ECS,其规格为ecs.e-c1m2.large(2 vCPU 4 GiB)的 ECS。​

​

📌

​

若通过手动部署 Dify 平台:在部署资源阶段所创建的 ECS,即为目标云服务器 ECS。​

若通过一键部署 Dify 平台:在一键部署阶段完成后,单击资源栈详情页面的资源页签,找到资源名称为 EcsInstance 的资源 ID,使用这个资源 ID 作为 ECS 的实例 ID,可以在 ECS 控制台的实例列表中快速定位到目标云服务器 ECS。​

​

​

​

登录目标云服务器ECS。​

​

📌

​

登录ECS管理控制台,在实例页面,找到前面步骤所创建的 ECS 实例。​

在右侧操作列,单击远程连接,并选择通过Workbench远程连接。根据页面提示登录,进入终端页面。具体操作请参见:使用Workbench登录ECS实例。​

​

​

​

执行脚本。将“<上一步骤复制的代码>”替换为前面第一步骤复制的代码,然后在终端页面中执行如下脚本。​

​

代码块​

Bash

sed -i '/<\/html>/{n;:a;N;$!ba;d}' templates/index.html​

​

​

打开浏览器,单击页面右下角即可开始进行对话。​

​

​

​

2.2基于 APIs 开发​

​

📌

Dify 基于“后端即服务”理念为所有应用提供了 API。​

​

为 AI 应用开发者带来了诸多便利。通过这一理念,开发者可以直接在前端应用中获取大型语言模型的强大能力,而无需关注复杂的后端架构和部署过程。​

​

​

​

2.2.1如何使用​

选择一个应用,在应用(Apps)左侧导航中可以找到访问 API(API Access)。​

​

在该页面中你可以查看 Dify 提供的 API 文档,并管理可访问 API 的凭据。​

​

​

​

​

​

​

📌

例如,你是一个咨询公司的开发部分。​

​

你可以基于公司的私有数据库提供 AI 能力给终端用户或开发者,但开发者无法掌握你的数据和 AI 逻辑设计,从而使得服务可以安全、可持续的交付并满足商业目的。​

​

​

​

在最佳实践中,API 密钥应通过后端调用。​

​

而不是直接以明文暴露在前端代码或请求中,这样可以防止你的应用被滥用或攻击。​

​

​

​

📌

可以为一个应用创建多个访问凭据,以实现交付给不同的用户或开发者。​

​

这意味着 API 的使用者虽然使用了应用开发者提供的 AI 能力,但背后的 Promp 工程、知识库和工具能力是经封装的。​

​

​

​

2.2.2文本生成型应用​

​

📌

可用于生成高质量文本的应用。​

​

例如生成文章、摘要、翻译等,通过调用 completion-messages 接口,发送用户输入得到生成文本结果。​

​

​

​

用于生成文本的模型参数和提示词模板取决于开发者在 Dify 提示词编排页的设置。​

可以在应用 -> 访问 API 中找到该应用的 API 文档与范例请求。​

​

例如,创建文本补全信息的 API 的调用示例:​

​

代码块​

SQL

curl --location --request POST 'https://api.dify.ai/v1/completion-messages' \​

--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \​

--header 'Content-Type: application/json' \​

--data-raw '{​

"inputs": {},​

"response_mode": "streaming",​

"user": "abc-123"​

}'​

​

​

​

代码块​

Python

import requests​

import json​

​

url = ​

​

headers = {​

'Authorization': 'Bearer ENTER-YOUR-SECRET-KEY',​

'Content-Type': 'application/json',​

}​

​

data = {​

"inputs": {"text": 'Hello, how are you?'},​

"response_mode": "streaming",​

"user": "abc-123"​

}​

​

response = requests.post(url, headers=headers, data=json.dumps(data))​

​

​

​

2.2.3对话型应用​

​

📌

可用于大部分场景的对话型应用,采用一问一答模式与用户持续对话。​

​

要开始一个对话请调用 chat-messages 接口,每次对话开始都会产生出新的 conversation\_id,通过该conversation\_id 传回接口就可继续保持该会话。​

​

​

​

重要说明: Service API 不共享 WebApp 创建的对话。通过 API 创建的对话与 WebApp 界面中创建的对话是相互隔离的。​

​

​

2.2.4conversation_id 的注意事项:​

​

📌

•

生成 conversation_id:​

​

​

发送对话信息的 chat-messages API的调用:​

​

可以在应用 -> 访问 API 中找到该应用的 API 文档与范例请求。​

​

​

代码块​

SQL

curl --location --request POST 'https://api.dify.ai/v1/chat-messages' \​

--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \​

--header 'Content-Type: application/json' \​

--data-raw '{​

"inputs": {},​

"query": "eh",​

"response_mode": "streaming",​

"conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",​

"user": "abc-123"​

}'​

​

​

​

代码块​

Python

import requests​

import json​

​

​

​

二、搭建复杂业务流程管理的对话流(Chatflow)​

1.搭建 AI 应用​

​

📌

创建一个对话流(Chatflow)AI 电商客服助手。​

​

Chatflow 专注于流程的结构化和引导性,具备强大的流程编排能力,非常适合处理复杂的业务流程和多步骤任务。​

​

​

​

创建知识库。​

​

使大模型能够获取专属业务知识,从而提供更精准的回答。若知识库已创建则可跳过本步骤。​

​

​

​

📌

​

打开浏览器,进入 Dify 平台。​

单击 Dify 平台顶部知识库,接着单击下方的创建知识库,​

选择数据源为导入已有文本,随后选择本地文件,最后单击下一步。​

​

​

​

​

​

​

创建"查询订单信息"自定义工具。​

​

使大模型能够通过工具调用获取实时订单数据。若"查询订单信息"已创建则可跳过本步骤。​

​

​

​

📌

​

打开浏览器,进入 Dify 平台。​

单击Dify 系统页面顶部工具,接着单击下方的自定义 > 创建自定义工具。​

在弹出的创建自定义工具面板中,填写如下信息,然后单击保存。未提及配置使用默认值即可。​

​

​

​

​

​

​

​

代码块​

YAML

​

​

创建"创建退款申请"的自定义工具。​

​

使大模型能够通过工具调用来创建退款申请。​

​

​

​

📌

​

单击Dify 系统页面顶部工具,接着单击下方的自定义 > 创建自定义工具。​

在弹出的创建自定义工具面板中,填写如下信息,然后单击保存。未提及配置使用默认值即可。​

​

​

​

​

​

​

​

代码块​

YAML

openapi: "3.0.0"​

info:​

version: 1.0.0​

title: 退款API​

servers:​

- url: http://<ECS 公网 IP>​

paths:​

/refund:​

post:​

summary: 创建退款申请​

operationId: 创建退款申请​

requestBody:​

required: true​

​

​

2.导入 DSL 创建​

单击 Dify 系统页面顶部工作室。​

​

然后单击导入 DSL 文件,在弹出框中选择 URL,并单击创建。​

​

​

​

​

​

​

​

在编排页面,按以下步骤操作修改节点并为节点配置自定义工具。​

​

设置完成后,页面显示如下:​

​

​

​

调试应用。​

​

单击右上方的预览 ,在预览面板下的对话框中输入问题,然后单击,即可调试对话效果。​

​

​

发布应用。​

​

单击右上方的发布 > 发布更新,然后单击运行。系统将打开一个新页面,该页面的地址即为应用发布后的访问地址。​

​

​

测试对话效果。​

​

按照页面提示开始对话,体验与 AI 应用对话功能。​

​

​

​

​

•

以下问题在通过知识库检索到专属内容后,由大模型进行了推理并作出回复。​

​

​

33%

​

​

•

以下问题在调用“查询订单信息”工具后,由大模型进行了推理并作出回复。​

​

​

33%

​

​

•

以下问题在调用“查询订单信息”和“创建退款申请”工具后,由大模型进行了推理并作出回复。​

​

​

33%

​

​

​