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

测试示例

用户问题

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

AI回复

复制代码
您好,关于您的订单 #ORD12345,目前物流状态显示商品已到达杭州市分拨中心,预计将在 2 天内送达宁波市。请您放心,商品在运输过程中有完善的追踪系统,不会丢
相关推荐
蓝速科技14 小时前
蓝速科技信创落地:平衡安全合规与项目成本的实战方案
android·运维·人工智能·科技·安全·电脑·鸿蒙
Web3&Basketball15 小时前
vLLM部署开源大模型实战:显存、命令与成本核算
人工智能·深度学习·大模型·ai技术·vllm
Dawson Zhu15 小时前
图结构(Graph)如何重构智能体认知?从DAG规划到GraphRAG的技术拆解
人工智能·语言模型·重构·架构·aigc
xier_ran15 小时前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库
爱炼丹的James15 小时前
从技术名词堆积到知识图谱:如何建立自己的大模型技术体系
人工智能·llm·知识图谱
lancyu15 小时前
关于多轮对话机器人的上下文Token优化和解决方案
人工智能·python·深度学习·机器学习·chatgpt·机器人·prompt
xier_ran15 小时前
【infra之路】GPU 执行与存储层次全景关系图
人工智能·深度学习·cuda
奈斯先生Vector15 小时前
从 127.0.0.1:3080 到插件运行时:DeepSeek Harness 远程开发与版本治理实战
linux·运维·人工智能·ubuntu·aigc
joinwell5215 小时前
AI Agent 的技能不是工具权限:为什么“会怎么做”和“允许做什么”必须分开?
人工智能