当前位置: 首页 > 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;这个点一…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...