分享下cos知识库和记忆组件。企业有内部数据,AI基于大模型预训练数据,缺垂直领域知识。若让AI懂业务并整合,可建知识库,扣子有该功能,支持上传存储外部知识。比如客服知识库,有银行问题问答。希望AI学行业知识,回答问题参考库内容而非原有知识。
这叫rog技术,外挂知识库可解决大模型幻觉及专业知识不足问题,提升回复准确率。扣子知识库有两能力:一是存储管理外部数据,能基于cos上传管理文档;二是检索增强,支持多种数据源格式,如本地文档、在线数据等,上传后自动切分存储,还能自定义分片规则。
扣子知识功能有多种检索方式,如全文检索,大模型据召回内容生成回复。知识库应用场景广泛。首先,补充语料,比如创建虚拟形象与用户交流,在知识库保存其相关语料数据,后续智能体通过向量召回相关语料,模拟形象语言风格回答。
其次,客服场景中,把用户高频问题、产品手册内容上传至cos知识库,借此精准回答用户问题。垂直领域方面,创建含汽车详细参数的知识,如查询车型油耗时可召回识别。
实操时,在资源库找知识库模块,有文本、表格、图片等类型。先用文本数据,如“智能客服知识库”,上传文档创建导入。已创建知识库后拖拽文档上传,下一步它会提取关键要素,耗时久,PDF涉及图片需OCR及表格处理,markdown同理。若无需提取图像表格,选呈文本即可。TXT文档无需考虑精准解析,用快速解析。分段策略按自动分段与清洗规则就行。按他要求,若有特殊需求,比如换行服务,像两个换行句号叹号这类,一般依换行服务分段,每段最大 800 字符。重叠度约 10%,即分段时,后一段与前一段有 10%内容重叠。因召回知识库片段时,可能因 token 超上下文限制丢内容,重叠 10%可避免上下文丢失,但重叠度不是越高越好,高了会数据冗余,不关心可选自动分段清洗。
配置存储能用云搜索服务,可私有云私有化,不想存默认存储就选平台共享存储,点下一步可预览原始文档分段逻辑,分完段去除非文本内容。再点下一步处理,剩余六分多钟,等上传完看处理效果,行业垂直领域要传行业知识库。
知识是给智能体或工作调度用的静态数据,检索时作参考,终端用户无法改;记忆是智能体运行中应用的记忆功能,多与绘画相关。比如说你跟智能体绘画聊天时,有上下文对话记录,还有传过来的参数变量。节点工作流中,每个节点都有数据传递,这就涉及记忆。
有些数据像上下文、生成内容,想保存到数据库,还希望有长期记忆,记住用户画像等。这些是智能体终端用户使用时产生的动态数据,不支持跨智能体使用。比如智能客服的记忆就只在其自身应用里。但知识库能被多个智能体引用,是公共的。
以租房平台智能体为例,知识存储周边房屋信息等,由开发者维护,用户只能看不可改,可跨智能体系用。记忆是用户个人相关数据,如楼盘喜好等,按智能体隔离。
知识库类型主要有三种。文本型用于知识问答,表格型做数据分析,可导入CSV等数据,图片类用于生成、识别及标注等,导入方式多样。内容分段有自动和手动,表格按行分片。索引用于表格数据,通过内容比对找相似度最高项生成。图片需标注,明确内容以便后续匹配。
知识库暂不支持多人写作,仅管理员和团队所有者能修改,普通人无权限。创建知识库在资源库右上角选知识库,可按类型上传,我已创好文本、客服知识库,大家可按步骤上传。
扣子对知识库有使用限制,数量上1000个数据库、300个文件,文件大小因版本而异,专业版10GB,技术版1GB,上传大文件看官方文档。库中涉个人隐私如邮箱地址等会被屏蔽,注意数据安全。
我创建了文本知识库,流程如分段解析等,除文档外,微信公号、nation、飞书等也支持导入。
配置时可选不同分段策略,PDF、含图片的表格或word文档等一般选精准解。那得用精准解析才能拿到完整内容,快速解析是纯文本,速度快些。分段策略本地上传文件时自动分段清洗,一般选自动就行,特殊要求就自定义分段配策略。
配置存储能存云平台或企业私有化服务器。在线数据主要是爬取采集,飞书文档使用方便,公众号导入地址就行,还能自定义数据采集解析。
知识库咋用在智能体里呢?先创建智能体,比如随机生成个银行智能客服智能体。让它自动化生成效率高,有自定义内容,标准版也可。左边提示词都弄好了,包含角色等,不满意可优化。技能一是解答业务问题,没知识库效果可能不好,之后要配知识库。技能二是提供服务咨询相关逻辑,比如用户咨询开户流程等。其他的等等。那我们要给出一些建议,这是它的一个技能。限制就是仅回答与银行业务相关的问题,其他不回答,给智能体做限定。
比如作为银行客服,问如何查询账户余额,结果是说网上银行、电话银行,其实还有APP没说。再问如何修改账户密码,答得有点多,知识库还没用。等配上知识库再看,效果不同,答案比较泛。现在要做的是弄上知识库,找到知识库地方,选文本添加,创建客服知识库。
长期记忆开启,不是文件盒子,选知识库文本加。有了客服知识库后,再问如何修改账户密码,它会搜索知识库,把分段内容匹配出来,比如这段关于修改密码的。
这里用到向量检索,靠相似度匹配,底层把文本转成向量,就像二维坐标有点A、B,向量就是把文本转成类似二维坐标的东西。A点可能代表文本中的某个词,B点代表另一个点。计算它们的相似度,即AB两点间的夹角是否接近1,这就是余弦相似度。接近1意味着坐标相近;若度数相差远,如0.1,则说明无相关性。
还有欧式距离,计算两点间的直线距离。距离小则说明它们接近,这叫相似度匹配。可以把向量理解为坐标,比如“如何修改账户密码”这个问题会转化成一个向量。知识库里的内容也是一堆向量,如V1、V2、V3等。系统会匹配这些向量,找出相匹配的,再转换成文本输出。
那为什么能精准找到这句话呢?因为做了top k排序,就是召回率和评分度最高的优先。内容会排序,比如一0.99,二0.80,三0.60,最终保留最接近的那个。这就是相似度匹配的逻辑,为什么要用知识库?因为它效果好,能做语义识别。
有同学问,为什么不用传统数据库?传统数据库做模糊匹配没问题,但做相似性匹配就不行。因为词可能搜不到,但语义接近也能匹配出来,这叫语义匹配。这里面的逻辑就是做了相似匹配,这个叫相似度。
知识库也可以做各种管理。在这个资源库中,知识库可编辑、添加、修改,能进行停用等管理操作,选用不同知识库处理也没问题,功能较全,大家可体验。
再说记忆,扣子中有四块与记忆相关。首先是变量,之前分享过扣子工作流,里面有变量传递。比如从工作流输入内容为变量input,调用大模型时通过该变量传递,在用户提示词处用双层花括号写变量,大模型接收后作为输入参数调用。
调用大模型后得结果,对话时有变量传递且有记忆功能,还能记录绘画。系统也有变量,如用户唯一ID、物理位置、飞书绘画ID等。还可创建变量,默认能用系统变量,输入等也可自行添加。比如说现在在这个智能体里,回到刚才那个智能体中。看这里有个变量,能添加。比如要用户唯一 ID、经纬度及用户信息全局变量,加进来后启用才能获取,不启用读不到,还需输入。在智能体应用里可加变量逻辑,类似记忆。
还有数据库,用于存对话记录、业务数据等。比如采集用户聊天信息,可在此处添加数据库,基于模板创建实例。随便创建个数据库,能加数据,像智能客服场景,用户聊完问题,数据可存进数据库,两者可关联,数据能保存。
手动新增数据后,聊天时也可采集数据并保存,一般用于用户填表单等记录信息时。要创建数据表格来存储数据,还可做数据关联,具体要配置,把逻辑关联好。比如生成时间数据,单独建表存储,作为记忆内容。比如选已存数据库,查看底层,找GG存数据库位置。提示词可添加使用数据表描述,如将用户数据准确记在day experience表,定义好列名等。要优化提示词,还需把聊天数据存数据库,看它优化情况。聊天记录要存reading notes,测试能否保存,问问题看结果。
已调用数据库,聊天记录成功保存。换视图看,有用户询问改密码记录。清空后,再问联系客服及保存数据,答案给出后能保存。
看数据库结果,两个问题记录都进来了,历史数据notes完整,数据结构有调整,表结构未大改,还加了其他内容。好,这是数据库记忆和长期记忆。在提示词里可开启长期记忆选项,开启后能总结聊天内容,更好响应用户数据,会记住整个对话记录,关联上下文。长期记忆可召回,作为知识库匹配逻辑。长期记忆也能管理关闭。
还有文件盒子,是cos能力之一,提供多模态数据合规存储,开启后能上传文件,有加号。智能体可自动保存文件,文件也成记忆逻辑一部分,历史文件可作聊天内容传递。
以上就是cos智能体记忆与知识库组件分享。有帮助欢迎一键三连,关注反馈促我更新,评论区回复666领个人资料,下期见。