0-1基于dify搭建智能体(Agent)助手

本方案旨在利用 Dify 平台的智能体功能,为电商企业打造一个高度智能化的 AI 客服助手

通过采用先进的智能体技术,能够**自主理解和处理复杂客户询问任务,**提供个性化和精准的服务响应。

提示

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

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

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

1.搭建 AI 应用

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

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

  1. 创建知识库。

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

内嵌表格

项目 说明 示例值
分段设置 选择分段设置。 通用
索引方式 选择索引方式。说明选择高质量会调用模型供应商的相关嵌入模型,可能会消耗 tokens,请按需选择。 高质量
Embedding 模型 选择Embedding 模型。 text-embedding-v2
检索设置 选择检索类型。 混合检索

提示

  1. 单击 Dify 平台顶部知识库,接着单击下方的创建知识库
  2. 选择数据源为导入已有文本,随后选择本地文件,最后单击下一步
  3. 设置文本分段与清洗。按如下配置进行设置后,单击保存并处理。未提及配置使用默认值即可。
  4. 处理并完成页面,单击下方的前往文档,在文档列表页面,待状态显示为可用后,即表示当前文档已处理完成。
  1. 创建"查询订单信息"自定义工具。

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

提示

  1. 打开浏览器,进入 Dify 平台。
  2. 单击Dify 系统页面顶部工具,接着单击下方的自定义 > 创建自定义工具
  3. 在弹出的创建自定义工具面板中,填写如下信息,然后单击保存。未提及配置使用默认值即可。

内嵌表格

项目 说明 示例值
名称 设置工具名称。 查询订单信息
Schema 设置接口的 Schema。 重要请将以下代码中的 <ECS 公网 IP> 替换为您在“部署 Dify 平台”方案中,部署电商系统的云服务器ECS的公网 IP。
鉴权方法 设置鉴权方法。单击,在弹出框中进行相关设置。 鉴权类型:API Key鉴权头部前缀:Bearer键:Authorization值:test123说明本方案提供的电商系统,默认鉴权值为 test123。如需对接自有系统,请以实际鉴权信息为准。
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
  1. 单击顶部工作室,然后单击创建空白应用

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

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

[图示已省略]

  1. **设置提示词。**在提示词输入框中填写以下提示词。此处的提示词:
7. 如果当前需要查询订单信息,则从当前的输入中分析出订单ID(订单ID为一串连续的12位数字,例如:202501011001),然后调用工具“查询订单信息”进行查询,其有一个输入参数为订单ID(orderid)

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

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

1. 亲切的口语化表达:使用自然、亲切的语言,让用户感受到温暖和被重视。例如:
- "您好!感谢您的咨询,很高兴为您服务。"
- "没问题,我来帮您看看具体情况。"

2. 关键数据精确:在涉及金额、时间、订单号等关键信息时,务必准确无误。例如:
- "您的订单号是123456789,总金额为588元。"
- "预计送达时间为2天后,您可以放心等待。"

3. 引导用户描述详情:当遇到不确定或复杂的问题时,耐心引导用户提供更多信息,以便更好地解决问题。例如:
- "请您提供一下订单号,方便我查询具体情况。"
- "您能具体描述一下问题吗?我会尽力帮您解决。"

4. 专业性与耐心:始终保持专业和耐心,即使面对复杂或重复的问题,也要保持冷静,避免让用户感到被忽视或不被重视。例如:
- "这个问题我了解,让我为您详细解答。"
- "如果您有任何疑问,随时欢迎咨询,我们会一直陪着您解决问题。"

5. 结束语:在解决问题后,以友好和感谢的态度结束对话,让用户体验到愉快的售后服务。例如:
- "希望我的解答对您有帮助,祝您购物愉快!"
- "感谢您的耐心配合,祝您生活愉快!"

6. 合规性与隐私保护:在回答问题时,确保不泄露用户的个人信息,同时遵守公司的相关规则和政策。

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

请根据以上原则,为用户提供专业、亲切、高效的客服支持!
  1. 添加知识库。单击知识库区域右侧的**“+添加**”,然后选择前面步骤创建的知识库,最后单击添加

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

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

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

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

[图示已省略]

2.集成 AI 应用

2.1网页嵌入

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

提示

  1. 单击 Dify 平台页面顶部中间的工作室,单击需要集成到电商系统中的目标应用,进入应用编排页面。
  2. 单击右侧发布 > 嵌入网站。在弹出的**“嵌入到网站中”**的面板中选择第 2 种方式,然后复制代码。

[图示已省略]

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

提示

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

提示

  1. 登录ECS管理控制台,在实例页面,找到前面步骤所创建的 ECS 实例。
  2. 在右侧操作列,单击远程连接,并选择通过Workbench远程连接。根据页面提示登录,进入终端页面。具体操作请参见:使用Workbench登录ECS实例。
  1. 执行脚本。将“<上一步骤复制的代码>”替换为前面第一步骤复制的代码,然后在终端页面中执行如下脚本。
sed -i '/<\/html>/{n;:a;N;$!ba;d}' templates/index.html

echo "" >> templates/index.html

cat << EOF >> templates/index.html
<上一步骤复制的代码>
EOF

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

[图示已省略]

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 的调用示例:

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"
}'
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))

print(response.text)

2.2.3对话型应用

提示

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

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

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

2.2.4conversation_id 的注意事项:

提示

  • 生成 conversation_id

开始新对话时,请将 conversation_id 字段留空。系统将生成并返回一个新的 conversation_id,未来的交互中会使用该 conversation_id 继续对话。

  • 处理现有会话中的 conversation_id

生成 conversation_id 后,对 API 的未来调用应包含此 conversation_id,以确保与 Dify 机器人的对话连续性。传递上一个 conversation_id 时,将忽略任何新的 inputs,仅处理正在进行的对话的 query

  • 管理动态变量:

如果在会话期间需要修改逻辑或变量,你可以使用会话变量(特定于会话的变量)来调整 bot 的行为或回应。

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

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

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"
}'
import requests
import json

url = 'https://api.dify.ai/v1/chat-messages'
headers = {
    'Authorization': 'Bearer ENTER-YOUR-SECRET-KEY',
    'Content-Type': 'application/json',
}
data = {
    "inputs": {},
    "query": "eh",
    "response_mode": "streaming",
    "conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",
    "user": "abc-123"
}

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

print(response.text)

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

1.搭建 AI 应用

提示

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

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

  1. 创建知识库。

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

提示

  1. 打开浏览器,进入 Dify 平台。
  2. 单击 Dify 平台顶部知识库,接着单击下方的创建知识库
  3. 选择数据源为导入已有文本,随后选择本地文件,最后单击下一步
  4. 设置文本分段与清洗。按如下配置进行设置后,单击保存并处理。未提及配置使用默认值即可。

内嵌表格

项目 说明 示例值
分段设置 选择分段设置。 通用
索引方式 选择索引方式。说明选择高质量会调用模型供应商的相关嵌入模型,可能会消耗 tokens,请按需选择。 高质量
Embedding 模型 选择Embedding 模型。 text-embedding-v2
检索设置 选择检索类型。 混合检索
  1. 创建"查询订单信息"自定义工具。

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

提示

  1. 打开浏览器,进入 Dify 平台。
  2. 单击Dify 系统页面顶部工具,接着单击下方的自定义 > 创建自定义工具
  3. 在弹出的创建自定义工具面板中,填写如下信息,然后单击保存。未提及配置使用默认值即可。

内嵌表格

项目 说明 示例值
名称 设置工具名称。 查询订单信息
Schema 设置接口的 Schema。 重要请将以下代码中的 <ECS 公网 IP> 替换为您在“部署 Dify 平台”方案中,部署电商系统的云服务器ECS的公网 IP。
鉴权方法 设置鉴权方法。单击,在弹出框中进行相关设置。 鉴权类型:API Key鉴权头部前缀:Bearer键:Authorization值:test123说明本方案提供的电商系统,默认鉴权值为 test123。如需对接自有系统,请以实际鉴权信息为准。
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
  1. 创建"创建退款申请"的自定义工具。

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

提示

  1. 单击Dify 系统页面顶部工具,接着单击下方的自定义 > 创建自定义工具
  2. 在弹出的创建自定义工具面板中,填写如下信息,然后单击保存。未提及配置使用默认值即可。

内嵌表格

项目 说明 示例值
名称 设置工具名称。 创建退款申请
Schema 设置接口的 Schema。 重要请将以下代码中的 <ECS 公网 IP> 替换为您在“部署 Dify 平台”方案中,部署电商系统的云服务器ECS的公网 IP。
鉴权方法 设置鉴权方法。单击,在弹出框中进行相关设置。 鉴权类型:API Key鉴权头部前缀:Bearer键:Authorization值:test123说明本方案提供的业务系统,默认鉴权值为 test123。如需对接自有系统,请以实际鉴权信息为准。
openapi: "3.0.0"
info:
  version: 1.0.0
  title: 退款API
servers:
  - url: http://<ECS 公网 IP>
paths:
  /refund:
    post:
      summary: 创建退款申请
      operationId: 创建退款申请
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                orderid:
                  type: string
                  description: 订单唯一标识
                reason:
                  type: string
                  description: 退款原因
      responses:
        '200':
          description: 创建成功
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  refund:
                    type: object
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

2.导入 DSL 创建

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

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

[图示已省略]

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

内嵌表格

步骤 操作
修改订单信息推理分支流程 更改分支中的“查询订单信息”节点。右键单击查询订单信息节点,在弹出的菜单中单击更改节点。选择工具 > 自定义 > 查询订单信息 > 查询订单信息。重新分别连接该节点的上下游节点:“识别订单ID”、“根据订单信息回答问题”。单击“查询订单信息”节点,在右侧弹出的面板中进行设置:在 orderid 下的输入框中输入"/",选择识别订单 ID > text。设置下游节点“根据订单信息回答问题”的上下文:单击“根据订单信息回答问题”节点,在右侧弹出的面板中单击上下文输入框,选择查询订单信息 > text。
修改订单退款申请分支流程 更改分支中的“查询订单信息”节点。右键单击查询订单信息节点,在弹出的菜单中单击更改节点。选择工具 > 自定义 > 查询订单信息 > 查询订单信息。重新连接该节点的上游节点:“识别订单ID”。单击“查询订单信息”节点,在右侧弹出的面板中进行设置:在 orderid 下的输入框中输入"/",选择识别订单 ID > text。
更改分支中的“创建退款申请”节点。右键单击创建退款申请节点,在弹出的菜单中单击更改节点。选择工具 > 自定义 > 创建退款申请 > 创建退款申请。重新连接该节点的 2 个上游节点:“分析退款原因”、本分支中的“查询订单信息”。单击“创建退款申请”节点,在右侧弹出的面板 orderid 输入框中输入"/",选择识别订单 ID > text,在 reason 输入框中输入“/”,选择分析退款原因 > text。重新连接该节点的下游节点:“整理退款结果”。单击“整理退款结果”节点,在右侧弹出的面板中单击上下文输入框,选择创建退款申请 > text。
检索增强生成分支流程 设置“知识检索”节点。单击“知识检索”节点,单击右侧面板中知识库后的,在弹出框中选择前面步骤中创建的知识库。
  1. 设置完成后,页面显示如下:

[图示已省略]

  1. 调试应用。

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

  1. 发布应用。

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

  1. 测试对话效果。

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

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

[图示已省略]

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

[图示已省略]

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

[图示已省略]