自然语言处理:第五十五章 RAG应用 FastGPT 快速部署

news/2024/10/26 11:28:28/

代码: labring/FastGPT: FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orchestration, letting you easily develop and deploy complex question-answering systems without the need for extensive setup or configuration. (github.com)

官网: FastGPT


写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!




简介

FastGPT 是一个基于 LLM 大语言模型的 知识库问答系统 ,提供开箱即用的数据处理、模型调用等能力。同时可以通过可视化进行 工作流编排 ,从而实现复杂的问答场景!

它界面简洁美观,功能完备强大。本文将介绍如何基于 Docker 快速部署 FastGPT,该方案非常适合个人或者小型团队。

系统要求

本方案已经在 Linux 上验证通过,笔者也建议选择 Linux 作为运行 FastGPT 的操作系统。

Intel 芯片的 MacOS 则没问题,可以正常运行 FastGPT docker 容器。

Apple 芯片的 MacOS 则不能正常运行 FastGPT docker 容器,因为部分 docker 镜像暂时不支持 Apple 芯片。

Windows 系统未验证,不过根据一些用户反馈,是能正确运行的,就是需要一定的动手和 Debug 能力。

硬件配置

因为 FastGPT 知识库功能需要上传的文档进行向量化并存储到向量数据库中,所以对 CPU、内存和存储有一定要求。

数据量最低配置推荐配置
开发测试用2c2g2c4g
100w 组向量4c8g 50GB4c16g 50GB
500w 组向量8c32g 200GB16c64g 200GB

依赖软件

  • Docker
  • Git
  • Ollama(可选)

Linux 下安装 docker 可参考下面的命令,或者 docker 官网安装文档[1]

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

FastGPT 安装

架构图如下:

图片

Docker 运行 FastGPT 参考了 FastGPT 官方文档 [2] ,但是由于 docker-compose.yaml 文件中的配置经常变导致一些组件不兼容部署失败,所以笔者专门新建一个仓库 fastgpt-deploy [3] ,把验证通过的 compose 文件传上去,确保成功部署。

  1. git 克隆仓库
    git clone https://github.com/dockerq/fastgpt-deploy.git
    
  2. 下载 docker 镜像。由于网络原因这步可能耗时较长或者失败。
    cd fastgpt-deploy
    docker compose pull
    
  3. 运行 fastgpt 服务
    docker compose up -d
    

更改 FastGPT 配置

参考 如何自定义配置文件? [4]

每次变更配置都要重新运行 FastGPT 容器。

  1. 变更配置文件 config.json 中的配置
  2. 删除 fastgpt 容器
    docker compose down fastgpt
    
  3. 重新运行 fastgpt 容器
    docker compose up -d fastgpt
    

ollama 地址(可选)

如果你使用 Ollama 运行开源大模型,这部分要注意下,因为 FastGPT 都是运行在 Docker 容器中的,所以在 FastGPT/OneAPI 中配置 Ollama 地址时,要写对:

  1. 如果在 Linux 系统运行,地址默认填 http://172.17.0.1:11434
  2. 如果在 MacOS 系统运行,地址默认填 http://host.docker.internal:11434

参考资料

[1]docker 官网安装文档: https://docs.docker.com/engine/install/

[2]FastGPT 官方文档: https://doc.fastgpt.in/docs/development/docker/#%E5%BC%80%E5%A7%8B%E9%83%A8%E7%BD%B2

[3]fastgpt-deploy: https://github.com/dockerq/fastgpt-deploy

[4]如何自定义配置文件?: https://doc.fastgpt.in/docs/development/docker/#%e5%a6%82%e4%bd%95%e8%87%aa%e5%ae%9a%e4%b9%89%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6


http://www.ppmy.cn/news/1542102.html

相关文章

Zustand介绍与使用 React状态管理工具

文章目录 前言基本使用编写状态加方法在组件中使用异步方法操作 中间件简化状态获取优化性能 持久化保存 前言 在现代前端开发中,状态管理一直是一个关键的挑战。随着应用规模的扩大,组件间的状态共享变得愈加复杂。为了应对这一需求,开发者…

k8s部署metallb实现service的LoadBalancer模式

开启ipvs并开启严格ARP模式 参考https://metallb.io/installation/ kubectl edit configmap -n kube-system kube-proxy源 mode: "" ipvs:strictARP: false改成 mode: "ipvs"ipvs:strictARP: truek8s原生部署metallb 下载 wget https://raw.githubuse…

青少年编程与数学 02-002 Sql Server 数据库应用 09课题、规则、约束和默认值

青少年编程与数学 02-002 Sql Server 数据库应用 09课题、规则、约束和默认值 课题摘要:一、规则二、规则应用示例三、约束四、约束应用示例五、默认值六、关系(Relationship)七、一致性、完整性和可维护性 本课题介绍了SQL Server中规则、约束和默认值的…

UE5里的TObjectPtr TSharedPtr TWeakPtr有什么区别

在 Unreal Engine(UE)编程中,TObjectPtr、TSharedPtr 和 TWeakPtr 都是 指针类型,但它们在生命周期管理和使用场景上有不同的特点。让我们详细分析这些指针的区别和用途。 TObjectPtr TObjectPtr 是 UE5 中引入的新智能指针类型…

fpga系列 HDL: 竞争和冒险 01

卡诺图是一种逻辑化简工具,用来在布尔函数的最小项和形式中,找到冗余项并实现逻辑化简。也可用于HDL中竞争和冒险的判断。 最小项 任何一个逻辑函数都能化简为最小项的和的形式对于 n 个变量的布尔表达式,每个变量都必须以原变量&#xff0…

美​团​一​面​-​3​​宁​德​时​代​一​面

美团: 1. 请尽可能详细地说明,小程序相对于H5的优势,可以结合开发人员的开发过程感受和用户体验等方面详细展开叙述。你的回答中不要写出示例代码。 小程序相对于H5的优势可以从多个角度进行详细分析,包括开发人员的开发过程感受…

微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件

要在微信小程序中关闭默认的 navigationBar,并使用自定义的 nav-bar 组件,你可以按照以下步骤操作: 1. 关闭默认的 navigationBar 在你的页面的配置文件 *.json 中设置 navigationBar 为 false。你需要在页面的 JSON 配置文件中添加以下代码…

SpringBoot面试热题

1.Spring IOC(控制反转)和AOP(面相切面编程)的理解 控制反转意味着将对象的控制权从代码中转移到Spring IOC容器。 本来是我们自己手动new出来的对象,现在则把对象交给Spring的IOC容器管理,IOC容器作为一个对象工厂,管理对象的创建和依赖关系…