Fastgpt 无法启动或启动后无法正常使用的讨论(启动失败、用户未注册等问题这里)

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

FastGPT是非常实用并且相当厉害的个人知识库AI项目,项目是非常厉害的,更新的方法也必须得厉害和复杂到配得上这个项目!

经历过多次升级失败重新部署项目再重新导入知识库后,龚老师也多了个心眼:创建快照!

------不行就回滚!

所以每次最期待却又担心的事就是FastGPT又更新啦!

这不?

github 的 Issues里,很多高手都卡在了升级4.6.8上,龚老师一开始当然也没能幸免。

不过好在,经过10几个小时的昼夜奋斗摸索,终于搞定了。

注意:以下教程适用于从4.6.7升级到4.6.8。如果你是从低版本升级上来的,记得去官方教程上看看相应的升级教程,写了要初始化的就一定要从低版本开始逐步初始化,千万不要自作聪明直接跳过。

注意:以下教程基于linux系统。

第一步:修改docker-compose.yml 代码

修改docker-compose.yml 里mongo部分的代码,补上command和mongodb.key

bash 复制代码
mongo:
  image: mongo:5.0.18
  # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
  container_name: mongo
  # 端口号 可以保持默认的'27017',如果要修改,就修改前面的'27018'
  ports:
    - 27018:27017
  networks:
    - fastgpt
  command: mongod --keyFile /data/mongodb.key --replSet rs0
  environment:
    # 下面的用户名和密码如果你之前用的username/password,就仍然用之前的。
    - MONGO_INITDB_ROOT_USERNAME=myname
    - MONGO_INITDB_ROOT_PASSWORD=mypassword
  volumes:
    - ./mongo/data:/data/db
    - ./mongodb.key:/data/mongodb.key
COPY
windows下不能修改权限的问题,有网友说修改 docker-compose.yml 可解决,将内容替换为:

  mongo:
    image: mongo:5.0.18
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    container_name: mongo
    ports:
      - 27017:27017
    networks:
      - fastgpt
    command: mongod --keyFile /data/mongodb.key --replSet rs0
    environment:
      # 默认的用户名和密码,只有首次允许有效
      - MONGO_INITDB_ROOT_USERNAME=myname
      - MONGO_INITDB_ROOT_PASSWORD=mypassword
    volumes:
      - ./mongo/data:/data/db
      - ./mongodb.key:/data/mongodb.key
    entrypoint:
      - bash
      - -c
      - |
          chmod 400 /data/mongodb.key
          chown 999:999 /data/mongodb.key
          exec docker-entrypoint.sh $$@

第二步:修改config.json代码:

直接复制以下代码替换掉原来的:

bash 复制代码
{
  "systemEnv": {
    "openapiPrefix": "fastgpt",
    "vectorMaxProcess": 15,
    "qaMaxProcess": 15,
    "pgHNSWEfSearch": 100
  },
  "llmModels": [
    {
      "model": "gpt-3.5-turbo-1106",
      "name": "gpt-3.5-turbo",
      "maxContext": 16000,
      "maxResponse": 4000,
      "quoteMaxToken": 13000,
      "maxTemperature": 1.2,
      "inputPrice": 0,
      "outputPrice": 0,
      "censor": false,
      "vision": false,
      "datasetProcess": false,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {}
    },
    {
      "model": "gpt-3.5-turbo-16k",
      "name": "gpt-3.5-turbo-16k",
      "maxContext": 16000,
      "maxResponse": 16000,
      "quoteMaxToken": 13000,
      "maxTemperature": 1.2,
      "inputPrice": 0,
      "outputPrice": 0,
      "censor": false,
      "vision": false,
      "datasetProcess": true,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {}
    },
    {
      "model": "gpt-4-0125-preview",
      "name": "gpt-4-turbo",
      "maxContext": 125000,
      "maxResponse": 4000,
      "quoteMaxToken": 100000,
      "maxTemperature": 1.2,
      "inputPrice": 0,
      "outputPrice": 0,
      "censor": false,
      "vision": false,
      "datasetProcess": false,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {}
    },
    {
      "model": "gpt-4-vision-preview",
      "name": "gpt-4-vision",
      "maxContext": 128000,
      "maxResponse": 4000,
      "quoteMaxToken": 100000,
      "maxTemperature": 1.2,
      "inputPrice": 0,
      "outputPrice": 0,
      "censor": false,
      "vision": false,
      "datasetProcess": false,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {}
    }
  ],
  "vectorModels": [
    {
      "model": "text-embedding-ada-002",
      "name": "Embedding-2",
      "inputPrice": 0,
      "outputPrice": 0,
      "defaultToken": 700,
      "maxToken": 3000,
      "weight": 100,
      "defaultConfig": {}
    }
  ],
  "reRankModels": [],
  "audioSpeechModels": [
    {
      "model": "tts-1",
      "name": "OpenAI TTS1",
      "inputPrice": 0,
      "outputPrice": 0,
      "voices": [
        { "label": "Alloy", "value": "alloy", "bufferId": "openai-Alloy" },
        { "label": "Echo", "value": "echo", "bufferId": "openai-Echo" },
        { "label": "Fable", "value": "fable", "bufferId": "openai-Fable" },
        { "label": "Onyx", "value": "onyx", "bufferId": "openai-Onyx" },
        { "label": "Nova", "value": "nova", "bufferId": "openai-Nova" },
        { "label": "Shimmer", "value": "shimmer", "bufferId": "openai-Shimmer" }
      ]
    }
  ],
  "whisperModel": {
    "model": "whisper-1",
    "name": "Whisper1",
    "inputPrice": 0,
    "outputPrice": 0
  }
}

第三步:创建 mongo 密钥,赋予密钥文件权限:

打开终端, CD 进项目的目录,如果安装了宝塔,直接在项目的目录界面点击终端。

在终端输入代码:

bash 复制代码
openssl rand -base64 756 > ./mongodb.key
chmod 600 ./mongodb.key
chown 999:root ./mongodb.key

(!!!这一步很关键,如果不输入这一步,就无法启动Mongo容器,后面就会出现一系列令人抓狂的错误)

第四步:重启所有容器。

依次在终端输入以下代码:

bash 复制代码
# 重启 Mongo
docker-compose down
docker-compose up -d

此时,可以去Docker界面看看mongo是否正常启动,如果没有启动,就手动启动一下。

第五步:进入容器初始化部分集合

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

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

# 连接数据库(这里要填Mongo的用户名和密码)
mongo -u myusername -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()

第六步:更新容器

在终端输入以下代码:

bash 复制代码
docker-compose down && docker-compose pull && docker-compose up -d

此时刷新一下自己的FastGPT网站,应该就能显示4.6.8了。

可能会出现的问题:

  • 导入知识库时提示null value in column "tmb_id" of relation "modeldata" violates not-null constraint

    这可能是因为没有初始化4.6.7,或初始化4.6.7出现了某首错误,比如rootkey不正确;

  • 已经显示4.6.8,但对话或导入模型时提示没有模型。

    需要重新拉取最新的容器:

bash 复制代码
docker-compose down && docker-compose pull && docker-compose up -d
  • 初始化mongo副本集提示This node was not started with the replSet option
    这是因为mongodb.key的权限不够,需要再在终端输入:
bash 复制代码
chown 999:root ./mongodb.key
相关推荐
真忒修斯之船6 小时前
大模型分布式训练并行技术(三)流水线并行
面试·llm·aigc
SpikeKing6 小时前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架
数据智能老司机1 天前
LLM工程师手册——监督微调
深度学习·架构·llm
AI_小站1 天前
LLM——10个大型语言模型(LLM)常见面试题以及答案解析
人工智能·程序人生·语言模型·自然语言处理·大模型·llm·大模型面试
waiting不是违停2 天前
LangChain Ollama实战文献检索助手(二)少样本提示FewShotPromptTemplate示例选择器
langchain·llm·ollama
我爱学Python!2 天前
AI Prompt如何帮你提升论文中的逻辑推理部分?
人工智能·程序人生·自然语言处理·chatgpt·llm·prompt·提示词
AI_小站2 天前
多模态大模型微调实践!PAI+LLaMA Factory搭建AI导游
人工智能·程序人生·语言模型·大模型·llm·产品经理·多模态大模型
AI_小站2 天前
【AI工作流】FastGPT - 深入解析FastGPT工作流编排:从基础到高级应用的全面指南
人工智能·程序人生·语言模型·大模型·llm·fastgpt·大模型应用
蚝油菜花3 天前
MeetingMind:AI 会议助手,支持自动转录音频并提取会议中的关键信息
人工智能·开源·llm
Agile.Zhou4 天前
给 Ollama 穿上 GPT 的外衣
llm·ollama