免费POC, 零成本试错
AI知识库

AI知识库

学习大模型的前沿技术与行业落地应用


收藏

FastGPT:利用大模型重新定义传统知识库

发布日期:2024-08-22 12:38:43 浏览次数: 5631
作者:AIOps自动化运维

微信搜一搜,关注“AIOps自动化运维”


引言

传统知识库的痛点

传统知识库广泛应用于企业文档管理、客户支持等场景,但随着信息量和复杂度的增加,存在以下显著问题:

  • 数据难整合:结构化与非结构化数据分散,更新维护成本高。

  • 检索不精准:依赖关键词匹配,难以理解语义,导致检索结果不相关或无效。

  • 用户体验差:操作繁琐、学习曲线陡峭,缺乏智能和个性化支持。

AI时代对知识库需求

在信息爆炸和数字化转型背景下,企业需要更加智能的知识库。结合AI大模型的知识库具备以下优势:

  • 语义级检索:通过语义理解,提供精准的查询结果。

  • 智能交互:支持自然语言对话,用户体验更佳。

  • 自动化维护:实现数据的自动整合与更新,降低维护成本。


在大模型的加持下,让以上问题有了新的解法,今天我们来介绍FastGPT如何利用AI大模型重新定义传统知识库。


01.

FastGPT知识库工作原理

 01  FastGPT简介

FastGPT是一个基于大语言模型(LLM)的智能化平台,擅长理解和处理自然语言。它通过深度学习技术,可以从各种数据源中自动提取和整合信息,生成语义丰富的知识库,并实现智能化的响应和检索。

 02  FastGPT知识库工作原理

  1. 数据预处理:将文本拆分成更小的片段,比如:句子、段落。

  2. 文本向量化:利用大模型生成语义高维向量。

  3. 索引构建:将生成的语义向量构建成索引,通常包括向量索引和倒排索引。索引有助于快速检索相关片段,提高响应速度。

  4. 检索与匹配:当用户查询时,查询内容也会被向量化,并在索引中匹配相关的语义向量

  5. AI对话:利用大模型的上下文理解能力,理解用户需求,生成自然回答。



02.

搭建FastGPT知识库步骤

我们先来看一张FastGPT的部署架构图,主要包括FastGPT、MongoDB、PostgreSQL、OneAPI:


FastGPT有多个版本,分别为PgVector、Milvus、zilliz cloud,分别对应不同的配置要求,如下图:


文本仅作演示,因此选择PgVector版本


前置工作

Step1 确保网络环境 

如果使用OpenAI等国外模型接口,请确保可以正常访问,否则会报错:Connection error 等


Step2 准备 Docker 环境 

# 安装 Dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsystemctl enable --now docker# 安装 docker-composecurl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose# 验证安装docker -vdocker-compose -v# 如失效,自行百度~

开始部署 

Step1 下载 docker-compose.yml 

所有 docker-compose.yml 配置文件中 MongoDB 为 5.x,需要用到AVX指令集,部分 CPU 不支持,需手动更改其镜像版本为 4.4.24(需要自己在docker hub下载,阿里云镜像没做备份)

Linux 快速脚本

mkdir fastgptcd fastgptcurl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
# pgvector 版本(测试推荐,简单快捷)curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml# milvus 版本# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml# zilliz 版本# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml


Step2 启动容器 

在 docker-compose.yml 同级目录下执行。请确保docker-compose版本最好在2.17以上,否则可能无法执行自动化命令。

# 启动容器docker-compose up -d# 等待10s,OneAPI第一次总是要重启几次才能连上Mysqlsleep 10# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)docker restart oneapi

Step3 打开 OneAPI 添加模型 

简单说明一下OneAPI的作用和原理,这里可以把OneAPI当作一个接口网关:

  • 默认情况下,FastGPT 只配置了 GPT 的模型,如果你需要接入其他模型,需要进行一些额外配置。

  • One API 是一个 OpenAI 接口管理 & 分发系统,可以通过标准的 OpenAI API 格式访问所有的大模型,开箱即用。

  • FastGPT 可以通过接入 One API 来实现对不同大模型的支持

通过 ip:3001访问OneAPI,默认账号为 root 密码为 123456。

在oneapi中添加合适的AI模型渠道,如果搭建服务器可以访问openai,则可以跳过此步骤.

如果想使用国内大模型或者本地部署的模型,下文会涉及。


Step4 访问 FastGPT 

目前可以通过 ip:3000 直接访问(注意防火墙)。登录用户名为 root,密码为docker-compose.yml环境变量里设置的 DEFAULT_ROOT_PSW。



02.

接入国产大模型


如果无法科学上网,或者想接入国产大模型,甚至知识库可能设置一些敏感数据,想接入本地大模型的,可以参考本章节,这里以接入国产大模型为例,接入本地大模型类似。

FastGPT可以统一接入不同模型的核心原理,是借助了另一个开源项目的能力:oneapi

项目地址:https://github.com/songquanpeng/one-api


Step1 打开oneapi,添加渠道

因为这里只是做演示用途,我们可以使用阿里灵积提供的免费开源大模型

模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models

我们这里使用 qwen1.5-1.8b-chat 作为文本处理模型,text-embedding-v2 作为索引模型(文本向量)

密钥获取地址:https://dashscope.console.aliyun.com/apiKey


Step2 测试渠道

添加 text-embedding-v2 渠道方法同理


Step3 修改FastGPT配置文件

测试通过后,我们需要修改FastGPT的配置文件,然后重启FastGPT

打开 fastgpt/config.json,在llmModels下添加 qwen1.5-1.8b-chat 的配置,注意 datasetProcess 需要设置为 true,如下图所示:

{"model": "qwen1.5-1.8b-chat","name": "qwen1.5-1.8b-chat","avatar": "/imgs/model/openai.svg","maxContext": 32000,"maxResponse": 2000,"quoteMaxToken": 120000,"maxTemperature": 1.2,"charsPointsPrice": 0,"censor": false,"vision": true,"datasetProcess": true,"usedInClassify": true,"usedInExtractFields": true,"usedInToolCall": true,"usedInQueryExtension": true,"toolChoice": true,"functionCall": false,"customCQPrompt": "","customExtractPrompt": "","defaultSystemChatPrompt": "","defaultConfig": {}},

在 vectorModels 标签下添加 text-embedding-v2

{"model": "text-embedding-v2","name": "text-embedding-v2","avatar": "/imgs/model/openai.svg","charsPointsPrice": 0,"defaultToken": 1536,"maxToken": 2048,"weight": 100},

重启FastGPT

docker-compose downdocker-compose up -d

Step4 创建知识库

打开FastGPT,点击左侧“知识库”,右上角点击“创建”


选择“通用知识库”


文本处理模型选择刚刚配置好的 qwen1.5-1.8b-chat,索引模型选择 text-embedding-v2


创建完成后,进入知识库,点击创建/导入,这里以导入文本数据集为例


这里准备了一个docx文本数据,这里描述了发生故障的时间和根因。实际操作中,可以使用企业内部沉淀的学习资料,故障复盘等、操作手册等


导入时,选择“本地文件”


数据处理方式

关于训练模式的选择:
  • 直接分段:将文本按一定的规则进行分段处理后,转成可进行语义搜索的格式,适合绝大多数场景。不需要调用模型额外处理,成本低。
  • 增强处理(实验):通过子索引以及调用模型生成相关问题与摘要,来增加数据块的语义丰富度,更利于检索。需要消耗更多的存储空间和增加 AI 调用次数。
  • 问答拆分:根据一定规则,将文本拆成一段较大的段落,调用AI 为该段落生成问答对。有非常高的检索精度,但是会丢失很多内容细节。


上传数据


创建应用

点击工作台,创建“简易应用”


填写应用名字,选择“知识库+对话引导”


创建成功后,进入应用,修改AI模型:qwen1.5-1.8b-chat


选择AI模型

可以根据需要调整模型温度、回复上限、和聊天记录数量


关联知识库


选择刚刚创建的知识库


发布应用


问答测试

选择我们刚刚创建好的应用,就可以开始聊天了


我们尝试提问某天发生了什么故障,以及根因是什么?


可以看出,FastGPT根据知识库给出了准确答案,根据AI进行了扩展,问答下方有标注答案应用的出处


点击回答下方的查看详情,可以看到知识库的工作流程。

首先,FastGPT会根据将用户提问的问题交给向量模型做向量化,然后匹配本地知识库索引


结合上下文发送给AI大模型,生成自然语言的回答。



这里再简单说明下使用文本向量作为索引模型的原因:

文本向量的原理

  1. 什么是文本向量:可以把文本向量想象成一个由数字组成的“坐标”,用来表示一句话或一段文字。比如,假设我们把每句话都放在一张巨大的地图上,这些数字就是地图上表示它们的位置。
  2. 为什么要这样做:当两句话的意思很相似时,它们的“坐标”会在地图上靠得很近;如果意思差很多,坐标就会离得远。这种方式能帮助计算机理解哪些句子在说同一件事。
  3. 如何生成这种“坐标”:生成这些坐标的方法有很多,比如通过机器学习,让计算机“读”大量的文本,学会用数字来表达语义信息。这样一来,计算机就能理解一些复杂的语言含义,而不仅仅是词语的表面意思。

FastGPT知识库使用文本向量的原因

  1. 更聪明的搜索:传统的搜索只能匹配关键词,如果用户的提问和知识库中的表达方式不完全一样,可能找不到正确的答案。而用文本向量,系统可以理解提问的真正意思,即使用词不同,也能找到相关的答案。
  2. 应对不同的说法:人们表达同一个意思的方式可能千差万别。文本向量能让系统识别这些不同的表达,从而更好地理解用户的问题。
  3. 更灵活:随着知识库中的信息增加,文本向量可以帮助系统更容易地找到新知识,保持回答的准确性,而不需要频繁更新或手动调整。
总的来说,FastGPT之所以用文本向量作为索引方式,是因为它可以更智能、更灵活地理解和处理用户的提问,让系统在搜索和回答问题时更加精准。


总结

本篇文章详细介绍了如何使用FastGPT搭建向量知识库。FastGPT充分利用了大模型的自然语言处理和对话能力,大幅提高了知识搜索的精确度,同时优化了用户的使用体验。


此外,文章还阐述了FastGPT知识库的工作原理。通过将文本转换为向量来建立索引,并借助大模型的上下文理解能力,系统能够为用户生成准确且符合语境的回答。


这种方法不仅提升了信息检索的效率,还显著改善了用户与知识库的交互方式。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅