告别信息搜寻烦恼:用fastgpt快速部署国内大模型知识库助手

Docker Compose 快速部署

使用 Docker Compose 快速部署 FastGPT

推荐配置

环境最低配置(单节点)推荐配置
测试2c2g2c4g
100w 组向量4c8g 50GB4c16g 50GB
500w 组向量8c32g16c64g 200GB

部署架构图

img

1. 准备好代理环境(国外服务器可忽略)

确保可以访问 OpenAI,具体方案可以参考:代理方案。或直接在 Sealos 上 部署 OneAPI,既解决代理问题也能实现多 Key 轮询、接入其他大模型。

2. 多模型支持

FastGPT 使用了 one-api 项目来管理模型池,其可以兼容 OpenAI 、Azure 、国内主流模型和本地模型等。

一、安装 Docker 和 docker-compose

LinuxMacOSWindows

# 安装 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/2.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
# 如失效,自行百度~

二、创建目录并下载 docker-compose.yml

依次执行下面命令,创建 FastGPT 文件并拉取docker-compose.ymlconfig.json,执行完后目录下会有 2 个文件。

非 Linux 环境或无法访问外网环境,可手动创建一个目录,并下载下面2个链接的文件: docker-compose.yml,config.json

注意: docker-compose.yml 配置文件中 Mongo 为 5.x,部分服务器不支持,需手动更改其镜像版本为 4.4.24

mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.yml
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

三、修改 docker-compose.yml 的环境变量

修改docker-compose.yml中的OPENAI_BASE_URL(API 接口的地址,需要加/v1)和CHAT_API_KEY(API 接口的凭证)。

使用 OneAPI 的话,OPENAI_BASE_URL=OneAPI访问地址/v1;CHAT_API_KEY=令牌

四、启动容器

在 docker-compose.yml 同级目录下执行

# 进入项目目录
cd 项目目录
# 创建 mongo 密钥
openssl rand -base64 756 > ./mongodb.key
# 600不行可以用chmod 999
chmod 600 ./mongodb.key
chown 999:root ./mongodb.key
# 启动容器
docker-compose pull
docker-compose up -d

五、初始化 Mongo 副本集(4.6.8以前可忽略)

FastGPT 4.6.8 后使用了 MongoDB 的事务,需要运行在副本集上。副本集没法自动化初始化,需手动操作。

# 查看 mongo 容器是否正常运行
docker ps
# 进入容器
docker exec -it mongo bash

# 连接数据库
mongo -u myname -p mypassword --authenticationDatabase admin

# 初始化副本集。如果需要外网访问,mongo:27017 可以改成 ip:27017。但是需要同时修改 FastGPT 连接的参数(MONGODB_URI=mongodb://myname:mypassword@mongo:27017/fastgpt?authSource=admin => MONGODB_URI=mongodb://myname:mypassword@ip:27017/fastgpt?authSource=admin)
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "mongo:27017" }
  ]
})
# 检查状态。如果提示 rs0 状态,则代表运行成功
rs.status()

五、访问 FastGPT

目前可以通过 ip:3000 直接访问(注意防火墙)。登录用户名为 root,密码为docker-compose.yml环境变量里设置的 DEFAULT_ROOT_PSW

如果需要域名访问,请自行安装并配置 Nginx。

one-api部署国内大模型

项目地址:https://github.com/songquanpeng/one-api

  1. docker部署one api
    在终端中输入相关命令
    项目中的3000端口被占用,需要重新设定一个端口映射
docker run --name one-api -d --restart always -p 13000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

命令详解

docker run: 这是 Docker 的主要命令之一,用于创建并启动一个新的容器。
–name one-api: 这个选项为即将运行的容器设置一个名字,这里名字被设为 one-api。这样做可以更容易地识别和引用容器。
-d: 这个选项表示容器将在“分离模式”下运行,意味着它会在后台运行。
–restart always: 这指定了容器的重启策略。在这里,always 意味着如果容器停止(无论是由于错误还是由于任何其他原因),它将自动重启。
-p 13000:3000: 这是端口映射。此设置将容器内的 3000 端口映射到宿主机的 13000 端口。这意味着宿主机的 13000 端口上的流量将被转发到容器的 3000 端口。
-e TZ=Asia/Shanghai: 这个选项设置了一个环境变量。在这里,它设置了容器的时区为 Asia/Shanghai。
-v /home/ubuntu/data/one-api:/data: 这是一个卷挂载。它将宿主机的 /home/ubuntu/data/one-api 目录挂载到容器内的 /data 目录。这允许在容器和宿主机之间共享数据。
justsong/one-api: 这是要运行的 Docker 镜像的名称。在这个例子中,它将从 Docker Hub(或者其他配置的注册中心)拉取名为 justsong/one-api 的镜像。

2.登入one api
根据设定的端口,在浏览器内输入localhost:13000

默认账号:root
默认密码:123456
第一次登陆需要重新设置8位密码。

3.创建渠道和令牌
添加新的渠道

在这里插入图片描述

阿里云的api-key

模型服务灵积-API-KEY管理 (aliyun.com)

在这里插入图片描述

添加令牌

在这里插入图片描述

4.修改FastGPT内配置文件
config.json

“chatModels”: [

{
“model”: “qwen-turbo”,
“name”: “通义千问”,
“maxContext”: 8000,
“maxResponse”: 4000,
“quoteMaxToken”: 2000,
“maxTemperature”: 1,
“vision”: false,
“defaultSystemChatPrompt”: “”
}

]

docker-compose.yml

# base_url为ip地址:13000
  - OPENAI_BASE_URL=http://*******:13000/v1
# api-key点击令牌复制的key
  - CHAT_API_KEY=sk-7s1VO4aKfcEkfgQ3Fd35Bf10C60244799c88Ae40Ca98FdF0

修改完成后执行指令

docker-compose pull
docker-compose up -d
image-20240304154128006

启动成功! 这样就有了专属于你的知识库助手!

image-20240304154749391

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

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

相关文章

web游戏-飞机大战

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的订阅后,私信本人,发源码,含60小游戏源码。如五子棋、象棋、植物大战僵尸、贪吃蛇、飞机大战、坦克大战、开心消消乐、扑鱼达人、扫雷…

STM32自学☞I2C

这里只是大体介绍,具体的可参考STM32数据手册

Python算法100例-3.2 水仙花数

完整源代码项目地址,关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.问题拓展7.巧用字符串技巧 1.问题描述 输出所有的“水仙花数”。所谓的“水仙花数”是指一个三位数,其各位数字的立方和等于该…

[C语言]——C语言常见概念(3)

目录 一.字符和ASCII编码 二.字符串和\0 三.转义字符 四.语句和语句分类 1.空语句 2.表达式语句 3.函数调用语句 4.复合语句 5.控制语句 五.注释 1.注释的2种形式 1.1 /**/ 的形式 1.2 // 的形式 2.注释会被替换 一.字符和ASCII编码 在键盘上可以敲出各种字符&am…

【UE Niagara】纳米蠕虫效果

效果 步骤 1. 新建一个Niagara系统,选择一个空模板,这里命名为“NS_Worm” 打开“NS_Worm”,重命名发射器为“Leader” 先添加“Spawn Burst Instantaneous”模块来单次生成粒子 为了让粒子持续停留在关卡中,需要在“Particle St…

MybatisPlus的使用(一)--基本配置与无条件查询

创建测试用的数据库 CREATE DATABASE mybatis_plus /*!40100 DEFAULT CHARACTER SET utf8mb4 */; use mybatis_plus; CREATE TABLE user ( id bigint(20) NOT NULL COMMENT 主键ID, name varchar(30) DEFAULT NULL COMMENT 姓名 , age int(11) DEFAULT NULL COMMENT 年龄 , em…

JavaWeb - 1 - 概述

一.什么是Web? Web:全球广域网,也称为万维网(www World Wide Web),能够通过浏览器访问的网站 二.Web网站的工作流程 三.Web网站的开发模式 3.1 前后端分离开发(主流) 3.2 混合开发…

thymeleaf 一个莫名其妙的错误提示 org.attoparser.ParseException

thymeleaf 一个莫名其妙的错误提示 介绍 开发过程中遇到一个莫名奇妙的错误,一时竟然不知道怎么解决,找官网也没有找到 问题 页面显示 错误日志 org.attoparser.ParseException: (Line 96, Column 5) Malformed markup: Attribute “}” appears m…

羊大师揭秘羊奶将成为,健康新选择

羊大师揭秘羊奶将成为,健康新选择 羊奶作为一种传统的营养食品,已经在全球范围内受到了广泛的关注和认可。随着人们对健康生活的追求和对食品安全的重视,羊奶正逐渐成为健康的新选择。 羊奶的营养价值得到了科学的验证。羊奶中含有丰富的蛋…

【深度学习笔记】5_5 LeNet

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 5.5 卷积神经网络(LeNet) 在3.9节(多层感知机的从零开始实现)里我们构造了一个含单隐藏…

飞书文档批量导出

背景需求 最近所参与的项目即将结项,需要将飞书中的产品需求文档(PRD)交付给甲方,由于文档较多,大概有两百多个,一个一个的下载导出,太麻烦了(PS:本人比较懒)…

ruoyi-nbcio-plus的Vue3前端升级组件后出现的问题(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址: http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbach…

Jenkins 安装

目录 1、部署 Jenkins 安装配置 Jenkins 解锁 Jenkins 安装 Jenkins 插件 创建管理员账号 手动安装插件 2、Jenkins 从 GitLat 拉取代码 安装 Jenkins 插件 在 node-16 上生成密钥对 把公钥配置到 gitlab 上 把 root 用户私钥配置到 jenkins 上 Jenkins 创建一个任务…

PCSA时钟控制集成之时钟门控集成

1.4 时钟门控集成 高级时钟门控是使用每个时钟域的时钟控制器组件实现的。时钟控制器支持多个组件的时钟门控,并为每个组件提供一个Q-Channel接口。 大多数Arm组件都支持这种类型的时钟门控。大多数组件使用Q-Channel。一些较早的组件使用AXI LPI,但在…

2024全国护网行动HW行动招聘/收人!!!

2024全国护网行动HW行动招聘 溯蓉信创开始收人啦!!!现在开始收录2024HW简历,感兴趣的小伙伴扫码二维码添加微信 我们签约后,入场即预付款3k,签约后我们会在HW之前对我们的人员进行HW培训,保证上…

AI加速引擎PAI-TorchAcc:整体介绍与性能概述

作者:沈雯婷、黄奕桐、艾宝乐、王昂、李永 1、简介 PAI-TorchAcc(Torch Accelerator)是阿里云人工智能平台开发的Pytorch上的大模型训练加速框架。 PAI-TorchAcc提供了一套基于Pytorch的简洁、易用的接口,无需进行模型转换就可以无缝地接入HuggingFac…

HTTP笔记(五)

个人学习笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 目录 一:HTTP报文首部 (1)HTTP请求报文 (2&#xff09…

【C++庖丁解牛】默认成员函数

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 前言1. 构造函数1.1 …

Linux配置网卡功能

提示:工具下载链接在文章最后 目录 一.network功能介绍二.配置network功能2.1 network_ip配置检查 2.2 network_br配置2.2.1 配置的网桥原先不存在检查2.2.2 配置的网桥已存在-修改网桥IP检查2.2.3 配置的网桥已存在-只添加网卡到网桥里检查 2.3 network_bond配置检查 2.4 netw…

数据结构与算法-选择排序

引言 在计算机科学中,数据结构和算法是两个至关重要的基石。它们共同决定了程序的效率、可读性和可维护性。本文我们将聚焦于一种基础而直观的排序算法——选择排序,并探讨其内在的工作机制以及在实际应用中的优缺点。 一、什么是选择排序? …