手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

2025-06-03 12:12:46 1点赞 12收藏 0评论

Hello 大家好,我是 David

订阅我的频道 ,分享更多 NAS 教程和资讯 ~

FastGPT:

一个基于 LLM 大模型的开源 AI 知识库构建平台。提供了开箱即用的数据处理、模型调用、RAG 检索、可视化 AI 工作流编排等能力,帮助您轻松构建复杂的 AI 应用。

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

部署架构图:

  • MongoDB:用于存储除了向量外的各类数据

  • PostgreSQL/Milvus:存储向量数据

  • OneAPI: 聚合各类 AI API,支持多模型调用 (任何模型问题,先自行通过 OneAPI 测试校验)

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

在线使用:

国际版:https://tryfastgpt.ai

国内版:https://fastgpt.cn

安装

一共有 3 个不同版本可以选择:PgVector版本、Milvus版本、zilliz cloud版本,具体区别可以看下图。下面演示安装的是 PgVector 轻量版,其他版本部署也是类似。

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

TIP:

下面提供的 docker-compose.yml 是我修改过统一容器名称的,需要原汁原味的可以去官方下载即可。

下载最新 docker-compose.yml 文件(文件重命名,端口被占用的话自行修改即可)

https://github.com/labring/FastGPT/blob/main/deploy/docker/docker-compose-pgvector.yml

# 数据库的默认账号和密码仅首次运行时设置有效 # 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~ # 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。 # 如何无法访问 dockerhub 和 git,可以用阿里云(阿里云没有arm包) services: # db fastgpt-pg: image: pgvector/pgvector:0.8.0-pg15 # docker hub # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.8.0-pg15 # 阿里云 container_name: fastgpt-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 healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres', '-d', 'postgres'] interval: 5s timeout: 5s retries: 10 fastgpt-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: fastgpt-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: "fastgpt-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 $$! fastgpt-redis: image: redis:7.2-alpine container_name: fastgpt-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 healthcheck: test: ['CMD', 'redis-cli', '-a', 'mypassword', 'ping'] interval: 10s timeout: 3s retries: 3 start_period: 30s volumes: - ./redis/data:/data # fastgpt fastgpt-sandbox: container_name: fastgpt-sandbox image: ghcr.io/labring/fastgpt-sandbox:v4.9.10-fix2 # git # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.9.10-fix2 # 阿里云 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server image: ghcr.io/labring/fastgpt-mcp_server:v4.9.10-fix2 # git # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.9.10-fix2 # 阿里云 ports: - 3005:3000 networks: - fastgpt restart: always environment: - FASTGPT_ENDPOINT=http://fastgpt:3000 fastgpt: container_name: fastgpt image: ghcr.io/labring/fastgpt:v4.9.10-fix2 # git # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.9.10-fix2 # 阿里云 ports: - 3000:3000 networks: - fastgpt depends_on: - fastgpt-mongo - fastgpt-pg - fastgpt-sandbox restart: always environment: # 前端外部可访问的地址,用于自动补全文件资源路径。例如 https:fastgpt.cn,不能填 localhost。这个值可以不填,不填则发给模型的图片会是一个相对路径,而不是全路径,模型可能伪造Host。 - FE_DOMAIN= # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。 - DEFAULT_ROOT_PSW=1234 # AI Proxy 的地址,如果配了该地址,优先使用 - AIPROXY_API_ENDPOINT=http://fastgpt-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@fastgpt-mongo:27017/fastgpt?authSource=admin # pg 连接参数 - PG_URL=postgresql://username:password@fastgpt-pg:5432/postgres # Redis 连接参数 - REDIS_URL=redis://default:mypassword@fastgpt-redis:6379 # sandbox 地址 - SANDBOX_URL=http://fastgpt-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 fastgpt-aiproxy: image: ghcr.io/labring/aiproxy:v0.1.7 # image: registry.cn-hangzhou.aliyuncs.com/labring/aiproxy:v0.1.7 # 阿里云 container_name: fastgpt-aiproxy restart: unless-stopped depends_on: fastgpt-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@fastgpt-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 fastgpt-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: fastgpt-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:

下载最新 config.json 文件(修改 mcpServerProxyEndpoint 访问地址)

https://raw.githubusercontent.com/labring/FastGPT/refs/heads/main/projects/app/data/config.json

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

创建 fastgpt 文件夹,将 docker-compose.yml 和 config.json 文件放到里面

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

连接 SSH ,文件给一下 777 权限

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

直接构建项目就可以了(如果很久都没启动建议看看日志报错)

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

如果遇到问题,建议查看官网文档:

https://doc.fastgpt.cn/docs/development/docker

使用

浏览器中输入 http://NAS的IP:3000 就能看到界面

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

TIP:

默认账号是 root,密码为 1234,修改账号和密码需要可以去 docker-compose.yml 文件里配置,Web 界面好像是没有这个功能的。

输入账号和密码进行登录

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

模型供应商

首先需要添加模型供应商

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

支持的厂商还是比较多的

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

这里添加了 moonshot 作为演示,建议将相关供应商模型都勾选上

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

添加完成,测试一下是否正常工作

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

批量测试有可能同时调用 API ,导致提示失败,可以一个个手动点击

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

模型配置,选择模型提供商

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

点击模型测试(需要前面选择了模型才行的),没有问题就可以启用

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

如果创建知识库,需要 3 种类别模型分别是:索引模型,文本理解模型,图片理解模型。下面已经有了图片理解模型(视觉)和文本理解模型(语言模型),还差一个索引模型。

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

不清楚索引模型有哪些,可以点击这里查看

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

为了补齐索引模型,后面我又添加了openai 的接口

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

知识库

点击创建一个知识库,选择通用的就行

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

填写知识库名称,选择模型

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

导入文本数据集

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

这里我导入了 3 个 txt 文本作为测试

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

数据处理就不配置了,都是默认

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

点击文件可以进行预览,进行调整

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

最后上传文本

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

因为数据不是很多,所以很快就索引完成了

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

点击“搜索测试”

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

效果也还行,都可以索引出来(效果不好的,可以自行调节参数)

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

这样知识库就创建好了

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

工作流

创建一个简易应用

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

这里选择用上前面创建的知识库

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

先看看没有知识库前的回复效果

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

添加知识库,明显更有条理了

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

点击“保存并发布”(这里还有很多功能我是没提到了,感兴趣的自行探索了)

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

这样就创建好一个应用了,点击“去对话”就可以直接使用了

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

TIP:

打开新对话会出现“广告”,编辑一下对话开场白就没了

效果不错,会自动引用知识库内容

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

其他

系统插件,这里默认是已经都安装好的了,需要的时候去应用配置就行了

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

模板市场,虽然不是很多,但可以选一个看看别人的工作流

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

右上角,点击“运行”

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

提问也会回答问题,不过感觉不太聪明的样子

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

点击详情查看,一开始还比较正常后面就逐渐偏离主题

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

总结

FastGPT 的功能十分强大,不过由于我平时不常用,所以只能简单的演示。与 Dify 这类工具相比,FastGPT 显得更为轻量,在资源占用方面也更少。在进行设置操作时,能明显感受到它的反应更为快。

综合推荐:⭐⭐⭐(比较轻量,占用资源较少)

使用体验:⭐⭐⭐(还不错,使用简单)

部署难易:⭐⭐⭐⭐(有点难度)︎

资源占用情况

手把手教你在 NAS 部署 FastGPT,构建智能 AI 模型问答知识库

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
12
扫一下,分享更方便,购买更轻松