diff --git a/docs/development/docker/index.html b/docs/development/docker/index.html index 55475fac0..c1ed9d40f 100644 --- a/docs/development/docker/index.html +++ b/docs/development/docker/index.html @@ -33,10 +33,10 @@ FAQ
article

Docker Compose 快速部署

使用 Docker Compose 快速部署 FastGPT

前置知识

  1. 基础的网络知识:端口,防火墙……
  2. Docker 和 Docker Compose 基础知识
  3. 大模型相关接口和参数
  4. RAG 相关知识:向量模型,向量数据库,向量检索

部署架构图

推荐配置

PgVector版本

非常轻量,适合知识库索引量在 5000 万以下。

环境最低配置(单节点)推荐配置
测试(可以把计算进程设置少一些)2c4g2c8g
100w 组向量4c8g 50GB4c16g 50GB
500w 组向量8c32g 200GB16c64g 200GB

Milvus版本

对于亿级以上向量性能更优秀。

点击查看 Milvus 官方推荐配置

环境最低配置(单节点)推荐配置
测试2c8g4c16g
100w 组向量未测试
500w 组向量

zilliz cloud版本

Zilliz Cloud 由 Milvus 原厂打造,是全托管的 SaaS 向量数据库服务,性能优于 Milvus 并提供 SLA,点击使用 Zilliz Cloud

由于向量库使用了 Cloud,无需占用本地资源,无需太关注。

前置工作

1. 确保网络环境

如果使用OpenAI等国外模型接口,请确保可以正常访问,否则会报错:Connection error 等。 方案可以参考:代理方案

2. 准备 Docker 环境

article

Docker Compose 快速部署

使用 Docker Compose 快速部署 FastGPT

前置知识

  1. 基础的网络知识:端口,防火墙……
  2. Docker 和 Docker Compose 基础知识
  3. 大模型相关接口和参数
  4. RAG 相关知识:向量模型,向量数据库,向量检索

部署架构图

推荐配置

PgVector版本

非常轻量,适合知识库索引量在 5000 万以下。

环境最低配置(单节点)推荐配置
测试(可以把计算进程设置少一些)2c4g2c8g
100w 组向量4c8g 50GB4c16g 50GB
500w 组向量8c32g 200GB16c64g 200GB

Milvus版本

对于亿级以上向量性能更优秀。

点击查看 Milvus 官方推荐配置

环境最低配置(单节点)推荐配置
测试2c8g4c16g
100w 组向量未测试
500w 组向量

zilliz cloud版本

Zilliz Cloud 由 Milvus 原厂打造,是全托管的 SaaS 向量数据库服务,性能优于 Milvus 并提供 SLA,点击使用 Zilliz Cloud

由于向量库使用了 Cloud,无需占用本地资源,无需太关注。

前置工作

1. 确保网络环境

如果使用OpenAI等国外模型接口,请确保可以正常访问,否则会报错:Connection error 等。 方案可以参考:代理方案

2. 准备 Docker 环境

开始部署

1. 下载 docker-compose.yml

非 Linux 环境或无法访问外网环境,可手动创建一个目录,并下载配置文件和对应版本的docker-compose.yml,在这个文件夹中依据下载的配置文件运行docker,若作为本地开发使用推荐docker-compose-pgvector版本,并且自行拉取并运行sandboxfastgpt,并在docker配置文件中注释掉sandboxfastgpt的部分

Linux 快速脚本

+  

或者直接下载安装包进行安装。

我们建议将源代码和其他数据绑定到 Linux 容器中时,将其存储在 Linux 文件系统中,而不是 Windows 文件系统中。

可以选择直接使用 WSL 2 后端在 Windows 中安装 Docker Desktop

也可以直接在 WSL 2 中安装命令行版本的 Docker

开始部署

1. 下载 docker-compose.yml

非 Linux 环境或无法访问外网环境,可手动创建一个目录,并下载配置文件和对应版本的docker-compose.yml,在这个文件夹中依据下载的配置文件运行docker,若作为本地开发使用推荐docker-compose-pgvector版本,并且自行拉取并运行sandboxfastgpt,并在docker配置文件中注释掉sandboxfastgpt的部分

Linux 快速脚本

   mkdir fastgpt
 cd fastgpt
 curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
@@ -63,12 +63,12 @@ curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/mai
 # curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-milvus.yml
 # zilliz 版本
 # curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-zilliz.yml
-  

2. 修改环境变量

找到 yml 文件中,fastgpt 容器的环境变量进行下面操作:

3. 启动容器

在 docker-compose.yml 同级目录下执行。请确保docker-compose版本最好在2.17以上,否则可能无法执行自动化命令。

+  

2. 修改环境变量

找到 yml 文件中,fastgpt 容器的环境变量进行下面操作:

3. 修改 config.json 配置文件

修改config.json文件中的mcpServerProxyEndpoint值,设置成mcp server的公网可访问地址,yml 文件中默认给出了映射到 3005 端口,如通过 IP 访问,则可能是:120.172.2.10:3005

4. 启动容器

在 docker-compose.yml 同级目录下执行。请确保docker-compose版本最好在2.17以上,否则可能无法执行自动化命令。

   # 启动容器
 docker-compose up -d
-  

4. 访问 FastGPT

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

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

首次运行,会自动初始化 root 用户,密码为 1234(与环境变量中的DEFAULT_ROOT_PSW一致),日志可能会提示一次MongoServerError: Unable to read from a snapshot due to pending collection catalog changes;可忽略。

5. 配置模型

  • 首次登录FastGPT后,系统会提示未配置语言模型索引模型,并自动跳转模型配置页面。系统必须至少有这两类模型才能正常使用。
  • 如果系统未正常跳转,可以在账号-模型提供商页面,进行模型配置。点击查看相关教程
  • 目前已知可能问题:首次进入系统后,整个浏览器 tab 无法响应。此时需要删除该tab,重新打开一次即可。

FAQ

登录系统后,浏览器无法响应

无法点击任何内容,刷新也无效。此时需要删除该tab,重新打开一次即可。

Mongo 副本集自动初始化失败

最新的 docker-compose 示例优化 Mongo 副本集初始化,实现了全自动。目前在 unbuntu20,22 centos7, wsl2, mac, window 均通过测试。仍无法正常启动,大部分是因为 cpu 不支持 AVX 指令集,可以切换 Mongo4.x 版本。

如果是由于,无法自动初始化副本集合,可以手动初始化副本集:

  1. 终端中执行下面命令,创建mongo密钥:
+  

5. 访问 FastGPT

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

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

首次运行,会自动初始化 root 用户,密码为 1234(与环境变量中的DEFAULT_ROOT_PSW一致),日志可能会提示一次MongoServerError: Unable to read from a snapshot due to pending collection catalog changes;可忽略。

6. 配置模型

  • 首次登录FastGPT后,系统会提示未配置语言模型索引模型,并自动跳转模型配置页面。系统必须至少有这两类模型才能正常使用。
  • 如果系统未正常跳转,可以在账号-模型提供商页面,进行模型配置。点击查看相关教程
  • 目前已知可能问题:首次进入系统后,整个浏览器 tab 无法响应。此时需要删除该tab,重新打开一次即可。

FAQ

登录系统后,浏览器无法响应

无法点击任何内容,刷新也无效。此时需要删除该tab,重新打开一次即可。

Mongo 副本集自动初始化失败

最新的 docker-compose 示例优化 Mongo 副本集初始化,实现了全自动。目前在 unbuntu20,22 centos7, wsl2, mac, window 均通过测试。仍无法正常启动,大部分是因为 cpu 不支持 AVX 指令集,可以切换 Mongo4.x 版本。

如果是由于,无法自动初始化副本集合,可以手动初始化副本集:

  1. 终端中执行下面命令,创建mongo密钥:
   openssl rand -base64 756 > ./mongodb.key
 chmod 600 ./mongodb.key
 # 修改密钥权限,部分系统是admin,部分是root
diff --git a/docs/development/faq/index.html b/docs/development/faq/index.html
index 2e48267eb..b0e4d2c29 100644
--- a/docs/development/faq/index.html
+++ b/docs/development/faq/index.html
@@ -36,11 +36,11 @@ FAQ
upgrade

私有部署常见问题

FastGPT 私有部署常见问题

一、错误排查方式

可以先找找Issue,或新提 Issue,私有部署错误,务必提供详细的操作步骤、日志、截图,否则很难排查。

获取后端错误

  1. docker ps -a 查看所有容器运行状态,检查是否全部 running,如有异常,尝试docker logs 容器名查看对应日志。
  2. 容器都运行正常的,docker logs 容器名 查看报错日志

前端错误

前端报错时,页面会出现崩溃,并提示检查控制台日志。可以打开浏览器控制台,并查看console中的 log 日志。还可以点击对应 log 的超链接,会提示到具体错误文件,可以把这些详细错误信息提供,方便排查。

OneAPI 错误

带有requestId的,都是 OneAPI 提示错误,大部分都是因为模型接口报错。可以参考 OneAPI 常见错误

二、通用问题

前端页面崩溃

  1. 90% 情况是模型配置不正确:确保每类模型都至少有一个启用;检查模型中一些对象参数是否异常(数组和对象),如果为空,可以尝试给个空数组或空对象。
  2. 少部分是由于浏览器兼容问题,由于项目中包含一些高阶语法,可能低版本浏览器不兼容,可以将具体操作步骤和控制台中错误信息提供 issue。
  3. 关闭浏览器翻译功能,如果浏览器开启了翻译,可能会导致页面崩溃。

通过sealos部署的话,是否没有本地部署的一些限制?

这是索引模型的长度限制,通过任何方式部署都一样的,但不同索引模型的配置不一样,可以在后台修改参数。

怎么挂载小程序配置文件

将验证文件,挂载到指定位置:/app/projects/app/public/xxxx.txt

然后重启。例如:

数据库3306端口被占用了,启动服务失败

把端口映射改成 3307 之类的,例如 3307:3306。

本地部署的限制

具体内容参考https://fael3z0zfze.feishu.cn/wiki/OFpAw8XzAi36Guk8dfucrCKUnjg。

能否纯本地运行

可以。需要准备好向量模型和LLM模型。

其他模型没法进行问题分类/内容提取

  1. 看日志。如果提示 JSON invalid,not support tool 之类的,说明该模型不支持工具调用或函数调用,需要设置toolChoice=falsefunctionCall=false,就会默认走提示词模式。目前内置提示词仅针对了商业模型API进行测试。问题分类基本可用,内容提取不太行。
  2. 如果已经配置正常,并且没有错误日志,则说明可能提示词不太适合该模型,可以通过修改customCQPrompt来自定义提示词。

页面崩溃

  1. 关闭翻译
  2. 检查配置文件是否正常加载,如果没有正常加载会导致缺失系统信息,在某些操作下会导致空指针。
  • 95%情况是配置文件不对。会提示 xxx undefined
  • 提示URI malformed,请 Issue 反馈具体操作和页面,这是由于特殊字符串编码解析报错。
  1. 某些api不兼容问题(较少)

开启内容补全后,响应速度变慢

  1. 问题补全需要经过一轮AI生成。
  2. 会进行3~5轮的查询,如果数据库性能不足,会有明显影响。

页面中可以正常回复,API 报错

页面中是用 stream=true 模式,所以API也需要设置 stream=true 来进行测试。部分模型接口(国产居多)非 Stream 的兼容有点垃圾。 -和上一个问题一样,curl 测试。

知识库索引没有进度/索引很慢

先看日志报错信息。有以下几种情况:

  1. 可以对话,但是索引没有进度:没有配置向量模型(vectorModels)
  2. 不能对话,也不能索引:API调用失败。可能是没连上OneAPI或OpenAI
  3. 有进度,但是非常慢:api key不行,OpenAI的免费号,一分钟只有3次还是60次。一天上限200次。

Connection error

网络异常。国内服务器无法请求OpenAI,自行检查与AI模型的连接是否正常。

或者是FastGPT请求不到 OneAPI(没放同一个网络)

修改了 vectorModels 但是没有生效

  1. 重启容器,确保模型配置已经加载(可以在日志或者新建知识库时候看到新模型)
  2. 记得刷新一次浏览器。
  3. 如果是已经创建的知识库,需要删除重建。向量模型是创建时候绑定的,不会动态更新。

三、常见的 OneAPI 错误

带有 requestId 的都是 OneAPI 的报错。

insufficient_user_quota user quota is not enough

OneAPI 账号的余额不足,默认 root 用户只有 200 刀,可以手动修改。

路径:打开OneAPI -> 用户 -> root用户右边的编辑 -> 剩余余额调大

xxx渠道找不到

FastGPT 模型配置文件中的 model 必须与 OneAPI 渠道中的模型对应上,否则就会提示这个错误。可检查下面内容:

  1. OneAPI 中没有配置该模型渠道,或者被禁用了。
  2. FastGPT 配置文件有 OneAPI 没有配置的模型。如果 OneAPI 没有配置对应模型的,配置文件中也不要写。
  3. 使用旧的向量模型创建了知识库,后又更新了向量模型。这时候需要删除以前的知识库,重建。

如果OneAPI中,没有配置对应的模型,config.json中也不要配置,否则容易报错。

点击模型测试失败

OneAPI 只会测试渠道的第一个模型,并且只会测试对话模型,向量模型无法自动测试,需要手动发起请求进行测试。查看测试模型命令示例

get request url failed: Post “https://xxx dial tcp: xxxx

OneAPI 与模型网络不通,需要检查网络配置。

Incorrect API key provided: sk-xxxx.You can find your api Key at xxx

OneAPI 的 API Key 配置错误,需要修改OPENAI_API_KEY环境变量,并重启容器(先 docker-compose down 然后再 docker-compose up -d 运行一次)。

可以exec进入容器,env查看环境变量是否生效。

bad_response_status_code bad response status code 503

  1. 模型服务不可用
  2. 模型接口参数异常(温度、max token等可能不适配)
  3. ….

Tiktoken 下载失败

由于 OneAPI 会在启动时从网络下载一个 tiktoken 的依赖,如果网络异常,就会导致启动失败。可以参考OneAPI 离线部署解决。

四、常见模型问题

如何检查模型可用性问题

  1. 私有部署模型,先确认部署的模型是否正常。
  2. 通过 CURL 请求,直接测试上游模型是否正常运行(云端模型或私有模型均进行测试)
  3. 通过 CURL 请求,请求 OneAPI 去测试模型是否正常。
  4. 在 FastGPT 中使用该模型进行测试。

下面是几个测试 CURL 示例: