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

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

一、背景

云原生数据仓库AnalyticDB PostgreSQL版Supabase提供强大的数据库功能和实时数据处理能力,高度兼容PostgreSQL向量数据库。Dify是一个开源的LLM应用开发平台,支持快速构建基于RAG架构的智能应用。通过将云原生数据仓库AnalyticDB PostgreSQL版Supabase与Dify集成,您可以轻松构建高效的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地址。

步骤二:接入大模型

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

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

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

步骤三:配置Supabase

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

  • 单击右上角的插件,然后单击左侧的搜索Marketplace。
  • 搜索supabase,根据提示完成安装。

2.授权Dify操作Supabase项目。

  • 获取Supabase项目的URL和service role key。查询方法请参见获取API Keys
  • 在插件列表中找到已安装的Supabase,单击卡片,并选择API Key授权配置。
  • 在弹出框中配置授权信息,单击保存。

步骤四:准备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,然后创建应用。

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

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

|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 节点 | 配置信息 |
| 参数提取器 | 输入变量: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 天内送达宁波市。请您放心,商品在运输过程中有完善的追踪系统,不会丢
相关推荐
数据库学啊2 小时前
专业的车联网时序数据库排名是怎样的
数据库·时序数据库
oak隔壁找我2 小时前
大模型中参数中 topP(核采样)与 topK 参数的区别
人工智能
还是大剑师兰特2 小时前
AI 航天领域20强
人工智能·思维导图·ai航天
AI即插即用2 小时前
即插即用系列 | CVPR 2024 FADC:频域自适应空洞卷积,完美解决语义分割“网格效应”
图像处理·人工智能·深度学习·目标检测·计算机视觉·视觉检测
Javatutouhouduan2 小时前
Java面试常问Redis核心知识点整理!
java·数据库·redis·java面试·后端开发·java架构师·java程序员
Sinnet-cloud2 小时前
以AI算力基建赋能中国企业出海新征程 | 光环云香港亮相2025 GIS全球创新峰会
人工智能·gpu算力
Hui Baby2 小时前
STT语音转文字探秘
人工智能·语音识别
张彦峰ZYF2 小时前
AI赋能原则9解读思考:高智能 AI 时代的人类生存与发展之道-协同进化
人工智能·ai·ai赋能与落地
枯基Evan2 小时前
applicationTaskExecutor Spring 内置线程池失效
java·数据库·spring