当前位置: 首页 > news >正文

AIGC | 如何用“Flow”,轻松解决复杂业务问题

随着LLM(大语言模型)的爆火,不少企业都在寻找通过LLM解决企业业务问题的方法,以达到降本增效的效果。但是,当面对较为复杂的业务问题(如:背景资料多、问题分类多、条件判断复杂、涉及模块多等)时,以LLM当前的发展程度,仅通过简单的LLM对话交互,是无法有效地解决此类问题的,原因在于,LLM也有自身的能力限制,如幻觉、上下文等。



极光(Aurora)开发的GPTBots平台,为解决此类问题,打造了“Flow”形态的Bot搭建模式。该模式可将复杂的业务问题简单化,通过“Flow”的方式,将复杂多变的业务问题简化并抽象为多个“节点”和“流程”,并通过可视化编排workflow方式,让多个专职LLM并行/串行工作,各司其职,从而快速地搭建起一个Bot,并立即应用于实际业务问题场景中。

本文将以搭建一个简单的“售后服务Bot”为目标,为您讲述“Flow”的实际应用过程。

找出问题,定义目标

设计一个Bot,和设计一款产品是一样的,首先需要定义该Bot需要解决的问题是什么,并定义出这个Bot的目标。

在本例中,我们需要解决的是售后服务问题。原有的售后服务,可能会包括(但不限于):

  • 咨询量大,需要投入大量的人力资源在其中;
  • 咨询的内容很广,意味着对客服人员的知识量要求较高;
  • ……

如果有一个专门解决售后咨询问题的Bot,那么就可以帮助企业提升售后服务效率的同时,降低售后服务的成本(人力、时间、管理资源……)。


 

业务梳理
 

在定义好问题和目标后,我们需要根据实际的业务场景,先规划好Bot的流程。

在该例子中,我们可以设计出这样的一个简单的售后问题处理流程:

  • 当客户提问关于保障服务(Support Service)相关问题时,则Bot基于《保障服务》文档知识,为客户解答;

  • 当客户提问是关于退货(Returns)时,则Bot基于《退货》文档的知识,为客户解答;

  • 当客户想要查询快递进度(Express Tracking)时,则Bot调用预定义好的快递查询插件,并为客户返回结果;

  • 当客户提出关于退款(Refund)的请求时,由于该业务涉及资金流动,较为敏感,因此我们选择让Bot调用预定义好的退款处理插件,为客户执行退款,并返回结果;

  • 当客户提问不属于以上任意一种类型时,我们设置一个默认回复信息给客户,例如可以让客户通过某种联系方式联系人工客服。

当然,在真实的企业售后服务中,远远不止这五种场景。企业开发者可根据实际情况设计Bot。


 

知识分类


 

在定义业务流程后,我们需要为该Bot准备售后知识数据。原因在于,既然是一个售后Bot,则这个Bot必须要熟知公司在售后服务上的所有知识,才能依照知识,对客户的问题进行合理的响应。

在准备Bot知识时,最重要的思维则是“分类”。

在售后服务场景中,售后服务人员会遇到很多不同的问题,例如可以退货吗?退货进度在哪里看?可以换货吗?怎么换?退款的话要多久能回到我的账户?快递配送到哪了?等等问题。

以上图为例,我们可以将前文业务梳理结果中涉及问答的部分,即保障服务和退货场景中的常见需要进行问答的场景进行分类,并且基于这些分类,来组织知识文档。例如《保障服务》、《退货》。

清晰的知识分类,有助于Bot对知识的学习和理解,并能在面对客户咨询时提供更加准确的回答。


 

Bot设计

FlowBot创建
 

在完成了知识组织和流程规划后,我们可以正式进入GPTBots平台,进行FlowBot的搭建。

在【FlowBot】模块中,先创建好一个售后服务Bot,并进入设置界面。

知识学习
 

在【知识库】模块中,分别将之前已经组织好的《保障服务》和《退货》文档提交给Bot进行学习和训练。GPTBots平台提供了多种类型的知识上传方式。

在本例中,我们选择了“Q&A”作为知识文档的管理格式。这是一种以“问答对(Q&A Pair)”为基本单位的知识储存格式。当客户提出了和其中某些问题(Q)语义相似的问题时,Bot可以迅速找到对应答案(A),并经过LLM组织语言后,给客户解答。

Flow设计
 

在配置好知识文档后,我们可以开始进入到Flow的设计环节中。

通过【编辑】进入Flow的可视化编辑界面。

每一个Flow都是由三个基本元素构成的:

  • 输入(Input):即客户的输入信息;

  • 输出(Output):即经过一系列Flow处理后,为输出给客户作为响应的信息;

  • 组件(Component):各类数据处理组件,包括了LLM、知识检索、条件判断和预置响应等。

场景判断

按照我们之前对业务流程的规划,在客户提出问题后,我们需要先对客户的问题进行判断,并根据客户的问题分类,进入对应的响应流程。

因此,Flow设计的第一步,就是将【输入】的下一步设置为一个【分支判断】组件,并通过自然语言设置【退款】、【物流】和【退货】等分支。

通过这个组件,Bot会根据客户提问内容判断下一步应该往哪个流程继续下去。

知识问答:退货、保障服务
 

以【退货】为例。若客户提问被判断为退货,则下一步需要做的,就是为客户的提问,从知识文档中,寻找合适的回答内容。

我们可以在此添加一个【知识向量】组件,并将【分支判断】中的【退货】连接至此。在【知识向量】中,我们选择之前已经上传并训练好的《退货》文档,作为本组件的知识检索材料。

由于【知识向量】组件检索出来的结果,都是较为“生硬”的知识片段,是不能直接用于回复客户的,因此我们需要在下一步,将客户提问与知识检索结果提供给LLM,让LLM基于这些信息进行理解、分析,并最终组织出一个合适的回答。

最后,将LLM的输出信息连接至【输出】组件,完成整个的流程。以上流程放在【保障服务】分支中,也是可以复用同样的设计思路。

插件调用:快递查询、退款
 

当客户的请求被判定为需要查询快递进度时,我们可以设置一个LLM组件,并为该组件添加【快递查询】插件。

LLM将从客户的请求内容中提取需要查询快递的订单号,并通过调用插件,为客户返回该订单号的物流进度。

同样地,若LLM从客户的请求中识别出了【退款】意图,则会指引客户提供必须信息,并帮助客户通过插件,向系统提交请求,执行退款流程。

预置相应:其他
 

最后,我们需要补充一个“兜底”分支。当客户问题不属于【分支判断】中设定的任意分支时,我们通过【预置响应】组件,设定一个通用的回复信息,让客户直接联系企业客服人员,以进一步人工解决问题。

Flow总览
 

经过上述一系列操作后,记得【保存】,这个简单的“售后服务Bot”就搭建完成了。

Flow验证
 

在【保存】之后,我们可以通过【运行】或【对话】,直接测试Bot的回复效果。

在【输入】组件中,输入客户提问内容,并点击【运行】,界面上就会以虚线的形式,展示出该问题的数据流转路径,并在最终的【输出】组件中,可以看到最终的输出结果。

同样,也可以通过【对话】,直接以对话的形式,验证Bot输出效果。




现在就开始免费体验!

 

在接下来的一段时间内,GPTBots有一系列优化FLow功能的计划,包括会提供如Webhook、Task等组件,提供更丰富的预置响应模式等,让Flow能够在面向复杂业务场景时更加地游刃有余。

亲爱的朋友,现诚挚地邀请您加入GPTBots平台,与我们一起通过AI,创造更美好的未来。

在GPTBots平台上,您可以轻松创建企业AI助手,提升企业人效。我们拥有优秀的AI团队,并接入了全球领先的LLM及向量知识库服务,让您的创意无处不在

完成快速注册并完成开发者认证,我们将赠送您50个使用积分。您可以用积分体验各种高级功能,提升助手的智能化程度。

访问 www.gptbots.ai立即加入GPTBot




关于极光

极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国领先的客户互动和营销科技服务商。成立之初,极光专注于为企业提供稳定高效的消息推送服务,凭借先发优势,已经成长为市场份额遥遥领先的移动消息推送服务商。随着企业对客户触达和营销增长需求的不断加强,极光前瞻性地推出了消息云和营销云等解决方案,帮助企业实现多渠道的客户触达和互动需求,以及人工智能和大数据驱动的营销科技应用,助力企业数字化转型。

相关文章:

AIGC | 如何用“Flow”,轻松解决复杂业务问题

随着LLM(大语言模型)的爆火,不少企业都在寻找通过LLM解决企业业务问题的方法,以达到降本增效的效果。但是,当面对较为复杂的业务问题(如:背景资料多、问题分类多、条件判断复杂、涉及模块多等&a…...

多级菜单 树结构 排序 前端 后端 java

目录 省流&#xff1a; 正文&#xff1a; v1.0版 前端传的值&#xff1a; 后端代码&#xff1a; v2.0版 v3.0版 省流&#xff1a; 前端提交过来整个树即可。 给整个树进行sort。代码如下&#xff1a; public static void sort(List<Node> tree){int i 0;for…...

LAN-Free在数据备份时的应用与优势

在灾备领域中&#xff0c;常见的备份架构有LAN、LAN-Free和Server-Free备份&#xff0c;其中LAN备份架构图见图1&#xff0c;LAN-Free备份架构图见图2&#xff0c;Server-Free备份架构图见图3&#xff0c;途中红色箭头为备份数据流量走向&#xff1a; 图 1 图 2 图 3 从图1、图…...

HTML 文档声明和语言设置

HTML 文档声明 DOCTYPE 文档类型声明&#xff0c;用于告诉浏览器的解析器&#xff0c;该以那种 HTML 版本来解析这个文件。 HTML 5 版本声明 <!DOCTYPE html>XHTML 1.0 严格版声明 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:/…...

【C++基础知识学习笔记】精华版(复习专用)

常用语法 函数重载(Overload) 规则: 函数名相同 参数个数不同、参数类型不同、参数顺序不同 注意: 返回值类型与函数重载无关 调用函数时,实参的隐式类型转换可能会产生二义性 默认参数 C++ 允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下: 默认参数只能…...

探索ChatGPT在学术写作中的应用与心得

随着人工智能的迅猛发展&#xff0c;ChatGPT作为一种强大的自然语言处理模型&#xff0c;逐渐在学术界引起了广泛的关注。本文将探讨ChatGPT在学术写作中的应用&#xff0c;并分享使用ChatGPT进行学术写作时的一些经验和心得。 01 — ChatGPT在学术写作中的应用 1.文献综述和…...

Android:怎么学习才能更好的进大厂呢?

怎么学习才能更好的进大厂呢&#xff1f; 很多朋友都在问这个问题。 其实没有什么特别的技巧&#xff0c;就是依靠自己的毅力和决心。一天做不到&#xff0c;就一个月&#xff1b;一个月做不到&#xff0c;就一年。只要有决心&#xff0c;无论学历或资历如何&#xff0c;都不是…...

CSS标点符号换行问题

最近遇到一个奇怪的现象,元素中中文文本正常显示,但是加了一堆符号后中文文本居然换行了. div{width: 200px;border: 1px solid blue;word-break: break-all;} <div>文本</div>经过研究发现&#xff0c;因为标点符号不允许出现在行首和行尾&#xff0c;连带着符号…...

jdbc Preparestatement防止SQL注入的原理

2023-10-28T03:37:11.264132Z 2 Execute select * from users where username liulemon and password \ or \1\ 1\ 可以看到这一行&#xff0c;预编译时&#xff1f;变成了转义字符 useServerPrepStmtstrue加上这句才能预编译...

如何控制 LLM 的输出格式和解析其输出结果?

现在很多人对于如何使用像 ChatGPT 这样的 LLM 已经比较有经验了&#xff0c;可以使用各种不同的 Prompt 得到自己想要的结果。但有时候我们的使用场景不局限于手动操作&#xff0c;而是需要结合程序去调用 API&#xff0c;并且解析 API 的返回结果&#xff0c;从而实现一些自动…...

【Linux】 ps 命令使用

ps &#xff08;英文全拼&#xff1a;process status&#xff09;命令用于显示当前进程的状态&#xff0c;类似于 windows 的任务管理器。 语法 ps [选项] ps命令 -Linux手册页 著者 ps最初由布兰科兰克斯特撰写<lankestefwi.uva.nl>。迈克尔K约翰逊<johnsonmred…...

C++二分查找算法的应用:长度递增组的最大数目

本文涉及的基础知识点 二分查找 题目 给你一个下标从 0 开始、长度为 n 的数组 usageLimits 。 你的任务是使用从 0 到 n - 1 的数字创建若干组&#xff0c;并确保每个数字 i 在 所有组 中使用的次数总共不超过 usageLimits[i] 次。此外&#xff0c;还必须满足以下条件&…...

提示3D标题编辑器仍在运行怎么解决,以及3D标题编辑器怎么使用

在进行视频剪辑时&#xff0c;尤其是剪辑一些带有文字的开场视频&#xff0c;一般都会使用具有立体效果的3D标题&#xff0c;这样制作出来的视频效果不仅好看&#xff0c;还非常的炫酷&#xff0c;但是对于一些刚刚开始接触视频剪辑的小伙伴来说&#xff0c;可能对3D标题还不是…...

1. PPT高效初始化设置

1. PPT高效初始化设置 软件安装&#xff1a;Office 2019 主题和颜色 颜色可以在白天与黑夜切换&#xff0c;护眼 切换成了黑色 撤回次数 撤回次数太少&#xff0c;只有20次怎么办 自动保存 有时忘记保存就突然关闭&#xff0c;很需要一个自动保存功能 图片压缩 图…...

el-cascader级联选择器选中一个全选中问题

问题 只选中一个却把同级全选中 解决 :props中添加label、value、children属性 label、value、children属性值需要和后端返回的集合中的字段名保持一致 后端返回数据&#xff1a;...

Opencascad(C++)-创建自定义坐标系

文章目录 1、前言2、在Opencascad中显示小的坐标系3、在Opencascad中创建自定义的坐标系 1、前言 在Opencascad开发时&#xff0c;在view中可以显示小的坐标系&#xff0c;但是有时我们需要在建模时创建基准坐标系&#xff0c;当然可以作为工件坐标系也可以作为基准坐标系。本…...

MySQL数据库入门到大牛_01_数据库概述

文章目录 1. 为什么要使用数据库2. 数据库与数据库管理系统2.1 数据库的相关概念2.2 数据库与数据库管理系统的关系2.3 常见的数据库管理系统排名(DBMS)2.4 常见的数据库介绍 3. MySQL介绍3.1 概述3.2 MySQL发展史重大事件3.3 关于MySQL 8.03.4 Why choose MySQL?3.5 Oracle v…...

Web - Servlet详解

目录 前言 一 . Servlet简介 1.1 动态资源和静态资源 1.2 Servlet简介 二 . Servlet开发流程 2.1 目标 2.2 开发过程 三 . Servlet注解方式配置 ​编辑 四 . servlet生命周期 4.1 生命周期简介 4.2 生命周期测试 4.3 生命周期总结 五 . servlet继承结构 5.1 ser…...

postgresql 触发器如何生成递增序列号,从1开始,并且每天重置

大家好&#xff0c;我是三叔&#xff0c;许久不见&#xff0c;这期给大家介绍一下笔者在开发中遇到的业务处理&#xff1a;pgsql 创建触发器生成每日递增序列&#xff0c;并且第二天重置&#xff0c;根据不同的用户进行不同的控制。 1.创建生成递增序列的 table 表 -- 创建us…...

“第五十九天”

这是昨天那道题&#xff0c;这个后面自己的处理思路还是差了点&#xff0c;这道题关键感觉就是对进位的处理的&#xff0c;由于进位的存在&#xff0c;所以处理数据的时候只能从最低位开始&#xff0c;我一开始是从高位处理的&#xff0c;而且后面越来越迷&#xff0c;这个点一…...

IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

Docker官网 Docker官网&#xff1a;https://www.docker.com/ Docker Hub官网&#xff1a;http://hub.docker.com/ 什么是Docker Docker 是一个开源的容器引擎&#xff0c;可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编…...

【Linux网络编程_TCP/UDP_字节序_套接字 实现: FTP 项目_局域网聊天项目 (已开源) 】.md updata:23/11/03

文章目录 TCP/UDP对比端口号作用字节序字节序转换api套接字 socket实现网络通讯服务端 逻辑思路demo&#xff1a; 满血版双方通讯/残血版多方通讯服务端 demo客户端 demo FTP 项目实现sever demo:client demo: 局域网多方通讯 配合线程实现sever demo:client demo: TCP/UDP对比…...

Leetcode刷题详解——全排列

1. 题目链接&#xff1a;46. 全排列 2. 题目描述&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],…...

JSONP 跨域访问(1), 简介, 原理, 实验, 缺点

JSONP 跨域访问(1), 简介, 原理, 实验, 缺点 一, JSONP 简介 JSONP&#xff08;JSON with Padding&#xff09;是一种非官方跨域数据交互协议。它允许web页面从不同的域名下加载数据。 由于同源策略&#xff0c;web页面通过XMLHttpRequest调用通常只允许访问与其自身相同域名…...

velero备份k8s集群

流程图 velero备份原理 本地 Velero 客户端发送备份指令。Kubernetes 集群内就会创建一个 Backup 对象。BackupController 监测 Backup 对象并开始备份过程。BackupController 会向 API Server 查询相关数据。BackupController 将查询到的数据备份到远端的对象存储。 velero的…...

描述低轨星座的特点和通信挑战,以及它们在5G和B5G中的作用。

文章目录 2章4 章5章&#xff08;没看&#xff09;6章&#xff08;没看&#xff09; 2章 将卫星星座中每个物理链路中可实现的数据速率、传播延迟和多普勒频移与3GPP技术报告中的参数进行分析和比较[3]。 相关配置 面向连接的网络&#xff0c;预先简历链路 卫星和地面终端有…...

Spring Boot实践 --windows环境下 K8s 部署 Docker

第一步&#xff1a;搭建项目并制作合适的jar包 这里我们准备好前面项目 用户管理系统 项目里的jar包。测试功能&#xff0c;定时任务会每过10s打印一次日志&#xff1a; E:\test>java -jar demospringboot-0.0.1-SNAPSHOT.jar2023-11-01 20:24:21.059 INFO 11848 --- [ …...

Linux 将Qt程序打包为AppImage包

前言 在 Linux 环境下&#xff0c;开发完 Qt 程序后&#xff0c;也需要制作为一个安装包或者可执行文件进行分发。这里介绍使用 linuxdeployqt 将 Qt 程序打包为 .AppImage 应用程序&#xff08;类似于 Windows 的绿色免安装软件&#xff09; 环境配置 配置 Qt 环境变量 这…...

修复国产电脑麒麟系统开机出现initramfs 问题

目录预览 一、问题描述二、原因分析三、解决方案四、知识点呀initramfsBusyBox 五、参考链接 一、问题描述 国产麒麟系统出现 initramfs 模式 二、原因分析 一般在拷贝卡顿过程【强制关机】或者电【脑异常断电】的情况下概率性导致系统分区损坏&#xff0c;重启后大概率就会进…...

机器人控制算法—如何使用C++读取pgm格式的栅格地图并转化为ROS地图格式的data?

1.Introduction 近期正在做全局规划局部动态规划的项目&#xff0c;目前遇到的问题是&#xff0c;我们如何利用C处理pgm地图文件。即将地图信息要与像素点结合起来。所以我们需要知道地图读取和处理的底层原理&#xff0c;这样更好地在非ROS平台下移植。 2.Main 如下几条信息…...