ChatGPT应用技巧五:如何实现一个垂直领域的AI问答机器人

原文:ChatGPT应用技巧五:如何实现一个垂直领域的AI问答机器人|向量|ai|知识库|上下文|插件功能_网易订阅

“由于ChatGPT的数据更新目前只截止到2021年9月,并且它也不一定有特定垂直领域的数据。如何将这些领域的最新数据“喂”给ChatGPT,使其成为一名领域专家呢?今天就来从系统设计的角度来聊聊这个话题。

本文讲解了建设一个基于知识库的AI问答机器人的设计思想,适用领域:各种垂直领域知识库、AI客服机器人的搭建场景。

1 建设AI问答机器人面临的难点

各个行业都会积累很多垂直领域的商业数据,随着ChatGPT浪潮席卷全球,大家都在思考如何利用ChatGPT的能力最大化这些数据的价值。而受限于以下三个原因,这些数据无法直接接入ChatGPT:

  1. ChatGPT不是搜索引擎,它只会收录通用领域的语料库,很多垂直领域商业数据不在这部分语料范围内。
  2. 垂直领域数据更新较快,但ChatGPT这种大模型无法做到实时收录最新的公开数据。
  3. 受限于垂直领域商业数据的保密需求,使得这部分数据无法直接接入ChatGPT这类公开大模型。


接下来我们将一步一步的讲解如何设计一个垂直领域的AI问答机器人,解决以上这些问题。

2 段落切分和意图识别

假设我们的场景是要建立一个公司的AI自动客服系统,手头有公司的一整套知识库。

我们清楚ChatGPT有4096的Token上下文的限制,是无法一次性将整套知识库灌给ChatGPT的。这就要求我们想办法将数据“剪枝”,而剪枝的方法就是将用户的“问题”和知识库中可能的“段落上下文”联系起来。

首先,用户的提问肯定是包含意图的,比如他问“我如何登录?”,这个问题明显是“登录”这个意图,而如果我们知识库中有关于解答“如何登录”的相关文章段落,就可以将这个段落抽取出来,作为prompt上下文,连带用户的提问发给ChatGPT。他就可以基于上下文给出特定问题的答案。

这需要我们将知识库的数据预先切分成一小段一小段的段落文本,然后将这些段落文本输入到一个自建或托管的语义引擎中。用户提问时,实际是先请求语义引擎,匹配到相关段落后,再将此段落上下文+用户提问一起发给ChatGPT:

 

这里最关键的是两步:

  1. 识别用户意图
  2. 匹配知识库中相同或相近意图的段落并将上下文抽取出来

3 向量检索

要实现这两步,首先需要解释一下文本的向量化存储。上文中的语义引擎实际就是利用向量化存储引擎构建的。

向量化存储非常重要,你可以简单理解为将文本段落转化为一个个向量空间的过程,而由于向量和向量之间是可以计算余弦角度的,角度越小,文本在语义层面就越接近。

这样,我们就可以将用户提问的文本向量,和知识库中的向量集合进行比较,从而找到用户意图和知识库匹配的段落。

4 实例:登录场景问答

假设下图是我们知识库中有关“登录”的段落:

 

语义检索的过程:

  1. 将知识库中的每个段落计算向量,存入向量存储引擎。
  2. 通过计算用户提问和知识库段落之间的向量相似度,将高相似度的段落提取出来。
  3. 将提取出来的段落作为上下文放入prompt中,同时放入prompt中的还有“角色信息”和“用户提问”。
  4. 把封好的prompt整体发给ChatGPT,它就能根据这些信息,给出答复:

 

有朋友可能会问:在第二步中实际已经匹配出答案段落了,为什么不能直接用这个答案回复用户呢?从上图可以看到,ChatGPT的回答是比较精炼的,也就是说它会针对问题和上下文做匹配,返回更加智能和准确的结果。

5 保密数据处理

在将prompt发给ChatGPT之前,可以先做一下数据的脱敏,将文本中的涉密内容“扣”掉,替换为一些占位符。这样既可以保留上下文语义,又避免了垂直领域的数据泄露。

例如,在上文中“VideoGram”作为网站名称,如果不想泄露的话,可以将此名称替换为{{SiteName}},待ChatGPT返回答案后,再将答案中的{{SiteName}}替换回来。一般的涉密实体信息,都可以通过这种处理方式避免泄露。

6 避免回答和问题不相关

对于垂直类知识库,有时候用户的提问可能并不能匹配到相关答案。在对答案精确率要求较高的场景,为了避免ChatGPT一本正经的胡说八道,可以考虑两个方法:

  1. 在向量匹配计算余弦相似度时有一定的阈值,如果问题和知识库的段落相似度太低则直接给用户固定的答复,例如:很抱歉,您的问题我暂时无法回答,请问您需要转人工客服吗?
  2. 更严格的场景下,可以利用LIamaIndex最新的evaluation工具,在问题+答案+上下文均匹配时,该API才会返回YES。这可以避免ChatGPT产生“幻觉”答案等情况。

7 总结

上文讲解了构建一个AI知识库问答机器人的设计思路,工程化实现方面,有一些开源工具例如LangChain可以帮助我们快速实现这个知识库机器人。我已将LangChain的示例代码链接放入后台,感兴趣的朋友可以关注本订阅号,后台发送知识库获取相关链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/9127.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT:开放AI平台的最新进展和功能

第一章:引言 在过去的几年中,人工智能技术取得了长足的发展,其在各个领域的应用也日益广泛。而在AI技术中,自然语言处理(NLP)一直是备受关注的领域之一。ChatGPT作为OpenAI的开放AI平台上的一项重要技术&am…

对话 ChatGPT:现象级 AI 应用,将如何阐释「研发效能管理」?

ChatGPT 已然是 2023 开年至今,互联网上最热的话题没有之一。从去年的 AI 图片生成,到 ChatGPT,再到现在各种基于大模型的应用如雨后春笋般出现……在人们探讨技术无限可能的同时,另一个更深刻的命题也不可回避地浮现出来&#xf…

朋友圈转发集赞截图生成工具,以假乱真!

今天分享的是2款转发集赞截图生成工具。 我自己是做平台运营的,平时转发、集赞、拼团、秒杀等等乱七八糟活动没少策划过。 但其实对我个人来说还是很讨厌这些东西的,天天求点赞/求转发/求砍一刀,实在是烦人,所以我自己从来都不参与…

mail发邮件

目录 一:导包 二:使用 1:在qq邮箱生成授权码:允许此qq可以被我们的电脑指挥发邮件 2:application.properties进行配置(并把授权码放到spring.mail.passwordkytxteybnhhldiie) 3:…

chatgpt赋能python:Python如何群发邮件:简介

Python如何群发邮件:简介 Python是一种功能强大的编程语言,它能够在多个方面为您提供帮助。其中之一是自动化邮件和批量邮件发送。如果您需要发送数百封邮件,或者每天都需要发送类似的邮件,使用Python进行自动化发送可能是最好的…

【编程实践】Google Guava 极简教程

前言 Guava 工程包含了若干被 Google 的 Java 项目广泛依赖 的核心库,我们希望通过此文档为 Guava 中最流行和最强大的功能,提供更具可读性和解释性的说明。 适用人群 本教程是基础教程,适合基础Java开发者的进阶学习。 Adding Guava to your…

美团出品 | YOLOv6 v3.0 is Coming(超越YOLOv7、v8)

&#x1f496;&#x1f496;>>>加勒比海带&#xff0c;QQ2479200884<<<&#x1f496;&#x1f496; &#x1f340;&#x1f340;>>>【YOLO魔法搭配&论文投稿咨询】<<<&#x1f340;&#x1f340; ✨✨>>>学习交流 | 温澜潮…

微博评论内容的Chatgpt 话题聚焦和情感分析 情感分析LDA主题可视化多元线性回归

为了分析热点话题背后演化的逻辑&#xff0c;本项目选取了掀起大范围讨论的OpenAI发布的语言训练模型“ChatGPT”作为研究对象。通过对微博、豆瓣、知乎等社交平台进行考察分析&#xff0c;微博以活跃用户多、讨论热度高、公众关注度广等特点成为了本小组的第一首选。因此我们决…

一个可乐瓶自制捕蟑螂神器

http://www.sohu.com/a/76621652_391472 把矿泉水瓶上端剪掉&#xff0c;边缘要平滑 然后准备一些蟑螂爱吃的食物作为诱饵&#xff0c;放进瓶子里。 把盖子拧开倒扣在瓶子里&#xff0c;瓶口要保持在正中间&#xff0c;用胶带固定&#xff0c;防止滑动。 这里我选择用竹签来固定…

如何与蟑螂为敌

版本&#xff1a;1 一&#xff0c;蟑螂以什么为食 三个月不吃、不喝可以生存 六个月不吃可以生存 二&#xff0c;蟑螂喜欢生活在什么环境 湿热的环境 食物垃圾环境 有食物鱼、虾味的环境 如果杀过或整理过新鲜的鱼&#xff0c;晚上它必到 如果杀过新鲜的虾和扔过吃过的虾…

iOS开发者如何成功的战胜北蟑螂

这一次又搬到了有蟑螂的自如。 综合之前的经验&#xff1a;蟑螂针剂&#xff0c;网上的各种自制剂都是没用的。 蟑螂屋作用有限。 网上都说蟑螂不能踩死&#xff0c;其实踩死拍死后可以再喷杀虫剂即可。 蟑螂粘板是最管用了。 如果是小桌子&#xff0c;每个腿下面放一张&…

你永远穷不过一个广东人

“ 导读&#xff1a;「一线城市不太温暖&#xff0c;但广州一定是个例外。」 ” 在中国的南方&#xff0c;生活着这样一种生物。 他们不是羊&#xff0c;却成天咩咩叫。 一会儿说自己母鸡&#xff0c;一会儿又说别人雷猴。 热爱数数&#xff0c;尤其喜欢问有几只蚊子。 同样是…

矿泉水瓶除蟑螂

试过网上说的放肥皂水和樟脑丸&#xff0c;用它们的味道驱赶蟑螂&#xff0c;几乎没有效果&#xff0c;蟑螂还是在家里。肥皂水还会把喝水的蟑螂毒死&#xff0c;飘在上面&#xff0c;感觉好恐怖啊~~ 还是这个矿泉水瓶管用!每天下班把蟑螂拿出去倒就可以了&#xff0c;既安全又…

自带谷歌“血缘”,越超Oracle,“蟑螂”成为分布式数据库新标杆?

《中智观察》第1581篇推送 作者&#xff1a;赵满满 编辑&#xff1a;小瑞瑞 头图来源&#xff1a;摄图网 Heroic labs是一家为游戏等用户提供分布式服务器架构的企业&#xff0c;满足游戏公司全球上百万用户24小时实时多人对抗游戏服务的需求。其中一项业务就是为客户从本地开发…

【生活中的逻辑谬误】稻草人谬误和无力反驳不算证明

目录 1 稻草人谬误 The Straw Man Fallacy 2 无力反驳不算证明 The Inability to Disprove Does Not Prove 【引】 在生活中避免犯逻辑谬误&#xff0c;就可以在计算相关的工作中更好地运用逻辑思维&#xff0c;目前介绍了 【生活中的逻辑谬误】对人不对事和两难陷阱_苹果二…

蟑螂随机走动问题(数据结构图问题)

一、问题概要 1.1 题 目&#xff1a; 《随机走动》 1.2 初始条件&#xff1a; 一只贪杯的蟑螂醺醺然在室内地面游荡。地面铺满方砖&#xff0c;共计m*n块&#xff0c;构成大面积矩阵。蟑螂在方砖间随机爬行&#xff0c;可能想撞大运&#xff0c;找片阿司匹林解酒。假定蟑螂从…

CodeSmith 简单使用和常用模板

1、简介 CodeSmith 是一种基于模板的代码生成工具&#xff0c;它使用类似于 ASP.NET的语法来生成任意类型的代码或文本。 2、软件布局 整体布局和visual studio系列相似&#xff0c;用过VS开发对此软件布局会很熟悉&#xff0c;加上模板语句类似ASP.NET对.NET开发人员相对友…

蟑螂背上芯片板子,组队去救人类

丰色 发自 凹非寺量子位 | 公众号 QbitAI 一头大蟑螂&#xff0c;背上“大背包”&#xff0c;和几百只同伙一同出发&#xff0c;浩浩荡荡杀到一片废墟。 这这这……是要干啥&#xff1f; 去救人&#xff01; 它们的“背包”里有摄像头、有各种传感器&#xff0c;可以检测到废墟…

Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]

1.视频演示&#xff1a; [项目分享]Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&#xff06;部署教程]_哔哩哔哩_bilibili 2.图片演示&#xff1a; 3.明厨亮灶&#xff1a; 餐饮企业的厨房卫生状况一直饱受消费者诟病&#xff0c;许多宾馆饭店大厅、包间富丽堂皇&#x…