FastGPT 开源实践:基于 LLM 的知识库与 AI Agent 构建平台,Docker 快速部署指南
【免费下载链接】FastGPTFastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orchestration, letting you easily develop and deploy complex question-answering systems without the need for extensive setup or configuration.项目地址: https://gitcode.com/GitHub_Trending/fa/FastGPT
FastGPT 是一个基于大语言模型(LLM)的 AI Agent 构建平台,提供开箱即用的数据处理与模型调用能力,并通过 Flow 可视化编排工作流,从而支撑复杂的问答与自动化应用场景。本文以仓库官方 README 为骨架,结合部署脚本、docker-compose 模板与源码结构,系统讲解 FastGPT 的定位、Docker 快速部署流程、容器化架构、五大核心能力及安装后的初始化要点,帮助读者在十几分钟内从零跑通一个可用的 FastGPT 实例,并理解其底层工程实现。
一、FastGPT 是什么:一个开箱即用的 AI Agent 构建平台
根据 README_vi.md(越南语版 README,与 README.md 内容一致)的项目定位,FastGPT 是:
一个 AI Agent 构建平台,提供开箱即用的数据处理、模型调用等能力,同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的应用场景。
围绕这一核心定位,项目提供三种使用形态:
- 云服务版本:无需私有化部署,直接使用官方托管的在线服务;
- 社区自托管版本:通过 Docker 快速部署,或使用 Sealos Cloud 一键部署;
- 商业版本:提供更完整的功能与深度服务支持,并附带场景落地辅导。
从仓库工程结构看,这是一个典型的 monorepo(参见根目录 package.json、pnpm-workspace.yaml),核心代码按职责划分为:
- packages/service:后端业务逻辑(common/core/support/worker);
- packages/web:前端 UI 组件、hooks 与国际化;
- packages/global:跨端共享的类型、工具与 OpenAPI 定义;
- packages/dal:Redis 等数据访问层;
- projects/app:FastGPT 主站应用;
- projects/code-sandbox、projects/agent-sandbox 等:代码沙箱与 Agent 沙箱运行时;
- document:官方文档站(MDX 内容与部署资源)。
二、快速开始:两条命令完成 Docker 部署
README 提供了一条极简的快速启动路径:在终端执行脚本拉取配置,再用docker compose启动即可。
# 输入命令拉取配置文件 bash <(curl -fsSL https://doc.fastgpt.io/deploy/install.sh) # 启动 docker compose up -d完全启动后,通过http://localhost:3000访问 FastGPT,默认账号为root,密码为1234。
这条命令所对应的安装脚本实体就保存在仓库中:document/public/deploy/install.sh。它是纯 bash 实现,行为完全可审计:
- 提供方向键(↑↓)交互式单选菜单(
radio_select),用于选择部署版本、镜像源、向量数据库等; - 支持通过环境变量实现非交互式安装:
FASTGPT_NON_INTERACTIVE=true时,所有选择均可通过FASTGPT_DEPLOY_VERSION、FASTGPT_REGION、FASTGPT_VECTOR、FASTGPT_AUTO_GENERATE_CREDENTIALS、FASTGPT_FE_DOMAIN等变量预先指定; - 会下载官方生成的
docker-compose.yml(必要时同时下载旧版所需的config.json),并对文件做合法性校验(校验services:关键字、拒绝 HTML 页面与空文件); - 自动探测宿主机 IP 与 Docker socket 路径,并改写 compose 中的端口映射与挂载路径。
安装完成后,脚本会提示后续操作:
- 预拉取镜像:
docker compose --profile prepull pull(若 compose 中存在沙箱镜像定义); - 启动服务:
docker compose up -d; - 按映射配置防火墙或反向代理;
- 访问
http://localhost:3000(以实际 FE 地址为准); - 使用默认账号
root及脚本回显的密码登录; - 在「账号-模型提供商」页面配置模型。
提示:README 中默认密码
1234仅在未启用自动密钥生成时有效。安装脚本支持选择「自动生成(推荐)」,此时会通过random_hex()随机化 root 登录密码、系统密钥(x-system-key)、FILE_TOKEN_KEY、AES256_SECRET_KEY、INVOKE_TOKEN_SECRET、MongoDB/Redis/MinIO 等组件密码,并在结尾回显 root 密码,务必妥善保存生成的docker-compose.yml。
三、容器化架构:一张 docker-compose 看懂整个系统
官方部署模板位于 deploy/version/main/docker-compose.template.yml(本地开发版见 deploy/dev/docker-compose.yml),公开下载产物按版本/区域/向量库组合生成在 document/public/deploy/docker/main(含pg、milvus、zilliz、oceanbase、seekdb、opengauss六种向量库组合)。以 main 稳定版为例,完整的服务组成如下:
| 服务 | 端口映射 | 职责 |
|---|---|---|
fastgpt-app | 3000:3000 | FastGPT 主应用(前端 + API) |
fastgpt-mongo | 内网 | MongoDB 5.0,主业务数据库(以副本集模式启动) |
fastgpt-redis | 内网 | Redis 7.2,缓存与队列 |
fastgpt-minio | 9000/9001 | 对象存储,用于文件资源 |
fastgpt-vector(PG 等) | 内网 | 向量数据库,随所选向量库方案变化 |
fastgpt-code-sandbox | 3002 | 代码沙箱(JS/Python) |
fastgpt-plugin | 3004 | 插件服务(系统工具) |
fastgpt-opensandbox-server | 8090 | Agent 沙盒控制器(管理容器生命周期) |
fastgpt-volume-manager | 3005 | 卷管理微服务(幂等创建/删除命名卷或 PVC) |
fastgpt-agent-sandbox-proxy | 3006:1006 | 浏览器与 OpenSandbox 之间的 WebSocket 鉴权代理 |
fastgpt-aiproxy/fastgpt-aiproxy-pg | 3010 | AI Proxy 模型聚合网关及其数据库 |
模板中大量使用 YAML anchor 复用配置块,理解这些 anchor 是自定义部署的关键:
x-share-db-config:数据库与对象存储连接配置,包括MONGODB_URI、REDIS_URL,以及对象存储系列变量(STORAGE_VENDOR: minio、STORAGE_REGION、STORAGE_ACCESS_KEY_ID、STORAGE_SECRET_ACCESS_KEY、STORAGE_PUBLIC_BUCKET、STORAGE_PRIVATE_BUCKET、STORAGE_S3_ENDPOINT、STORAGE_S3_FORCE_PATH_STYLE等),STORAGE_VENDOR支持minio | aws-s3 | cos | oss;x-log-config:日志配置,可开关控制台输出与 OpenTelemetry(OTEL)上报;x-no-proxy-config:显式绕过 compose 内部服务的代理,避免内部请求被HTTP_PROXY/HTTPS_PROXY劫持;x-agent-sandbox-config:Agent 沙盒相关配置,如AGENT_SANDBOX_PROXY_URL、AGENT_SANDBOX_PROXY_SECRET、AGENT_SANDBOX_CPU_COUNT、AGENT_SANDBOX_MEMORY_MIB、AGENT_SANDBOX_SUSPEND_MINUTES等;- 基础安全变量:
FE_DOMAIN(客户端访问地址,用于补全文件资源路径)、ROOT_KEY(最高权限密钥)、DEFAULT_ROOT_PSW(root 密码,重启后强制重置为环境变量值)、AES256_SECRET_KEY、INVOKE_TOKEN_SECRET(至少 32 位)。
向量库的选择逻辑由 deploy/templates/vector/config.json 定义,deploy/init.mjs 会在构建阶段把各向量库的db/config/extra片段注入到${{vec.*}}占位符中,生成按版本/区域/向量库排列的成品 compose 文件,镜像 tag 则来自 deploy/version/main/args.json(如fastgpt: v4.16.2、mongo: 5.0.32、redis: 7.2-alpine,并区分阿里云cn与global两套镜像仓库)。
四、五大核心能力详解
README 以功能清单形式列出了 FastGPT 的核心能力,可分为五大板块:
1. 应用编排能力
- Agent Skill 编排:将能力封装为可复用的 Skill,支持组合调用;
- 对话工作流、插件工作流:可视化 Flow 编排,包含基础的RPA 节点;
- 用户交互:工作流中支持与用户进行多轮交互;
- 双向 MCP:支持 MCP(Model Context Protocol)的双向集成;
- 规划中:辅助生成工作流(未勾选,表示尚未完成)。
2. 应用调试能力
- 知识库单点搜索测试:对单个知识库进行检索效果验证;
- 对话时反馈引用并可修改与删除:回答附带的引用来源支持编辑与删除;
- 完整调用链路日志:可追踪一次对话的完整调用链;
- 应用评测:对应用整体效果进行评测;
- 规划中:高级编排 DeBug 调试模式、应用节点日志。
3. 知识库能力
- 多库复用、混用:单个应用可同时关联多个知识库;
- chunk 记录修改和删除:对切片记录进行细粒度维护;
- 多种导入方式:手动输入、直接分段、QA 拆分导入;
- 多格式文件支持:TXT、MD、HTML、PDF、Docx、PPTX、CSV、XLSX(更多 File Loader 可通过 PR 补充),并支持URL 读取与CSV 批量导入;
- 混合检索 & 重排:组合多种检索方式并做 rerank;
- API 知识库:以 API 方式对接外部知识库。
4. 插件能力
- 系统工具热更新:工具类插件支持不重启服务的热更新;
- 规划中:RAG 模块热更新、Agent-loop 热更新、AI 实时生成插件。
5. 运营能力
- 免登录分享窗口:无需登录即可分享对话应用;
- iframe 一键嵌入:将应用嵌入自有网站;
- 统一查阅对话记录,并对数据进行标注:集中管理对话日志与标注;
- 应用运营日志:记录应用的运行与使用情况。
五、从 README 到源码:能力背后的工程支撑
FastGPT 的功能声明并非空谈,仓库源码为其提供了可验证的实现支撑:
- 主业务逻辑集中在 packages/service/core(441 个
.ts文件,覆盖知识库、对话、工作流编排等)与 projects/app/src(主站前后端); - 前端工作流编排交互位于 packages/web/components,知识库相关操作可在 packages/service/core/dataset(从目录结构推断)中定位到导入、切片、检索等模块;
- 插件系统由独立的
fastgpt-plugin服务承载,与主站通过PLUGIN_BASE_URL/PLUGIN_TOKEN对接; - 沙箱与 RPA 能力依赖
code-sandbox、opensandbox-server、agent-sandbox-proxy与volume-manager四个独立服务协同,这解释了为什么新版 docker-compose 的依赖链如此之长; - 单元测试与集成测试覆盖核心逻辑,见 packages/service/test、test 与各包的
vitest.config.ts。
也就是说,README 描述的"数据处理、RAG 检索、可视化工作流编排"在工程上分别对应着 Mongo/PG 数据层、packages/service的检索链路,以及前端 Flow 编辑器 + 后端工作流执行引擎。
六、部署后的初始化与使用要点
完成docker compose up -d之后,建议按以下顺序初始化:
- 确认服务健康:
docker compose ps观察各服务健康状态(compose 中为关键服务定义了 healthcheck); - 登录系统:使用
root账号与安装脚本回显的密码登录(若未启用自动密钥生成,则为1234); - 配置模型:在「账号-模型提供商」页面配置 LLM、向量化与重排模型(这也是 FastGPT 运行对话与知识库检索的前提);
- 创建知识库与应用:导入文档构建知识库,再通过 Flow 编排应用;
- 对外发布:根据实际网络环境,通过防火墙放行端口或将
3000(主站)、3006(Sandbox Proxy)置于反向代理之后。
需要注意的适用前提与限制:
- 模板中 MongoDB 使用副本集(
--replSet rs0)模式,这是事务能力的前提,不要以单机模式启动; - 若宿主机 CPU 不支持 AVX 指令集,README 与 compose 注释均提示可切换到旧版镜像(如 Mongo 4.4.29、MinIO cpuv1 版本);
- 若遇到部署问题,可查阅仓库内 document/content/self-host/troubleshooting 下的故障排查文档(10 个 MDX 文件),以及完整的 Docker 部署教程(document/content/self-host/deploy)。
七、开源协议与合规要点
本仓库遵循 FastGPT Open Source License,README 明确列出的三条核心约定:
- 允许作为后台服务直接商用,但不允许提供 SaaS 服务;
- 未经商业授权,任何形式的商用服务均需保留相关版权信息;
- 完整条款以 LICENSE 文件为准,商业授权可联系官方获取定价说明。
结语
FastGPT 以"开箱即用"为设计主线:Docker 两条命令即可拉起完整服务栈,Flow 可视化让复杂工作流编排变得直观,知识库的多样导入与混合检索覆盖了 RAG 的主流落地形态。结合 deploy 目录下的模板生成机制与 packages/service 的模块化实现,无论是快速搭建演示环境、深度定制业务逻辑,还是研究 AI Agent 平台工程化方案,这个仓库都提供了完整且可验证的参考。上手第一步,就是执行 README 中的两条 Docker 命令。
【免费下载链接】FastGPTFastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orchestration, letting you easily develop and deploy complex question-answering systems without the need for extensive setup or configuration.项目地址: https://gitcode.com/GitHub_Trending/fa/FastGPT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考