Windows 上源码安装 FastGPT

发布于:2025-02-25 ⋅ 阅读:(11) ⋅ 点赞:(0)

FastGPT 是一个强大的 AI RAG 平台,值得我们去学习了解。与常见的 Python 体系不同,Fast GPT 采用 Node.js/Next.js 平台(对于广大 JS 开发者或前端开发者比较亲切友好),安装或部署比较简单。虽然一般情况下推荐简单的 Docker 方式部署。但是这里采用源码构建的方式进行部署,以便更好地深入了解 FastGPT,同时在生产环境中,也推荐使用源码编译的方式部署。

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 免费的一大把抓,比如 SupabaseNeonxataMemFireDB(国内的)。当前推荐 Supabase。申请成功后创建一个新的 project:

在这里插入图片描述
服务器区域可以选择一个离我们比较近的,例如新加坡。生成密码后点击【Create new project】,稍等片刻部署服务。

点击顶部的【connect】显示连接信息,包括地址、账号密码等:
在这里插入图片描述

在这里插入图片描述
准备好数据库之后,等 FastGPT 部署好后再填数据库的配置。

在与 FastGPT 结合前可以使用专门的 MongoDB 管理工具 MongoDBCompass 测试下,

在这里插入图片描述

MongoDB

一般都是官方提供的免费服务,除了它另外一个filess 也支持。至于其他的好像就没有了,MongoDB 免费的很少呀。

注册一个账号后 创建 MongoDB 服务,区域选择较近的 HongKong,点击【Connect】获取连接详情:

在这里插入图片描述
注意连接字符串开头是mongodb+srv,这个srv不能少,表示集群的意思。

另外要开通白名单以便访问,
在这里插入图片描述
准备好数据库之后,等 FastGPT 部署好后再填 MongoDB 的配置。

源码构建 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 也没报错。

在这里插入图片描述
在这里插入图片描述
大功告成!

本文参考了官方文档而成。如有不明白的地方敬请留言告之。