一行代码不用写,用 Autoflow + Gitee AI 搭建本地知识库问答机器人
导读
AutoFlow 是 PingCAP 开源的 Graph RAG 知识库工具,基于 TiDB Vector、LlamaIndex 和 DSPy 构建,开发者可快速搭建对话式知识库聊天助手。最新的 0.4.0 版本支持 Gitee AI,为本地知识库问答机器人提供强大支撑。本文详解 AutoFlow 从部署到配置的完整流程,包括数据库连接、模型设置、知识库创建及聊天引擎配置,实现了一行代码不用写的问答机器人快速搭建。轻松上手,助力开发者探索智能问答解决方案。

AutoFlow 是 PingCAP 开源的一个基于 TiDB Vector、LlamaIndex 和 DSPy 构建的 Graph RAG 知识库工具,可以让开发者快速构建一个对话式知识库聊天助手,现已在 GitHub 正式开源。

在 AutoFlow 的 0.4.0 版本中,新增了 Gitee AI 作为大语言模型及向量模型的提供方。

马建仓看到本次更新后也是迫不及待上手实践,最终实现了一行代码没写,快速搭建出了一个基于本地知识库的问答机器人,那么下面就和马建仓一起开始吧!

Docker Compose
AutoFlow 的部署和使用需要 Docker Compose,未安装的开发者请在部署 AutoFlow 前准备好 Docker 环境。

TiDB Cloud Serverless
由于在部署 AutoFlow 时需要配置 TiDB 数据库,开发可选择 v8.4 版本以上的 TiDB 数据库(支持向量搜索功能),或和马建仓一样直接选择 TiDB Cloud Serverless ,可以快速实现数据库的部署。

Gitee AI 访问令牌
AutoFlow 可通过 API 的方式调用模型提供方的模型,所以需要准备好 Gitee AI 访问令牌供配置 AutoFlow 时使用。
前往 工作台 - 设置 - 访问令牌 ,点击新建访问令牌,选择对应的资源包即可(马建仓这里推荐全模型资源包)。


准备工作完成后,即可进行 AutoFlow 的部署工作:
克隆项目到本地
复制并编辑 .env 文件
在编辑 .env 文件时,首先需要配置一枚 32 位的 SECRECT_KEY (可使用命令行或在线工具生成),随后 填入 TiDB Cloud Serverless 中相关的数据库信息,点击 Generate Password 生成密码后,将相关数据库信息以及 SECRECT_KEY 填写进 .env 文件,如下图所示:

获取服务器信息

填入服务器信息及 SECRECT_KEY
迁移数据库架构
使用初始数据引导数据库
运行引导脚本会创建一个管理员用户,你可以在输出中找到用户名和密码,如下图:

启动服务
打开浏览器访问 http://localhost:3000 即可访问部署好的 AutoFlow 服务。


接下来需要对 AutoFlow 使用的大语言模型、向量模型、知识库、聊天引擎进行设置。
大语言模型配置
在左侧管理选项中选择 Models - LLMs ,点击 + NEW LLM ,为要使用的大语言模型起一个名字,并选择 Gitee AI 为模型提供方。

选择后,会自动选择使用的大语言模型(默认为 Qwen2.5-72B-Instruct ),开发者只需在 Gitee AI API Key 处填入刚才生成的 Gitee AI 访问令牌,点击 Creat LLM 即可。
向量模型配置
和配置大语言模型的流程相似,选择 Models - Embedding Models 后进行相同的设置即可。

⚠️ 需要注意的是,向量模型设置中新增了向量维度选项,这里需填写该模型支持的向量维度,如默认的 bge-large-zh-v1.5 模型向量维度为 1024 。
知识库配置
模型相关信息配置完成后就可以进行知识库的配置了,选择左侧 Knowledge Bases ,填写知识库名称及描述,选择刚才创建的大语言模型和向量模型后即可创建知识库。

创建完成后,我们就可以创建数据源了,AutoFlow 支持本地文件、网页、Sitemap 三种数据源,本次马建仓将以《开源指北》本地文件为例配置知识库。

AutoFlow 支持上传 Markdown 、 PDF 、 Word、 PPT 、 Excel 、 TXT 文件,上传完成后点击 Creat 即可创建数据源。

创建知识库后进行的是建立知识库索引的工作,AutoFlow 会自动完成这部分工作, Vector Index 显示全为绿色时即为索引建立完成。

聊天引擎配置
最后一步,我们需要配置聊天引擎(Chat Engine)。点击 Chat Engines - New Chat Engine 即可进入下图页面。
在聊天引擎配置中,必须配置项为名称、使用的大语言模型以及所连接的知识库。

配置名称及模型

连接知识库
此外,你也可以更改提示词以自定义用户的聊天体验(非必须项):

点击自定义提示词
至此,一个简单的基于本地知识库的问答机器人就部署完成了。
完成配置后,可进入 Settings 为你的问答机器人进行个性化设置,设置自己的网页标题、Logo、预设提问等等。

现在一个属于《开源指北》的问答机器人就可以正式开始使用了!

提出问题后,AutoFlow 将通过 识别问题的核心意图 、 在知识库中搜索相关上下文 、 重写查询以增强信息检索 、 检索最相关的数据 、 使用 AI 生成精准答案 五个步骤产出最终的答案。
同时 AutoFlow 也会列出知识库相关的文档供你查看。

产出的回答如下图,看来 AutoFlow 很快就学习到了《开源指北》的核心内容,值得点赞!

现在一个《开源指北》问答机器人就正式完成,可以将其正式部署上线了。除了网页端外,AutoFlow 还支持在网页中嵌入 JavaScript 片段,将对话窗口集成到网站中。

那么以上就是本次马建仓基于 AutoFlow + Gitee AI 搭建本地知识库问答机器人的实践分享,真正做到了一行代码不用写且部署快速方便,希望能对开发者们有所帮助,我们下次实践分享再见!
评论