如何搭建一个智能客服:从NLP到多轮对话与多流程设计
ccwgpt 2024-11-20 13:14 108 浏览 0 评论
如今,智能客服在我们的日常生活中已随处可见,那么它们是如何理解我们的意图,回答我们的问题并提供帮助的呢?本文作者用通俗易懂的文字讲解了智能客服对话流程的设计,推荐给对智能客服、对话式人工智能感兴趣的小伙伴阅读。
对话式人工智能产品越来越常见,从Siri到电话客服,不知不觉中它们已在你身边寻觅了一个位置。笔者的产品是一款去年上线的客服机器人,简单聊聊从0到1的经验。
从交互形式来划分,智能客服包括纯语音(如天猫精灵),纯文本(如小冰),纯可视化界面(如一些电商的客服,完全通过界面交互来完成对话),语音+可视化界面(如Siri等手机助手)。交互形式没有好坏,这一点同非AI产品一样,根据用户使用场景选择最合适的形式即可。
从产品定义出发,智能客服类产品,最根本的价值在于以低成本取代人工客服工作中大量重复性的部分,再基于这个前提,去挖掘更多商业变现的可能性。人工客服的工作大致分为两种,一种是咨询类的,客服只需回答问题;另一种是申请类的,客服要帮客户完成一些业务办理。
因此,从可实现的功能来划分,智能客服可分为问答式和业务办理式,再细分为单轮/多轮问答与单轮/多轮业务申请。首先什么叫单轮对话呢?
“吃了吗您呐?”
“吃了”
那么多轮对话的概念呢?
“吃了吗您呐?”
“吃了”
“吃了什么呀”
“老北京炸酱面”
多轮对话的另一个名字,叫作基于上下文关系的对话。单轮与多轮申请也是同理,一句话就能解决的为单轮,需要反复几次的是为多轮。
无论是问答还是申请业务,作为一个智能客服,它就离不开NLP,NLP就离不开语料。在如上的例子中,通常的工作方法是,我们定义一个用户意图叫“吃了吗”,然后把相似的语料(吃了么?吃饭了吗?吃了没?你有没有吃饭?……)喂给机器人,之后写一些用例来测试它识别的准确率,如果识别率较低,就继续喂它语料,直到我们对识别率满意为止。用同样的方法,我们就可以让机器人学会理解很多种用户意图了。
多说一嘴,其实这里就是机器学习中样本集与测试集的概念。样本集用来学习,测试集用来测试学习的效果。另外由于机器学习的本质还是数学与统计,并没有真正的理解,所以学习效果非常依赖语料的质量。
直观的表现是,不同的意图中,语料差异越大,识别的准确率越高。比如,“吃了吗”和“吃了没”是相似的,“吃了吗”和“看星星看月亮从诗词歌赋谈到人生哲学”是不相似的,那么后者作为两种意图去做识别,就是容易分开的,而前者两个说法过于相近,可能会得到很差的识别结果。所以训练师需要了解基本的机器学习原理,才能够检查和调整样本集的质量。
现在我们的机器人已经能够听懂一些人话了,下一步只要定义好回复的内容,比如给“吃了吗”回复“吃了”,给“睡了吗”回复“没睡”,再把这些需求交给可爱的开发同学,一个支持单轮问答的机器人就完成了!(好的这是做一个PM最愉快的时刻了)
多轮对话设计的本质,是定义场景和将多个单轮对话进行组合。对于前面提到的例子来说,在“吃了”后面问“吃了什么呀”是正常的结合语境的问法,而脱离语境问这一句的话,就会让听者感到困惑。所以这部分的需求是这样写:
- 当用户表达“吃了吗”的意图,机器人应回复“吃了”;
- 当用户上一个表达是“吃了吗”and 机器人回复是“吃了”and 用户这一个表达是“吃了什么呀”,机器人应回复“老北京炸酱面”;
- 当用户上一个表达是“睡了吗”and 机器人回复是“没睡”and 用户这一个表达是“吃了什么呀”,机器人应回复“亲您想问什么呢?”
再次把需求交给开发,我们就得到了一个支持两轮对话的机器人。如果需要增加轮次或新的场景,那么在此基础上添加相应的逻辑即可。
再说到业务办理,本质是在问答的基础上增加与用户相关的数据交互,比如当用户说“帮我订个车去人民广场”,那么机器人应该回复“好的”的同时,拿用户的手机号和“人民广场”等信息去完成订车这一操作。
大部分时候,业务办理和多轮对话是交叉的,比如订车的场景下,机器人可能需要再问一下什么时间出发,对车辆是否有要求,那么这至少要用三轮对话来完成。
讲完了基本框架,再说说落地。在实际的需求分析过程中,我们需要了解业务背景,了解业务规则下人工客服的工作内容。从其中归纳出最终用户一般有哪些需求,他们会问什么,怎么问,抽取出用户意图,根据重复性高的对话流程做对应的轮次设计。
假设我们做的是信用卡客服机器人,那么用户意图很可能有“手续费怎么算”、“逾期了有什么影响”,下一句用户则可能会继续问,“那我还上了还影响吗”。这其中需要思考的点很多,原则包括但不限于:
- 了解业务规则,了解最终用户的需求;
- 抽取意图时注意差异化,意图过于接近会给后期的识别结果带来麻烦;
- 从用户记录中提取语料时要注意筛选,高质量的语料是高识别率的前提;
- 设计轮次时要跟意图一起考虑,不能基于无法识别的意图做设计。
以及有一个格外需要注意的地方是,对话式智能产品与其他产品的不同在于,用户的表达是不受限的。它不像普通的产品,一个页面上如果只有一个按钮,那么用户就不可能有第二个操作。而对话中,用户可能会讲任何东西,例如我的小机器人已经被问了若干次“你的爸爸妈妈是谁呀”。
所以在设计流程时,需要考虑用户不按正常流程走完的可能性,也要在设计回复时,尽可能引导用户往自己想要的方向去做表达,根本原则是收敛而非发散。
作者:一个圆圈儿
本文由 @一个数据人的自留地 授权发布于人人都是产品经理,未经作者许可,禁止转载
题图来自 Pixabay,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
相关推荐
- VUE3前端开发入门系列教程二:使用iView框架辅助开发
-
1、安装iView新框架,支持VUE3npminstallview-ui-plus2、编辑src/main.js,添加以下内容,导入js和css到项目importViewUIPlusfrom...
- 万能前端框架uni app初探03:底部导航开发
-
前言本节我们使用uniapp的底部导航功能,点击不同tab会显示不同页面,这个功能在实际项目开发中几乎是必备的。一、基础知识1.tabBar如果应用是一个多tab应用,可以通过tabBar配...
- Rust Web 开发框架,前端你可以选择哪个?
-
Rust构建一切。在如今流行的语言中,Rust可谓是将构建和高效作为自己优美的身姿在大众视野中脱颖而出。它是一门赋予每个人构建可靠且高效软件能力的语言。它有什么特性呢?高性能。Rust速度惊人且内...
- 连载:前端开发中纠结的Javascript框架(上)
-
如今,前端开发有着许许多多的框架和库。其中一些好用,一些却不尽人意。通常我们会习惯性运用某一概念,模块或句法。事实上,并没有什么万能工具。这篇文章是关于未来框架的发展趋势——那就是没有框架!我从以下几...
- 前端开发框架的演进架构:提升用户体验和开发效率
-
前端开发框架是现代Web应用开发的重要工具,它不仅可以帮助开发者构建复杂的用户界面,还能够提升用户体验和开发效率。随着Web技术的不断发展,前端开发框架也在不断演进,为开发者提供了更丰富、更高效的工具...
- Google应用Mesh-TensorFlow框架,让CNN也能处理超高分辨率图像
-
为了要处理超高分辨率医疗图像数据,Google开发了一种空间数据分区(SpatialPartition)技术,在不牺牲图像分辨率的条件下,分析超高分辨率图像。Google使用Mesh-TensorF...
- 大模型安全挑战加剧:框架层漏洞成新靶心
-
近日,360数字安全集团发布了一份关于大模型安全漏洞的报告,揭示了当前大模型及围绕其构建的框架和应用中存在的严重安全问题。报告显示,360近期研究发现了近40个大模型相关的安全漏洞,其中既包括二进制内...
- Keras 3.0正式发布:可用于TensorFlow、JAX和PyTorch
-
机器之心报道编辑:陈萍经过5个月的更新迭代,Keras3.0终于来了。「大新闻:我们刚刚发布了Keras3.0版本!」Keras之父FrancoisChollet在X上激动的...
- TensorFlow和Keras入门必读教程(tensorflow与keras版本对应)
-
导读:本文对TensorFlow的框架和基本示例进行简要介绍。作者:本杰明·普朗什(BenjaminPlanche)艾略特·安德烈斯(EliotAndres)来源:华章科技01TensorFlo...
- 谷歌官方回应“TensorFlow遭弃”:还在投资开发,将与JAX并肩作战
-
鱼羊发自凹非寺量子位|公众号QbitAI终于,谷歌出面回应“TensorFlow遭弃”传闻:我们将继续致力于将TensorFlow打造为一流机器学习平台,与JAX并肩推动机器学习研究。这段时...
- 2025 年的PHP :现代 Web 开发的强大引擎
-
程序员还在吐槽PHP过时?2025年的PHP8.4直接封神了。看看最近更新的属性钩子、强类型系统,加上Laravel这些框架,老语言早就脱胎换骨。十年前说PHP弱类型容易崩代码的,现在脸疼不?联合类...
- 前端内卷终结者?htmx如何让开发者告别200行JS只做一个按钮
-
当你用React写一个点赞按钮需要引入3个状态管理库、编写80行JSX和120行钩子函数时,htmx只需要一行HTML:<buttonhx-post="/like"hx-sw...
- NativePHP桌面版V1.0正式发布(元气桌面电脑版下载)
-
导读:各位小伙伴,使用PHP构建桌面级系统的利器,NativePHP来了。概述NativePHP是一个用于使用PHP构建桌面应用的框架。它允许PHP开发人员使用熟悉的工具和技术创建跨平台的原生应用...
- PHP Laravel框架底层机制(php基本框架)
-
当然可以,Laravel是最受欢迎的PHP框架之一,以优雅的语法和丰富的生态而闻名。尽管开发体验非常“高端”,它的底层其实是由一系列结构清晰、职责分明的组件构成的。下面我从整体架构、核心流程、...
- PHP框架之Laravel框架教程:2. 控制器、路由、视图简单介绍
-
2.控制器、路由、视图简单介绍我们先建立控制器,目录是:app/Http/Controllers,新建控制器Ding.php,代码如下:Ding.php:<?phpnamespaceA...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- VUE3前端开发入门系列教程二:使用iView框架辅助开发
- 万能前端框架uni app初探03:底部导航开发
- Rust Web 开发框架,前端你可以选择哪个?
- 连载:前端开发中纠结的Javascript框架(上)
- 前端开发框架的演进架构:提升用户体验和开发效率
- Google应用Mesh-TensorFlow框架,让CNN也能处理超高分辨率图像
- 大模型安全挑战加剧:框架层漏洞成新靶心
- Keras 3.0正式发布:可用于TensorFlow、JAX和PyTorch
- TensorFlow和Keras入门必读教程(tensorflow与keras版本对应)
- 谷歌官方回应“TensorFlow遭弃”:还在投资开发,将与JAX并肩作战
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)