Windows 上源码安装 FastGPT

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 免费的一大把抓,比如 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

把库 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 也没报错。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977249.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FreiHAND (handposeX-json 格式)数据集-release >> DataBall

FreiHAND (handposeX-json 格式)数据集-release 注意: 1)为了方便使用,按照 handposeX json 自定义格式存储 2)使用常见依赖库进行调用,降低数据集使用难度。 3)部分数据集获取请加入:DataBall-X数据球(free) 4)完…

Sinusoidal、RoPE和可学习嵌入的详细介绍及它们增强位置感知能力的示例

前文,我们已经构建了一个小型的字符级语言模型,是在transformer架构基础上实现的最基本的模型,我们肯定是希望对该模型进行改进和完善的。所以我们的另外一篇文章也从数据预处理、模型架构、训练策略、评估方法、代码结构、错误处理、性能优化等多个方面提出具体的改进点,但…

【JavaEE进阶】Spring Boot配置文件

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗 如有错误,欢迎指出~ 目录 SpringBoot配置⽂件 举例: 通过配置文件修改端口号 配置⽂件的格式 properties基本语法 读取配置⽂件 properties配置文件的缺点 yml配置⽂件 yml基本语法 yml和proper…

BUUCTF--[极客大挑战 2019]RCE ME

目录 URL编码取反绕过 异或绕过 异或的代码 flag 借助蚁剑中的插件进行绕过 利用动态链接库 编写恶意c语言代码 进行编译 然后再写一个php文件 将这两个文件上传到/var/tmp下 运行payload 直接看代码 <?php error_reporting(0); if(isset($_GET[code])){$code$_G…

Tag标签的使用

一个非常适合运用在vue项目中的组件&#xff1a;Tag标签。 目录 一、准备工作 1、安装element-plus库 2、配置element-plus库 二、Tag标签入门 1、打开element官网&#xff0c;搜索tag标签 2、体验Tag标签的基础用法 三、Tag标签进阶训练1 1、定义一个数组&#xff0c;…

学习threejs,使用createMultiMaterialObject创建多材质对象

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.SceneUtils 场景操控…

[C++]使用纯opencv部署yolov12目标检测onnx模型

yolov12官方框架&#xff1a;sunsmarterjie/yolov12 【算法介绍】 在C中使用纯OpenCV部署YOLOv12进行目标检测是一项具有挑战性的任务&#xff0c;因为YOLOv12通常是用PyTorch等深度学习框架实现的&#xff0c;而OpenCV本身并不直接支持加载和运行PyTorch模型。然而&#xff…

MQ(Message Queue)

目录 MQ(Message Queue)基本概念 为什么要使用消息队列&#xff1f; 使用消息队列有什么缺点&#xff1f; 如何保证消息不丢失?(如何保证消息的可靠性传输?/如何处理消息丢失的问题?) 通用的MQ场景&#xff1a; RabbitMQ如何保证消息不丢失&#xff1f; 生产者丢数据…

Linux 第三次脚本作业

源码编译安装httpd 2.4&#xff0c;提供系统服务管理脚本并测试&#xff08;建议两种方法实现&#xff09; 一、第一种方法 1、把 httpd-2.4.63.tar.gz 这个安装包上传到你的试验机上 2、 安装编译工具 (俺之前已经装好了&#xff09; 3、解压httpd包 4、解压后的httpd包的文…

项目实战--网页五子棋(匹配模块)(4)

上期我们完成了游戏大厅的前端部分内容&#xff0c;今天我们实现后端部分内容 1. 维护在线用户 在用户登录成功后&#xff0c;我们可以维护好用户的websocket会话&#xff0c;把用户表示为在线状态&#xff0c;方便获取到用户的websocket会话 package org.ting.j20250110_g…

浏览器下载vue.js.devtools,谷歌浏览器和edg浏览器

1、谷歌浏览器下载&#xff1a; 情况一&#xff1a;如果谷歌应用商店可以打开&#xff0c;那么就直接到谷歌应用商店下载&#xff0c;直接搜索vue.js.devtools添加扩展即可。 情况二&#xff1a;谷歌浏览器的谷歌应用商城打不开&#xff0c;那么就百度搜索极简插件找到vue.js.…

基于TensorFlow.js与Web Worker的智能证件照生成方案

功能简介 本文基于TensorFlow.js与Web Worker实现了常用的“证件照”功能&#xff0c;可以对照片实现抠图并替换背景。值得一提的是&#xff0c;正常抠图的操作应该由后端进行&#xff0c;这里只是主要演示该功能实现步骤&#xff0c;并不建议该功能由前端全权处理。 限于个人技…

3D模型在线转换工具:轻松实现3DM转OBJ

3D模型在线转换是一款功能强大的在线工具&#xff0c;支持多种3D模型格式的在线预览和互转。无论是工业设计、建筑设计&#xff0c;还是数字艺术领域&#xff0c;这款工具都能满足您的需求。 3DM与OBJ格式简介 3DM格式&#xff1a;3DM是一种广泛应用于三维建模的文件格式&…

GEO数据结构

目录 1. GEOADD 2. GEODIST 3. GEOHASH 3. GEOHASH 4. GEOPOS 6. GEOSEARCH 7. GEOSEARCHSTORE 应用场景 代码的逻辑分解&#xff1a; 比较难懂的部分&#xff1a; Redis GEO 查询与分页 results 的结构&#xff1a; 分页处理与截取数据 附加距离信息 1. GEOADD…

Java基础常见的面试题(易错!!)

面试题一&#xff1a;为什么 Java 不支持多继承 Java 不支持多继承主要是为避免 “菱形继承问题”&#xff08;又称 “钻石问题”&#xff09;&#xff0c;即一个子类从多个父类继承到同名方法或属性时&#xff0c;编译器无法确定该调用哪个父类的成员。同时&#xff0c;多继承…

基于Python/Flask/机器学习链家网新房数据可视化及预测系统+万字文档+答辩PPT+指导搭建视频

技术栈&#xff1a; 编程语言&#xff1a;python 涉及技术&#xff1a;requests爬虫、mysql数据库、flask框架、scikit-learn机器学习预测算法、多元线性回归、Echarts可视化。 ①.需求分析&#xff1a; 1.数据爬取&#xff1a;自动化获取链家网新房数据。 2.数据存储&…

【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeekR1+RAGFlow构建个人知识库)

【DeepSeek-R1背后的技术】系列博文&#xff1a; 第1篇&#xff1a;混合专家模型&#xff08;MoE&#xff09; 第2篇&#xff1a;大模型知识蒸馏&#xff08;Knowledge Distillation&#xff09; 第3篇&#xff1a;强化学习&#xff08;Reinforcement Learning, RL&#xff09;…

力扣LeetCode:1656 设计有序流

题目&#xff1a; 有 n 个 (id, value) 对&#xff0c;其中 id 是 1 到 n 之间的一个整数&#xff0c;value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流&#xff0c;以 任意 顺序获取 n 个 (id, value) 对&#xff0c;并在多次调用时 按 id 递增的顺序…

MATLAB在数据分析和绘图中的应用:从基础到实践

引言 股票数据分析是金融领域中的重要研究方向&#xff0c;通过对历史价格、成交量等数据的分析&#xff0c;可以帮助投资者更好地理解市场趋势和做出决策。MATLAB作为一种强大的科学计算工具&#xff0c;提供了丰富的数据处理和可视化功能&#xff0c;非常适合用于股票数据的…

2025年02月17日Github流行趋势

项目名称&#xff1a;OmniParser 项目地址url&#xff1a;https://github.com/microsoft/OmniParser 项目语言&#xff1a;Jupyter Notebook 历史star数&#xff1a;8971 今日star数&#xff1a;969 项目维护者&#xff1a;yadong-lu, ThomasDh-C, aliencaocao, nmstoker, kris…