FastGPT Docker Compose本地部署与硅基流动免费AI接口集成指南

本文参考:https://doc.tryfastgpt.ai/docs/development/

一、背景与技术优势

FastGPT是基于LLM的知识库问答系统,支持自定义数据训练与多模型接入。硅基流动(SiliconFlow)作为AI基础设施平台,提供高性能大模型推理引擎SiliconLLM和免费API服务。通过Docker部署FastGPT并结合硅基流动API,可实现低成本、高灵活性的AI应用开发。

技术优势

  1. 本地数据隐私:敏感数据无需上传云端,符合《数据安全法》要求。

  2. 成本优化:硅基流动提供Qwen2-7B、GLM-4-9B等模型永久免费API,降低Token成本。

  3. 性能加速:硅基流动自研推理引擎SiliconLLM生成速度较开源产品快10倍。

二、环境准备

1. 系统要求

  • 操作系统:Linux(推荐Ubuntu 22.04)

  • 硬件:至少8GB内存,推荐NVIDIA GPU(如RTX 3060)

  • 软件:Docker 24.0+、Docker Compose 2.20+

2. 安装Docker与Docker Compose

Centos7一键安装docker

yum install nano -y

nano install_docker.sh

复制代码
#!/bin/bash
​
# 设置阿里云的YUM仓库
cat > /etc/yum.repos.d/docker-ce.repo <<EOF
[docker-ce-stable]
name=Docker CE Stable - \$basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF
​
# 安装所需的包
yum install -y yum-utils device-mapper-persistent-data lvm2
​
# 更新YUM缓存
yum makecache fast
​
# 安装nano
yum -y install nano
​
# 安装Docker CE
yum install -y docker-ce
​
# 启用Docker服务(开机自启)
systemctl enable docker
​
# 启动Docker服务
systemctl start docker
​
echo "Docker has been installed and started!"
​
# chmod +x install_docker.sh;sh install_docker.sh
​

docker阿里云镜像

复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
 "registry-mirrors": [
     "https://docker.1panel.live"
 ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、FastGPT Docker部署

1. 创建项目目录

进入你的安装根目录,例如/home

复制代码
mkdir fastgpt && cd fastgpt

2. 下载配置文件

复制代码
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-pgvector.yml

config.json 2025年4月21日

复制代码
// 已使用 json5 进行解析,会自动去掉注释,无需手动去除
{
  "feConfigs": {
    "lafEnv": "https://laf.dev", // laf环境。 https://laf.run (杭州阿里云) ,或者私有化的laf环境。如果使用 Laf openapi 功能,需要最新版的 laf 。
    "mcpServerProxyEndpoint": "" // mcp server 代理地址,例如: http://localhost:3005
  },
  "systemEnv": {
    "vectorMaxProcess": 10, // 向量处理线程数量
    "qaMaxProcess": 10, // 问答拆分线程数量
    "vlmMaxProcess": 10, // 图片理解模型最大处理进程
    "tokenWorkers": 30, // Token 计算线程保持数,会持续占用内存,不能设置太大。
    "hnswEfSearch": 100, // 向量搜索参数,仅对 PG 和 OB 生效。越大,搜索越精确,但是速度越慢。设置为100,有99%+精度。
    "customPdfParse": {
      "url": "", // 自定义 PDF 解析服务地址
      "key": "", // 自定义 PDF 解析服务密钥
      "doc2xKey": "", // doc2x 服务密钥
      "price": 0 // PDF 解析服务价格
    }
  }
}

docker-compose. yml PgVector版本 2025年4月21日

复制代码
# 数据库的默认账号和密码仅首次运行时设置有效
# 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~
# 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。
# 如何无法访问 dockerhub 和 git,可以用阿里云(阿里云没有arm包)
​
version: '3.3'
services:
  # db
  pg:
    image: pgvector/pgvector:0.8.0-pg15 # docker hub
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.8.0-pg15 # 阿里云
    container_name: pg
    restart: always
    # ports: # 生产环境建议不要暴露
    #   - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data
  mongo:
    image: mongo:5.0.18 # dockerhub
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    # image: mongo:4.4.29 # cpu不支持AVX时候使用
    container_name: mongo
    restart: always
    # ports:
    #   - 27017:27017
    networks:
      - fastgpt
    command: mongod --keyFile /data/mongodb.key --replSet rs0
    environment:
      - MONGO_INITDB_ROOT_USERNAME=myusername
      - MONGO_INITDB_ROOT_PASSWORD=mypassword
    volumes:
      - ./mongo/data:/data/db
    entrypoint:
      - bash
      - -c
      - |
        openssl rand -base64 128 > /data/mongodb.key
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        echo 'const isInited = rs.status().ok === 1
        if(!isInited){
          rs.initiate({
              _id: "rs0",
              members: [
                  { _id: 0, host: "mongo:27017" }
              ]
          })
        }' > /data/initReplicaSet.js
        # 启动MongoDB服务
        exec docker-entrypoint.sh "$$@" &
​
        # 等待MongoDB服务启动
        until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')"; do
          echo "Waiting for MongoDB to start..."
          sleep 2
        done
​
        # 执行初始化副本集的脚本
        mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js
​
        # 等待docker-entrypoint.sh脚本执行的MongoDB服务进程
        wait $$!
​
  redis:
    image: redis:7.2-alpine
    container_name: redis
    # ports:
    # - 6379:6379
    networks:
      - fastgpt
    restart: always
    command: |
      redis-server --requirepass mypassword --loglevel warning --maxclients 10000 --appendonly yes --save 60 10 --maxmemory 4gb --maxmemory-policy noeviction
    volumes:
      - ./redis/data:/data
​
  # fastgpt
  sandbox:
    container_name: sandbox
    image: ghcr.io/labring/fastgpt-sandbox:v4.9.6 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.9.6 # 阿里云
    networks:
      - fastgpt
    restart: always
  fastgpt-mcp-server:
    container_name: fastgpt-mcp-server
    image: ghcr.io/labring/fastgpt-mcp_server:v4.9.6 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.9.6 # 阿里云
    ports:
      - 3005:3000
    networks:
      - fastgpt
    restart: always
    environment:
      - FASTGPT_ENDPOINT=http://fastgpt:3000
  fastgpt:
    container_name: fastgpt
    image: ghcr.io/labring/fastgpt:v4.9.6 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.9.6 # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
      - sandbox
    restart: always
    environment:
      # 前端外部可访问的地址,用于自动补全文件资源路径。例如 https:fastgpt.cn,不能填 localhost。这个值可以不填,不填则发给模型的图片会是一个相对路径,而不是全路径,模型可能伪造Host。
      - FE_DOMAIN=
      # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
      - DEFAULT_ROOT_PSW=1234
      # AI Proxy 的地址,如果配了该地址,优先使用
      - AIPROXY_API_ENDPOINT=http://aiproxy:3000
      # AI Proxy 的 Admin Token,与 AI Proxy 中的环境变量 ADMIN_KEY
      - AIPROXY_API_TOKEN=aiproxy
      # 数据库最大连接数
      - DB_MAX_LINK=30
      # 登录凭证密钥
      - TOKEN_KEY=any
      # root的密钥,常用于升级时候的初始化请求
      - ROOT_KEY=root_key
      # 文件阅读加密
      - FILE_TOKEN_KEY=filetoken
      # MongoDB 连接参数. 用户名myusername,密码mypassword。
      - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
      # pg 连接参数
      - PG_URL=postgresql://username:password@pg:5432/postgres
      # Redis 连接参数
      - REDIS_URL=redis://default:mypassword@redis:6379
      # sandbox 地址
      - SANDBOX_URL=http://sandbox:3000
      # 日志等级: debug, info, warn, error
      - LOG_LEVEL=info
      - STORE_LOG_LEVEL=warn
      # 工作流最大运行次数
      - WORKFLOW_MAX_RUN_TIMES=1000
      # 批量执行节点,最大输入长度
      - WORKFLOW_MAX_LOOP_TIMES=100
      # 自定义跨域,不配置时,默认都允许跨域(多个域名通过逗号分割)
      - ALLOWED_ORIGINS=
      # 是否开启IP限制,默认不开启
      - USE_IP_LIMIT=false
      # 对话文件过期天数
      - CHAT_FILE_EXPIRE_TIME=7
    volumes:
      - ./config.json:/app/data/config.json
​
  # AI Proxy
  aiproxy:
    image: ghcr.io/labring/aiproxy:v0.1.7
    # image: registry.cn-hangzhou.aliyuncs.com/labring/aiproxy:v0.1.7 # 阿里云
    container_name: aiproxy
    restart: unless-stopped
    depends_on:
      aiproxy_pg:
        condition: service_healthy
    networks:
      - fastgpt
    environment:
      # 对应 fastgpt 里的AIPROXY_API_TOKEN
      - ADMIN_KEY=aiproxy
      # 错误日志详情保存时间(小时)
      - LOG_DETAIL_STORAGE_HOURS=1
      # 数据库连接地址
      - SQL_DSN=postgres://postgres:aiproxy@aiproxy_pg:5432/aiproxy
      # 最大重试次数
      - RETRY_TIMES=3
      # 不需要计费
      - BILLING_ENABLED=false
      # 不需要严格检测模型
      - DISABLE_MODEL_CONFIG=true
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/status']
      interval: 5s
      timeout: 5s
      retries: 10
  aiproxy_pg:
    image: pgvector/pgvector:0.8.0-pg15 # docker hub
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.8.0-pg15 # 阿里云
    restart: unless-stopped
    container_name: aiproxy_pg
    volumes:
      - ./aiproxy_pg:/var/lib/postgresql/data
    networks:
      - fastgpt
    environment:
      TZ: Asia/Shanghai
      POSTGRES_USER: postgres
      POSTGRES_DB: aiproxy
      POSTGRES_PASSWORD: aiproxy
    healthcheck:
      test: ['CMD', 'pg_isready', '-U', 'postgres', '-d', 'aiproxy']
      interval: 5s
      timeout: 5s
      retries: 10
networks:
  fastgpt:

3. 修改配置文件

编辑docker-compose.yml​:

复制代码
services:
  fastgpt:
    environment:
      - OPENAI_BASE_URL=https://api.siliconflow.cn/v1  # 硅基流动API端点
      - CHAT_API_KEY=your_api_key_here  # 替换为实际API密钥

4. 启动容器

复制代码
docker-compose up -d

5. 验证部署

访问http://localhost:3000​,若看到FastGPT界面,则部署成功。

访问 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;​可忽略。

​

四、硅基流动免费API配置

1. 注册与申请API密钥

  1. 访问硅基流动官网(cloud.siliconflow.cn),使用邀请码PnsFln9M​注册。

  2. 登录后进入"API密钥"页面,创建新密钥并复制。

​

2. 模型选择与配置

硅基流动支持的模型包括:

  • Qwen2-7B(免费)

  • DeepSeek-R1(需付费或试用)

在FastGPT中配置模型

​

示例为Qwen2.5-7B-Instruct

​

​

自定义请求地址:

https://api.siliconflow.cn/v1/chat/completions

自定义请求 Key:

输入你的秘钥

‍

五、集成与测试

1. 创建知识库

  1. 在FastGPT控制台上传文档(PDF/TXT等)。

  2. 选择"知识库管理"→"新建知识库",配置向量化模型(如M3E)。

​

然后进入数据库添加知识文件

​

​

​

六、常见问题与解决方案

问题描述 解决方案
MongoDB版本不兼容 修改docker-compose.yml​中的Mongo镜像版本为4.4.24。
API密钥无效 检查密钥格式是否正确,确保未包含空格或特殊字符。
模型响应速度慢 调整模型参数(如降低温度),或升级GPU资源。
端口冲突 修改docker-compose.yml​中的端口映射(如8080:3000​)。
相关推荐
龙亘川2 分钟前
电子印章安全审计管理业务建模:从证书密钥、安全策略到审计预警的全链路闭环
运维·人工智能·安全·智慧城市·开源软件·数据可视化
饼饼学习空间智能6 分钟前
物流仓储机器人训练数据从哪来?真机、仿真与数据回流技术解析
人工智能
2501_938140072 小时前
做内容很省心,2026好用AI笔记,支持抖音小红书视频无水印保存
人工智能
sell-cloud5 小时前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国6 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI7 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区7 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris9 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy9 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V9 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai