手把手带你从0上手知识库,一个简单小案例,让你备考无忧!(就没见过这么详细的教程)

大模型向量数据库NoSQL数据库

哈喽大家好,这里是AIZ

今天为大家带来的是关于知识库的讲解,基于一个小需求,快速构建一个智能问答Agent。

picture.image

呃...这里各位请允许我稍微讲一嘴本篇文章的前情提要

其实这个想法源于前些天我自己的“苦B”备考需求,倒也不是什么天大的考试,只是再普通不过的大学生期末统考哈哈(在此也祝各位还有暑假的朋友假期玩得开心),所谓成绩高低无所谓,但相信谁都不想挂科给自己添乱吧。

而别看我是建筑学专业的,考核给人的印象可能更多的是专题设计大作业,但实际上需要背的理论也特别多,比如这学期需要考的建筑历史,好家伙,那是背了不知多少“无知”青年男女的多少日夜。

但我作为一个玩AI的,好歹得简单结合一下技术提提自己的复习效率吧,也趁着这个机会带大家上手简单的知识库操作,那这篇文章这不就来了【狗头】。

另外,在阅读这篇文章并跟着上手实操之前,需要大家注意两点:

  • 第一点:这篇文章当中对于一些在之前的内容中讲解过的过于基础和细节,以至于可能导致内容冗杂的地方,不再做过多解释,如果对Coze的基础知识和操作有需求的朋友可以看一下我之前写的这篇文章,其中对于Coze的基础作了非常细致的讲解【手把手教你从0搭建一个智能体,全部跟下来你就Agent入门了!(超详细的讲解)

  • 第二点:老话依旧:所谓致知力行,理论永远是实践的先行者。在Coze官方的定义中,知识库包含存储和管理外部数据,以及增强检索这两方面能力。其中的增强检索能力,主要依靠的是RAG技术,大家同样可以在【看懂这8个概念,你也是半个AI行业人!】这篇文章当中对其概念有一个详细的了解

好,话不多说,我们进入正题:

文件准备阶段

首先,既然是基于我们自己整理好的考点知识文件进行智能问答,那我们就先需要把这份文件准备好。

这里就以我自己考试前整理的一份外国建筑史知识点文档为例,它的原始模样是长这样的:

picture.image

而具体到实际的文档处理,其实也并不复杂,就是将文件当中的内容格式处理得尽可能条目清晰(包含清晰的问题与答案对),大家可以参考我以下整理后的形式:

picture.image

(因为篇幅原因,整理过程中部分知识点已被我删减)

知识库创建阶段

接着我们打开Coze(这里注意我们进入的是扣子开发平台,而不是扣子空间),进入到资源库界面,鼠标移动至右上角选择创建知识库。

Coze开发平台网址:https://www.coze.cn/space

picture.image

之后会弹出一个小窗口供我们选择需要创建的知识库的类型:

picture.image

刚开始我们选择创建扣子知识库就行了,然后点击“创建并导入”,之后会再弹出一个窗口供我们对知识库进行简单的设置,这里以我的为例作为展示:

picture.image

知识库的名称和描述自然不必多说。

知识库类型:因为我总结的文档是一份Word,里面是纯文字的,所以选择“文本格式”;

导入类型:因为文档存储在我自己的电脑当中,所以选择“本地文档”。

之后再次点击右下角的“创建并导入”。此时知识库已创建完成,随后正式进入到内部的设置环节:

第一步:上传

我们要做的就是根据指示上传刚才准备好的文档,上传成功后这个文档会在下方显示,然后点击下一步。

picture.image

第二步:创建设置

这一步的界面当中有很多设置选项,那就不得不进入到AIZ的专属名词解读环节了:

picture.image

文档解析策略:

这个其实从界面当中的简介便可以选择出适合自己的方式,其中“精确解析”可以从文档当中识别提取出图片、表格等元素,而这里我上传的文档当中的内容为纯文本,所以可以直接选择下面更适用的“快速解析”。

分段策略:

作用:将知识库当中的内容“切分”成各个小段,便于后续Agent能够根据用户的需求进行更高效、更精确的检索匹配

  • 自动分段与清洗: Coze平台会自动识别文档的自然分段(如段落、章节、标题),并去除无意义的空白、特殊符号等
  • 自定义: 用户可以自定义分段规则(如按特定符号、关键词等拆分内容)
  • 按层级分段: 根据文档的目录层级(如标题、子标题、段落)进行分段,保留文档的原始结构

从上面的文档整理结果大家也可以看到,我刻意用 “###” 来作为每一组问题-答案对之间区分点,所以为了识别的准确性,我们在这里选择“自定义”。

自定义当中会有一些系统预设好的“分段标识符”,其中没有我们想要的 “###” ,所以在分段标识符的下拉选项中依旧选择最下面的“自定义”,然后系统会将分段标识符默认设置为 “###” ,如果你的不是,则可以手动进行修改。

另外,自定义的设置当中还有两个概念需要大家理解:

1.分段最大长度:知识库当中“切分”出的每一小段的最大长度(大家根据自己的文档当中预计“切分”出来的最大的一段进行相应的设置)

2.分段重叠度%:“切分”出来的每相邻两个小段之间的内容的重叠区域大小(与AI能否更好地理解上下文语义相关。如果文档当中“切分”之后的段落彼此之间不具备语义、逻辑上的关联性,可以调得很低,比如10%)

配置存储:

  • 平台共享存储: 知识库数据存储在Coze平台的本地服务器或集中式存储中,所有用户或应用共享同一存储空间
  • 云搜索服务: 知识库数据通过云原生搜索引擎进行存储和索引,支持大规模数据的高效检索

考虑到云搜索服务的操作复杂性,这里我们选择“平台共享存储”即可。

按照以上的描述进行相应的设置后,就可以点击进入下一步了。

第三步:分段预览

picture.image

这一步其实就是预览通过我们前面的设置而得出的“切分”效果,像我上面图片中这样一个问题搭配一个答案分为一段的效果就是很好的。

如果你的“切分”效果不佳,可以退回到上一步多调整一些参数进行测试

第四步:数据处理

picture.image

直接等待处理完成点击“确认”即可。

这样【外国建筑史考点】这个知识库就算是创建完成了,我们可以在资源库当中查看到:

picture.image

Agent搭建阶段

到这里知识库的创建与设置就已经全部完成,接下来我们需要一个“机器人”,一个能够根据我们创建好的知识库跟我们进行问答的“机器人”,所以现在我们需要进入到“项目开发”,选择创建一个智能体,其名称及功能我是这么写的:

picture.image

随后我们进入到智能体的编辑与测试界面,位于中间的“编排”区域当中的“知识库”模块便对应到关于知识库的相关操作,我们点击右边的 “+” 选择添加我们创建好的【外国建筑史考点】知识库:

picture.image

“编排”最上方的“模型设置选择”,我试了好几个大模型,针对此次需求得出的经验是:大家直接选用默认的 “豆包·1.5·Pro·32k” 即可,效果还是比较稳定的

添加好知识库、选择好大模型之后,我们便来到最后一个搭建环节——“人设与回复逻辑”的设计。

说实话这部分是最让人头疼的,我自己就写完反复测试又反复修改,最后得出一版比较稳定的,在此附上,以便各位复制参考:

#角色你是一个考点问答机器人,能够严格按照外国建筑史考点当中的知识点对用户进行提问,以测试用户对于这些知识的掌握程度。##工作流程###步骤一:进入测试模式当用户输入“开始测试”后,进入到测试模式。###步骤二:提问选择此时已进入到测试模式,你需要在以下9个问题当中随机选择一个问题原封不动地发送给用户,向用户进行提问:古埃及建筑史四个主要的时期分别是什么?现存最早的用石头建成的金字塔陵墓是?玛斯塔巴具体是指什么?古希腊的三大柱式是哪些,以及每种柱式的特点和代表建筑分别是什么?雅典卫城的布局特点有哪些?古罗马万神庙的特点有哪些?《建筑十书》的历史成就有哪些?简述帆拱的创新点是什么?哥特式教堂的特点有哪些?###步骤三:答案分析、评价与回复1.当用户对你所提出的问题进行回复之后,你要先给出该问题的正确答案(即你所提出的问题在知识库外国建筑史考点当中所匹配到的唯一的答案),且给出的答案也要与知识库当中的一模一样,不要做任何改变!2.然后再将正确答案与用户所给出的答案进行比对,并根据两者之间的关联性、匹配度进行正确性评语(评语控制在100个字以内)与打分(满分为100分)。###步骤四:持续性需求判断在你每次给出问题的正确答案以及评语和评分之后,在最后要询问用户是否继续进行测试,如果用户的回答继续,则结束对当前题目的探讨,并从步骤二当中的9个问题再选择一个向用户继续提问(记住只是提问,不要把答案都给出来了);如果用户的回答是否定的,则需告知用户本次测试已结束,然后结束提问(如果用户后面想再次进行测试,则需要重新发送“开始测试”),退出测试模式。##限制###测试内容的强制性要求在测试环节中,用户每一次回答你所提出的问题后,你所给出的回复当中的正确答案必须来源于外国建筑史考点,且严格按照外国建筑史考点当中的内容进行回答,并且要原封不动、不得做任何删减、增加以及修改!###偶然性的避免因为在测试环节中我们总共只设置了9个问题,所以在与用户对话的过程当中,你要确保每9次提问所提的问题都是不一样的。

|

这里需要注意的一点是:在编写“人设与回复逻辑”时,如果需要指定某个知识库(就比如上面用蓝色区分出来的就是我们需要指定的知识库,也可以看下图),需手指按住键盘上的“Shift”,然后按一下“{”,这样界面就会弹出一个知识库选择小窗口,大家就可以选择想要指定的那个知识库进行添加。

picture.image

当然大家也可以根据官方提供的提示词模版进行撰写,但说到底书写的原则便是:明确、详细、逻辑清晰

picture.image

到此,智能体搭建完毕,我们来进行简单的对话测试:

依照编排好的人设与回复逻辑,现在我直接发送“开始测试”进入到“测试模式”,接着它会为我随机抽取一道题,我直接回复“不知道”:

picture.image

可以看到Agent基于我的“不知道”返回给出的正确答案与知识库当中的是一样的,并且所给出的评语和评分也很合理。

接下来我们继续测试,然后根据其给出的下一个问题,我们直接复制知识库当中的标准答案进行回答,看看会有什么结果:

picture.image

可以看到结果也是正确的,如此循环测试,就可以提高自己的复习效率、强化对知识点的熟悉程度了哈哈。

最后想要提醒大家的是:这一次我们并没有选择搭建复杂的工作流,而是直接以“知识库”+“大模型”这种最便捷的方式来实现我们的需求,目的是以上手知识库为主,所以这里就面临着一个问题:即最终搭建出来的Agent有时候回复的内容会很奇怪(比如你明明给出答案了,它却像没有接收到一样...),这都是很正常的情况(不过出现的概率也很低)主要原因归结于以下几点:

1.底层大模型能力的欠缺

2.“人设与回复逻辑”的有待优化

3.目前知识库相关技术的不成熟

好了,今天的分享就到这里,在此感谢你的浏览。

最后,如果你喜欢我的文章,欢迎点赞、转发和关注;如果我的文章能为你提供一点价值,那将是我的万分荣幸,在此感谢每一位读者🙏

AIZ荐读

我的7000字长文自述:人人都需要AI的时代,我们一起成长!

一篇文章给你讲清楚:如何用DeepSeek快速制作各类图表(超详细)

手把手教你从0搭建一个智能体,全部跟下来你就Agent入门了!(超详细的讲解)

AI绘画这些概念你知道多少?具体是什么含义?一篇文章告诉你

自从学了AI,我患上了“浏览器恐惧症”...但,现在我的病好了!(超详细的经验分享)

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎 EMR 基于 Proton 的存算分离实践
EMR 团队针对这些挑战自研了 Proton 加速引擎,深度优化对象存储读写能力,与 Hive/Spark/Trino 等计算引擎集成后,在不改变用户使用习惯的前提条件下,可提供对象存储数据集的透明加速服务。在离线场景下,其性能基本持平存算一体架构。本次分享将介绍 Proton 技术能力和最佳实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论