FastGPT 是一个强大的 AI RAG 平台,值得我们去学习了解。与常见的 Python 体系不同,Fast GPT 采用 Node.js/Next.js 平台(对于广大 JS 开发者或前端开发者比较亲切友好),安装或部署比较简单。虽然一般情况下推荐简单的 Docker 方式部署。但是这里采用源码构建的方式进行部署,以便更好地深入了解 FastGPT,同时在生产环境中,也推荐使用源码编译的方式部署。
FastGPT__1">FastGPT 运行环境
Dify 要求的技术栈如下:
- Nod.js,要求版本 v20+
- PostgreSQL 数据库作为向量数据库
- MongoDB 用于存储除了向量外的各类数据
如果以上每一个模块都要去部署的话,耗时耗力,出于初始学习的目的,还是直接采用第三方的服务即可,尤其有许多厂商提供的免费服务。当然了,如果是生产环境,依赖这些免费的肯定是不行的。最后,FastGPT 本体我们自然就是在本地部署的,其中包括 Next.js 后端及 UI 前端,下面我们逐一说明。
准备依赖环境
Node.js
到官网下载 Node 运行时,或者使用 nvm 管理 node版本,比较简单,这里就不多说了。
另外安装 pnPm 管理 node 的依赖包。在 PowerSHELL 下面执行安装脚本:
Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression
或者通过 npm 安装也行:
npm install -g pnpm@latest-10
PostgreSQL
PostgreSQL 免费的一大把抓,比如 Supabase、Neon、xata、MemFireDB(国内的)。当前推荐 Supabase。申请成功后创建一个新的 project:
服务器区域可以选择一个离我们比较近的,例如新加坡。生成密码后点击【Create new project】,稍等片刻部署服务。
点击顶部的【connect】显示连接信息,包括地址、账号密码等:
准备好数据库之后,等 FastGPT 部署好后再填数据库的配置。
在与 FastGPT 结合前可以使用专门的 MongoDB 管理工具 MongoDBCompass 测试下,
MongoDB
一般都是官方提供的免费服务,除了它另外一个filess 也支持。至于其他的好像就没有了,MongoDB 免费的很少呀。
注册一个账号后 创建 MongoDB 服务,区域选择较近的 HongKong,点击【Connect】获取连接详情:
注意连接字符串开头是mongodb+srv
,这个srv
不能少,表示集群的意思。
另外要开通白名单以便访问,
准备好数据库之后,等 FastGPT 部署好后再填 MongoDB 的配置。
FastGPT_49">源码构建 FastGPT
把库 Clone 回来:
git clone https://github.com/labring/FastGPT.git
目录简要说明:
- projects 目录下为 FastGPT 应用代码。其中 app 为 FastGPT 核心应用。(后续可能会引入其他应用)
- NextJS 框架前后端放在一起,API 服务位于 src/pages/api 目录内。
- packages 目录为共用代码,通过 workspace 被注入到 projects 中,已配置 monorepo 自动注入,无需额外打包。
初始配置
以下文件均在 projects/app 路径下。
- 复制
.env.template
文件,在同级目录下生成一个.env.local
文件,修改.env.local
里内容才是有效的变量。变量说明见.env.template
,主要需要修改API_KEY
和数据库的地址与端口以及数据库账号的用户名和密码。 - 复制
data/config.json
文件,生成一个data/config.local.json
配置文件
在.env.local
填入上述的 PqSQL 和 MongoDB 连接字符串。
运行
代码根目录下执行,会安装根 package、projects 和 packages 内所有依赖,这过程比较久
pnpm i
正式运行:
cd projects/app
pnpm dev
打开浏览器访问:http://localhost:3000/,后台 console 也没报错。
大功告成!
本文参考了官方文档而成。如有不明白的地方敬请留言告之。