客服都要下岗了? 当ChatGPT遇见私有数据,秒变AI智能客服!

news/2024/12/2 19:36:36/

用ChatGPT搭建基于私有数据的WorkPlus AI客服机器人这个想法,源于WorkPlus售前工作需求。在ChatGPT之前,其实对话式AI一直在被广泛使用在客服场景,只不过不大智能而已。比如你应该看到不少电商客服产品,就有类似的功能,你说一句话,机器人就会回复你。

01

只需Prompt

就可以将ChatGPT训练成客服?

WorkPlus是一个即时通讯协作和移动应用管理平台,主要面向B端用户群体。售前会有很多的用户咨询,比如产品介绍、产品优势、产品价格、部署问题等等,需要耗费比较多的精力去维护。刚好我们这边积累了很多WorkPlus售前内容资料,我希望将这些资料导入给ChatGPT,然后ChatGPT能基于这些数据回答我的问题,甚至能给用户提供更好的建议等。

最早的时候,尝试过非常笨的方法,就是在提问的时候,将我的Prompt 文本直接传给 ChatGPT,它的Prompt大概是这样的:

这一步就是让ChatGPT了解业务,并能有基础的话术。根据我们的业务,主要有WorkPlus简介、恒拓高科、官网链接、咨询电话、收费方式、邮箱等。

这里要注意的是,电话和邮箱一般要有,不然它会随便编一个。是的,你没有看错,这个胡编乱造是个明显的问题,你可以在Prompt 加以限制,比如:

那这么简单的配置能有什么效果呢?让我们看看例子。

这个方法能用是能用,而且效果还不错。

02

Token限制怎么解决?

目前 ChatGPT 有个非常大的限制,它限制了最大的 token 数是 4096,大约是 16000 多个字符。换句话来说,我的一次对话,如果token 数超过4096时候, ChatGPT就会忘了我之前喂给他的内容,就会一本正经“胡说八道”   了!

这个问题就一直卡了我很久,直到我遇到了公司的技术大神...

他说OpenAI官方提供了两种方法,可以直接调用他们接口,将自己的数据上传给GPT:

Fine-tuning(微调)和Embeddings(嵌入)

那么这两种方式有各有什么优劣呢?

Fine-tuning(微调)就是在大模型的数据基础上做二次训练,比如davinci、ada等等,需要事先准备好一批prompt-complition(类似于答Q&A)的数据,适合很久知识都不变且数据集较小的情况。

Embeddings(嵌入)则是每次向ChatGPT发送消息(Prompt)的时候,把你自己数据结果带上发送给GPT。让GPT根据这个预设的Prompt和问题再加私有数据做回答,适合数据量超大且实时更新的一些数据。

你可以这样简单理解,ChatGPT就像一个已经训练好的家政阿姨,她懂中文,会做家务,但是对你家里的情况不了解。

Fine-tuning(微调)就相当于阿姨第一次到你家干活的时候,你要花一小时时间告诉她家里的情况,比如物件的摆放、哪些地方不能动,哪些地方要重点照顾。

Embeddings(嵌入)就相当于你省去了对阿姨进行二次培训,而是在家里贴满纸条,这样阿姨一看到纸条就知道该怎么做了。

综合考虑后,我们这个产品采用了Embeddings(嵌入)模型,并在每次对话中,将预设Prompt+AI角色打包发送给GPT,让GPT根据这个预设的Prompt+私有数据+问题做回答,这样就解决了绝大部分4096个token限制的问题了。

03

Embeddings模型和私有数据

怎么整合?

这里先解释下什么是 Embedding模型。

人工智能算法可以对物理世界的人/物/场景所产生各种非结构化数据(如语音、图片、视频,语言文字、行为等)进行抽象,变成多维的向量。

这些向量如同数学空间中的坐标,标识着各个实体和实体关系。我们一般将非结构化数据变成向量的过程称为 Embedding,而非结构化检索则是对这些生成的向量进行检索,从而找到相应实体的过程。

具体产品思路,如图所示

原理如下:

1)把PDF/Word/TXT/Markdown等文档切分成小的文本片段,通过OpenAI的Ada模型创建Embedding放到本地或远程向量数据库。

2)把用户的提问也创建成Embedding,用它和之前创建的PDF/Word/TXT/Markdown向量比对,通过语义相似性搜索(余弦算法),找到最相关的文本片段。比关键词搜索好的一点是不要求关键词包含,也能发现文本相关性,比如汽车和公路。

3)把用户提问和相似文本片段发给OpenAI,写Prompt要求ChatGPT基于给定的内容生成回答,如果没有相似文本或关联度不高,则回答不知道。

实际上大部分传统的问答机器人,都是基于规则的知识图谱方式实现,这种方式需要对大量的语料进行分类整理。

而WorkPlus AI助理通过OpenAI提供的接口可以彻底摆脱对语料的预处理,只需提供问题和答案的对应关系,提取语义特征向量存入向量数据库中,然后对提问的问题也进行语义特征向量提取,通过对向量特征的匹配,并经ChatGPT润色就可以轻松实现智能AI客服,AI知识库等应用。

04

怎么创建专属WorkPlus AI助理?

经过公司技术大神一段时间工作,一个比较完善的产品雏形就出来了,接下来又是紧张的测试工作。

第一步当然是创建自己知识库了,简单来讲就是上传文档 ,然后训练。

目前,WorkPlus AI助理处于公测阶段,单个上传文件限制10M以下,可以选择Word(.docx格式)、PDF、Markdown、TXT等格式的文档上传,目前暂时不支持上传Excel文件,建议转换为其他格式上传。

第二步就是定义配置了

“名称”支持自定义填写,分享出去后其他用户可以直接看到,方便进行分享和传播,比如设置为“XX客服助手”,“XX知识库”。

“systemMessage” 设置比较简单,直接自定义申明AI角色即可,如“你是WorkPlus 智能AI客服”,“你是老默”等。

欢迎语可以自主设定,在不同场景下按喜好/风格设置个性化欢迎语。

最重要的就是 “提问” 的配置。使用恰当的 “提问(Prompt)” ,可以让你的WorkPlus AI助理输出的结果更好。

“提问(Prompt)” 的配置需要针对不同行业和场景设置,比如,针对客服场景Prompt你可以这么设置:

“我希望你能担任专业客服的角色,从现在开始,你就是WorkPlus AI客服,你的作用就是回答关于即时通讯产品WorkPlus的相关咨询。WorkPlus是产品,恒拓高科是公司,深圳恒拓高科信息技术有限公司简称恒拓高科。多数情况下,也可以用WorkPlus的相关信息来回答恒拓高科的问题,同样等同的还包括但不限于你们、你等代词。请不要回答政治敏感问题,仅回答和WorkPlus产品相关以及恒拓高科相关的问题。”

其他行业 “提问(User Prompt)”可参考上述 Prompt 修改。

最后,就是“temperature”和“top_p”的设置(图6),一般按默认即可。

temperature设置数值在0-2之间,top_p设置数值在0-1之间。

数值越大,ChatGPT对生成结果润色越多,无关的话越多;

数值越小,ChatGPT对生成结果润色越少,回答越简洁,出错概率越小。

第三步就是训练和测试了

创建完WorkPlus AI助理之后,就可以直接和 AI 进行聊天了,使用方式和 ChatGPT 类似。可以邀请同事一起测试,或邀请客户进行小规模测试,并将测试中发现的问题补充上传到WorkPlus AI助理,一个AI客服/AI知识库就搭建完成了!

05

经验&总结

一段时间测试后,总结了以下几条使用经验,如果您想试用,请务必认真阅读以下总结:

1.文件上传到WorkPlus AI助理后,会自动分割为多个块(小文件),WorkPlus AI助理会匹配最准确的2个块,并润色生成答案

2.支持按字数和按分隔符2种方式,将文件分割为块,建议分割后块的内容字数≤500;

3.为提高回答准确性和完整性,建议添加分隔符“---break---"手动处理文档,并将相同类型内容分割为单独的块(如公司简介,个人履历,完整问答等),请注意,分隔符“---break---"分割符必须单独一行;

4.如果内容含有代码块,建议以Markdown格式上传;

5.由于ChatGPT不支持图片/视频等格式回复,如果您需要文章/图片/视频等回复,可添加链接引导用户查看;

6.WorkPlus AI助理暂时无法识别图片内容,包括纯扫描版PDF文件,Word文档里面图片内容等,建议上传文字类型文档;

7.WorkPlus AI助理暂时无法很好识别复杂表格内容,建议转换为其他格式。

06

后记

说了这么多,相信大家对如何使用ChatGPT+私有数据库有一定的了解了。一篇文章,肯定不可能手把手把大家教会,抛砖引玉,大家可以自己再去研究和尝试。如果你想试用我们产品,欢迎联系我们,加入我们的群,一起交流 Prompt,一起玩ChatGPT!


http://www.ppmy.cn/news/165159.html

相关文章

数据库笔记01-数据库的创建

第一步,右键点击新建数据库 第二步 初始大小为10MB,最大为50MB,数据库自动增长,增长方式按10%增长,日志文件初始大小为2MB,最大大小不受限制,按1MB增长。 sql语句 create database testdb01…

Android进程保活

Android中的进程保活应该分为两个方面: 提高进程的优先级,减少被系统杀死的可能性在进程已经被杀死的情况下,通过一些手段来重新启动应用进程 本文针对这两方面来进程阐述,并给出相应的示例。其实主要也是在前人的基础上做了一个…

六、创建一个基于Python的代理采集项目(04)通过代理采集

代理拿到了,要应用到采集上面,需要在requests.get()中增加一个proxies参数 为了方便以后的代码编写,先梳理一下代码 因为做采集,header要变换,ip要变换,因此这两块要独立出来,方便维护 有关采…

保护计算机系统与数据有什么方法,计算机系统开机和硬盘数据保护方法,与其数据保护模块...

技术领域 本发明涉及一种数据保护技术,且特别是涉及一种计算机系统的开机和硬盘数据保护方法,与其数据保护模块。 背景技术 图1示出了一种已知的具有密码保护的计算机系统的开机方法步骤流程图。请参照图1,已知的计算机系统开机方法&#xff…

基于移动位置服务器,基于移动位置的服务系统及方法

本申请是申请号为03148343.7、申请日为2003年6月30日、发明名称为“基于移动位置的服务系统及方法”的发明专利申请的分案申请。 技术领域 本发明涉及一种基于位置的移动台服务,更具体地说,本发明涉及一种基于移动位置的服务系统,该系统能根据…

计算机不等长编码有哪些,第9讲最佳不等长编码_W

《第9讲最佳不等长编码_W》由会员分享,可在线阅读,更多相关《第9讲最佳不等长编码_W(38页珍藏版)》请在人人文库网上搜索。 1、第九讲最佳不等长编码Review不等长编码定理H (U ) d n 1k ikk 1P1 0Shannon编码例1: 设离散无记忆信源 S s1s2s…

520 miix 小兵 黑苹果,Hackintosh黑苹果长期维护机型整理清单

## 黑苹果长期维护机型整理 引言 by @我意 整理这份清单的目的:在于给想体验黑苹果的人一个方向,也想减少大家重复造轮子,节约大家的时间。 所有文件均归属于原作者,本清单只列出链接。如果您不希望你的链接被这份清单收录,请发送邮件到 [email protected],我将移除链接 清…

Python爬虫|反爬初体验

前言:使用Python爬虫是当下最火的一种获取数据的方式,当我们对一些小型网站进行爬取的时候往往没什么阻碍,而当我们爬取大型网站的时候经常会遇到禁止访问、封禁IP的情况,这也是我们触发反爬机制的体现,本文二哥来带领…