大家好,我是安图新!是某科技公司的一位系统架构师。在今年年初开始,我就一直倒腾各种新的 AI 技术,为的也是给自己的日常工作提高效率,同时看看自己有没什么其他好的发展机遇。
从 ChatGPT4.0 的诞生开始,我自己就深深切切感觉到 「下一个“IPhone”时代即将要萌芽开始了,作为一个普通人,不在什么大厂,没有什么厉害的资源,有的只是一直陪伴着我多年的技术和代码,还有一些志同道合的朋友,但起码现在我还发现了对于我这个人生新的机遇——AI大模型!」
为此,除了平常工作时间,其他闲暇时间我都在研究各种 AI 大模型和相关的技术实现以及落地方式,在跌跌撞撞的大半年时间,我发现 AI 的确提高了我很多工作学习上的效率,但我渐渐也发现,与 AI 对话的过程中,我总是要花不少时间去解决以下问题:
- 要 AI 更精准地回答你的问题,需要 「花很长时间组织问题的上下文背景进行提问」 ;
- 「对话框之间的问题上下文背景不能复用」 ,只能在对应对话框延续对话(导致问题 3 的出现)或者自己人工复制整理重新放到新的对话框提问,导致无效的重复性操作;
- 在一个 「对话框过多轮对话后,AI会忘记你一开头你说的问题或内容」 (因为 「AI大模型的短期记忆上下文是有限制的)」 ;
这些的这些,其实都反映了目前的 AI 应用,尤其是 「单纯对话交互式 AI 都有一个通病」 —— 「不能持久化保存和使用相关上下文和背景」 。
毕竟,像 ChatGPT 这种已经基本上有了全人类知识作为预训练数据的大模型,对于人类现有知识理论的解读是基本没问题的。但有有两个方面的数据, 「AI大模型是永远不能提前预训练」 的:
- 「实时性事件」 (ChatGPT 的预训练数据最新只有到 2021 年 9 月左右,这个时间后的事情大模型是一概不知道的);
- 「个人/企业相关数据」 (只有你自己或者企业内部才知道的数据);
这就引出了今天的主题 -** AI知识库**来了。那什么是 AI 知识库呢?以下我就着重高亮我们需要了解的内容即可了。
AI 知识库是一个存储和组织知识的系统,它可以帮助人工智能系统更好地理解和处理信息。在 AI 知识库中,知识通常以结构化的方式组织,例如图表、表格或逻辑规则,使得机器能够有效地查询和利用这些知识。
- 「结构化知识」 :AI 知识库通常包含结构化的知识,例如关系数据库中的数据,它们可以清晰地表达不同实体之间的关系和属性。
- 「非结构化知识」 :除了结构化知识,AI 知识库也可能包含非结构化的知识,例如文本文档、图像、视频等,它们可以通过自然语言处理技术来分析和理解。
- 「知识表示」 :知识库中的知识需要以一种机器可读的方式来表示。常见的知识表示方法包括本体论(Ontologies)、逻辑规则和图结构等。
- 「知识获取与更新」 : 「AI知识库不是静态的,它需要通过各种方式来获取新知识和更新现有知识。这可以通过机器学习、人工标注或者从外部数据源中导入数据来实现。」
- 「知识推理」 : 「有了知识库,AI系统可以进行知识推理,通过现有的知识来解决问题或生成新的知识。」
- 「应用场景」 :AI 知识库广泛应用于各种场景,包括但不限于 「问答系统、推荐系统、自然语言处理和语义搜索等」 。
好处
在当前 AI 的发展阶段,确实不是所有的个人或企业都有足够的资源去从头训练大型的模型。但是,通过利用现有的大模型,我们完全可以 「低成本构建出适合个人或企业的 AI 知识库」 。下面是一些通过建立 「AI 知识库可能带来的好处」 :
-
「提高效率」 :
-
「自动化处理数据」 :通过 AI 知识库,可以自动化处理大量的数据和信息,节省人力资源。
-
「快速检索」 :AI 知识库可以帮助快速检索到所需的信息,提高决策效率和执行速度。
-
「增强决策支持」 :
-
「数据驱动决策」 :基于 AI 知识库的深度分析,可以为决策提供数据支持,使决策更加精准和有效。
-
「预测分析」 :利用知识库中的历史数据和模型,可以进行预测分析,为未来的决策提供参考。
-
「改善沟通」 :
-
「共享知识」 :通过建立统一的 AI 知识库,可以实现知识的共享和传递,减少沟通成本。
-
「语义理解和自然语言处理」 :利用现有大模型,AI 知识库可以帮助理解和处理自然语言,提高沟通效率和质量。
-
「降低成本」 :
-
「减少重复劳动」 :通过自动化和智能化的处理,可以减少重复的人工劳动,降低运营成本。
-
「长期知识积累和管理」 :
-
「知识的持续积累」 :AI 知识库可以帮助个人和企业持续积累和管理知识,形成长期的竞争优势。
-
「知识的保护和传承」 :通过系统的知识管理,可以保护知识资产,实现知识的传承和利用。
废话就不说那么多了,今天我们就来主要说说如何搭建属于自己的 AI 知识库吧。这次的搭建,我们主要会用到以下两个东西:
- 「FastGPT」 (一个国内自研开源的 AI 知识库解决方案);
- 「OpenAI API Key」 (使用 OpenAI ChatGPT 服务必需的认证 API Key,没有黑魔法的话,可以用其他平替,等下我会介绍);
小白扫盲 (技术大牛可以跳过)
FastGPT
FastGPT 是一个对国内以及小白交互都非常友好的工具,可用于构建个人或企业内部的 AI 知识库系统。以下是 FastGPT 的一些特点和好处:
- 「基于大型语言模型」 :
FastGPT 基于大型语言模型(LLM)和 Transformers 构建,能够处理复杂的文本生成和问答任务。
- 「高效的文本处理」 :
与许多其他知识库问答产品不同,除了常用的一些数据导入方式外,FastGPT 还可以采用 QA(问题-答案)对进行存储,而不仅是文本分块处理。这种方法可以减少向量化内容的长度,使向量能更好地表达文本的含义,从而提高搜索的精度。
- 「开箱即用」 :
FastGPT 提供了一些开箱即用的功能,如数据处理和模型调用,它能通过 Flow 可视化进行工作流编排,实现复杂的问答场景。
- 「易于定制和本地化部署」 :
FastGPT 允许选择不同的模型,并支持本地化部署。用户可以轻松地上传 PDF、Word、md 等文件,进行自定义的 AI 模型训练。如果用户拥有自己的 OpenAI 账号的密钥,平台本身还完全免费使用。
OpenAI API Key
OpenAI 的 OpenAPI Key 是一个特殊的代码串,它允许用户访问和使用 OpenAI 提供的 API(应用程序接口)。OpenAI 是一个知名的人工智能研究机构,它提供了多种基于云的 AI 服务,这些服务可以帮助开发者构建和运行各种 AI 应用。
这里是一个简单的比喻:想象一下 OpenAI 的 API 是一个大型的智能工具箱,而 OpenAPI Key 就像是打开这个工具箱的钥匙。只有拥有这把钥匙的人,才能打开工具箱,使用里面的工具来构建或运行自己的项目。
- 「访问控制」 :
- OpenAPI Key 是你访问 OpenAI 服务的凭证,每个 Key 都与一个特定的用户或应用程序关联。
- 通过这个 Key,OpenAI 可以验证你的身份,确保你有权限使用它们的服务。
- 「安全性」 :
- OpenAPI Key 需要保密,因为任何人拥有你的 Key 都可以使用你的账户来访问 OpenAI 的服务,可能会产生费用。
- 通常,你应该在服务器端保管你的 Key,而不应该在客户端或公开的代码库中暴露它。
- 「使用记录和计费」 :
- OpenAPI Key 也用于记录你使用 OpenAI 服务的情况,例如你调用了多少次 API,用了多少计算资源等。
- 根据你的使用情况,OpenAI 会对你的账户进行计费。
通过 OpenAPI Key,开发者可以方便、安全地使用 OpenAI 的资源,为自己的项目或企业带来价值。
搭建方式
这次我先选择以最简单的搭建方式让大家上手,直接使用 「官方 FastGPT公有云服务」 的方式。如果大家之后对 「企业内部私有部署」 ,或者是 「自建内部大模型服务」 ,来进一步 「降低使用成本和提高数据安全性」 有兴趣的话,我会再编写相关的教程分享给大家。
开始搭建
注册获取 OpenAI API Key
因为国内想使用 OpenAI 相关服务的话,需要一些黑魔法,所以这里推荐使用国内的一些平替服务,比如接下来我们要使用的 「NextAPI 服务」 :
- 首先在这个 NextAPI 注册一个自己的账号, 「直接点击登录」 :
- 直接填写你要注册的邮箱账号,系统会检测你这个账号是否有注册过,没注册过就需要你接收注册邮件进行下一步注册,注册过就直接登录了:
- 当你注册成功后回到首页,应该会看到类似的页面,这时候就证明你注册成功了!
- 接下来我们就来创建一个默认的 API Key 吧,下滑到类似以下这个界面,点击创建一个新的密钥:
- 点击后,里面的所有选项默认即可,然后在密钥备注取个名称,方便以后分类使用,因为你的账号是可以创建多个密钥的。
- 创建成功后,你就能看到类似下面的界面,你的 API Key 已经创建成功了!点击其中的复制就可以拿着你的 API Key 放在后续的步骤中使用了。
- 这里的最后一步,在首页这里,顺便复制一下这个平替服务的访问地址,加上
/v1
的路径名,即https://api.nextweb.fun/openai``/v1
,是预留给之后调用 OpenAI 服务时预设配置使用的。
注册 FastGPT 知识库账号
- 访问 FastGPT 的登录注册界面,先自己注册一个账号,具体访问地址:https://fastgpt.run/login
- 当你注册成功登录后,看到以下界面,证明你已经账号创建成功了!
FastGPT 部署流程
这次的部署流程,我就 「以最简单的使用方式去演示一遍,为的是想先让小白也能轻松上手」 ,相关的高级用法如果大家有兴趣,我下次可以再写相关教程细化来讲讲的。
预设 OpenAI API Key
- 进入这个账号设置页面,并且点击下图序号 1 的按钮进行预设。
- 点开后,就看到以下输入栏,按照下图提示填写保存即可。
- 除此以外,还可以点击子步骤 1 的充值按钮,就可以看到具体模型的调用费用和充值界面,你可以先小面额充值试试手,当然拿着官方送你的 2 块钱先玩玩也是可以的。
- 至此,预设 OpenAI API Key 就大功告成了。
创建第一个自己的知识库
- 点击知识库图标按钮进入知识库列表,点击右上角的创建按钮,出现一个下拉框,再点击“知识库”开始创建第一个自己的知识库吧。
- 填写以下信息并点击创建。
- 创建成功后,会自动进入这个知识库的编辑界面,如下图。
- 点击右上角“新建/导入”按钮,弹出下拉框,选择“文件导入”开始导入我们的数据。
- 在弹出的文件导入界面,我们可以看到以下功能,接下来一一解读下:
- 「支持的文件导入格式」 - 「支持txt/doc/docx/pdf/md格式」 , 「甚至是网页链接」 也是可以的,导入网页链接的话,系统会去访问你所需的网页链接爬取页面内容进行导入,目前支持一次导入 10 个网页链接。
- 「直接分段」 - 因为 「数据嵌入模型」 一次是有 「token 长度限制」 的,所以对于导入那么多数据文件的话,系统会自动用
句子分词器
将这些文件内容打散分开成一段段内容再去导入,以满足导入 token 长度限制。 - 「QA 拆分」 -** FastGPT 特有的数据导入功能**,一样是使用
句子分词器
将文件内容打散,但是 「每一个内容长度会比直接分段的要长得多」 ,因为每一段 「内容在真正导入知识库前会先使用语言大模型(LLM)进行学习转变成多个关于当前内容的问答对,以此提高内容的匹配检索能力」 。但这个 「QA 导入功能随之带来的问题是 Token 的调用成本会比直接分段的高一些,毕竟导入前还要调用下大模型学习」 ,所以自己在导入前可以先衡量一下。 - 「CSV导入」 - 按上图所示,这个主要是给你之前导出过知识库问答对数据的文件再 「导入到其他知识库或者迁移时候用的」 。
- 基于上述每个导入功能理解,这次我们就直接来使用 QA 拆分的方式进行数据导入,按着上图所示导入你需要领域的资料文档,然后就可以看到导入相关文件预估的调用成本,如果成本觉得没问题,点击“确认导入”即可。
7. 关于导入的内容,可以是你自己一直学习记录的笔记文件,也可以是你公司不同部门的相关业务资料文档,这样做的目的,为的就是让你可以 「通过强大的大模型AI能力结合你现在的知识库,在你提问时,更精准有效地输出你想要的答案。放在个人使用,可以提高你的个人工作学习效率,而放在整个公司团队使用,可以提高的就是整个团队的协作/信息同步效率,这可是 1+1>2 的效果」 。至此,你的第一个知识库就已经创建成功了!
创建第一个自己的 AI 对话应用
- 基于上一部分创建的第一个 AI 知识库,接下来我们就可以基于它来创建自己的第一个 AI 对话应用吧。首先回到主界面,点击左边栏的应用图标按钮,然后再点击右上角的“新建”按钮。
- 点击“新建”按钮后会出现以下的表单框,为这个应用起个名字,这次我们选择默认的 「知识库 + 对话引导」 的模板即可,这个目前更普遍符合大家使用。
- 创建成功后,我们会去到这个新应用的具体编辑页面,这次我们就继续往简单的来,只需要操作以下图示的步骤即可,关于其他高级用法,我会之后再分享讲解。
- 完善这个 AI 应用的开场白,按你喜欢的来就行;
- 选择不同的 AI 模型进行对话,因为目前不同 AI 模型,效果和优缺点都有一点差异,具体可以上网搜索对比一下,现在就选默认就好。当然你有兴趣可以点开这个下拉框,就可以看到目前支持的所有大语言 AI 模型,当然了,费用也是有所不同的哈哈;
- 这里就是可以直接关联我们刚刚创建的数据库了,点解对应右边的“+ 选择”按钮进行关联即可,关联后的结果类似下图所示:
- 最后修改好上述的设置,记得点击这里保存并开始预览哦。
- 保存成功后,你就可以开始试用自己新鲜出炉的 AI 应用了!
使用 AI 知识库应用
经过上述相关的搭建步骤后,你就可以点击主页面的对话图标按钮来使用你的 AI 应用进行对话使用了!
- 比如我演示导入的知识库文件是一个关于 DevOps 部署策略的讲解,我就可以问一下相关的问题,并等待它给出答案:
看到上面的答案吗?AI 已经引用了我们的知识库的内容来回答这个问题了,而且底下还有几个值得注意的提示:
- 「5条引用」 - 这里说明了这次答案AI具体引用了以下内容,你可以直接点击打开看看,这样你就能知道你的知识库内容匹配的精准度够不够高了。
- 「2条上下文」 - 这里显示的内容是AI通过你的知识库匹配到最符合的QA问答对内容后,结合你刚刚提的问题形成一个真正提问给大模型AI的提示词(Prompt)来获取答案,这不就是我们目前大模型AI常说的提示词工程吗!所以大多数AI的概念和逻辑其实是相通的,关于具体深入的技术点,在这次小白教程我就不细说了,先卖个关子哈哈。
- 如果发现AI调用你的知识库的命中率不够高,你当然可以录入更多相关的资料文档到知识库来再次测试,直到你满意为止。当然还有一个更好的方式,那就是基于 「知识库的AI微调」 ,这次就不展开说了,因为也是比较进阶的玩法哈哈,这次教程主要是小白上手嘛,不要跑题了~
这次上面的教程看来我还是埋了很多伏笔的哈哈,主要都是些进阶的技术点,所以我就打算放到下一期的分享再慢慢细讲,下期的分享大概可以分以下几个方面:
- 「微调 AI 知识库的内容;」
- 「微调AI应用的输出内容;」
- 「AI应用其他类型的应用场景;」
最后,希望这次教程可以真真切切帮到小白的你们建立属于自己的 AI 知识库 (技术大牛也可以给些建议给小弟改进改进 🙏🏻, 十分感谢),迎着这股 AI 的势能和机遇,共同探索未来的无限可能,为自己和社会创造更多的价值。