Dify+ADB Supabase+LLM实现AI客服系统

更新时间:

本文介绍如何使用Dify、云原生数据仓库AnalyticDB PostgreSQLSupabaseLLM构建一个AI客服系统,帮助在线服装店高效处理售后咨询、订单查询和个性化回复。通过结合Dify的工作流能力、Supabase的实时数据存储与LLM的自然语言理解能力,实现快速自动化响应,显著减轻人工客服压力并提升客户满意度。

背景

云原生数据仓库AnalyticDB PostgreSQLSupabase提供强大的数据库功能和实时数据处理能力,高度兼容PostgreSQL向量数据库。Dify是一个开源的LLM应用开发平台,支持快速构建基于RAG架构的智能应用。通过将云原生数据仓库AnalyticDB PostgreSQLSupabaseDify集成,您可以轻松构建高效的AI客服系统,为用户提供实时、精准的服务。

本文以在线服务装店为例,介绍如何构建AI客服系统。该系统可以处理售后咨询、获取订单信息并生成个性化回复,从而减轻人工客服压力,提升响应速度和客户满意度。主要优势如下:

  • 数据驱动的精准回复:AI基于Supabase中真实、结构化的订单和物流数据生成回复,确保信息准确无误。

  • AI理解:AI不仅读取数据,还能分析客户意图和情绪,主动安抚客户。

  • 高效自动化处理:传统客服需手动查系统再打字回复,而Dify+Supabase组合实现了秒级自动化响应,释放人工客服资源以应对更复杂的场景。

前提条件

操作步骤

步骤一:部署Dify

您可以在云端托管或本地部署Dify,本文介绍本地部署Dify的方法。

  1. 依次执行以下命令部署Dify。

    git clone https://github.com/langgenius/dify.git
    cd dify/docker
    cp .env.example .env
    docker compose up -d
  2. 访问http://<IP地址>/install注册用户并登录。IP地址为运行Dify的服务器IP地址。

    image

步骤二:接入大模型

  1. 鼠标悬浮于右上角头像处,单击设置

    image

  2. 单击左侧导航栏的模型供应商,选择并安装模型供应商。本文示例选择通义千问。

  3. 安装完成后,在待配置区域,找到对应模型,并单击设置,输入API Key并保存。

    image

步骤三:配置Supabase

  1. Dify界面安装Supabase插件,作为外部存储或向量存储的一部分。

    1. 单击右上角的插件,然后单击左侧的搜索Marketplace

    2. 搜索supabase,根据提示完成安装。

      image

  2. 授权Dify操作Supabase项目。

    1. 获取Supabase项目的URLservice role key。查询方法请参见获取API Keys

    2. 插件列表中找到已安装的Supabase,单击卡片,并选择API Key授权配置

    3. 在弹出框中配置授权信息,单击保存。

      image

步骤四:准备Supabase测试数据

创建orders表,并插入测试数据。

您可以在Supabase Dashboard页面左侧导航栏单击SQL Editor,复制以下SQL语句并单击Run,快速插入测试数据。

CREATE TABLE IF NOT EXISTS orders (
    order_id TEXT PRIMARY KEY,                       --订单号
    customer_name TEXT NOT NULL,                     --用户姓名
    product_name TEXT NOT NULL,                      --商品名称
    product_size TEXT NOT NULL,                      --商品尺码
    current_status TEXT NOT NULL,                    --物流状态
    last_updated TIMESTAMP WITH TIME ZONE NOT NULL,  --最后一次更新的时间
    estimated_delivery DATE                          --预计送达日期
);

INSERT INTO orders (
    order_id,
    customer_name,
    product_name,
    product_size,
    current_status,
    last_updated,
    estimated_delivery
) VALUES (
    'ORD12345',
    '张***',
    '法式复古蓝色连衣裙',
    'M',
    '已到达【杭州市】分拨中心,等待发往【宁波市】',
    '2025-08-16 14:20:00+08',
    '2025-08-20'
);

步骤五:创建电商客服工作流

  1. Dify界面,单击上方的工作室>Chatflow,然后创建应用。

    image

  2. 按照以下过程配置节点。相关节点的配置操作,请参见workflow

    image

    本示例中问题分类器中配置了三个问题分类,包括“物流”、“颜色”和“尺寸”,您可根据需要添加对应分类。分类器用于识别物流状态查询咨询,提取具体订单号,“物流”分类下的流程节点配置如下:

    节点

    配置信息

    参数提取器

    • 输入变量:sys.query。

    • 提取参数

      • 名称:order_id。

      • 类型:String。

      • 描述:客户的订单号,必须是以 "ORD" 开头的字母数字组合,例如 ORD12345, ORD67890。只提取符合此格式的字符串。

      • 必填:是。

    GET ROWS

    配置此节点,AI助手向Supabase发起API请求,查询物流状态。

    添加节点时,选择工具>Supabase>Get Rows

    • 在节点配置右侧,选择已配置的API Keys。

    • 输入变量

      • Table Name:orders

      • Limit:100

      • Filter:order_id

    模板转换

    输入变量,变量值选择Get Rows下的json。

    LLM

    AI助手将查询到的物流信息与客户情绪结合,根据提示词生成回复。

    • 上下文:选择模板转换下的output。

    • SYSTEM:将以下提示词复制到SYSTEM,并在<context></context>XML标签内输入“/”插入上下文。

      使用以下上下文作为你所学习的知识,放在<context></context> XML标签内。
      <context>
      <请在此处输入“/”插入上下文>
      </context>
      当回答用户时:
      如果你不知道,就说你不知道。如果你不确定时不知道,寻求澄清。
      避免提及你从上下文中获取的信息。
      并根据用户问题的语言进行回答。

    直接回复

    回复:选择LLM下的text。

测试示例

用户问题

你好,我订单号 #ORD12345 的那件连衣裙,物流没更新了,急着穿,什么时候能到?会不会丢件了

AI回复

您好,关于您的订单 #ORD12345,目前物流状态显示商品已到达杭州市分拨中心,预计将在 2 天内送达宁波市。请您放心,商品在运输过程中有完善的追踪系统,不会丢失。我们建议您保持关注物流信息,如有任何异常我们将第一时间通知您。