document/content/self-host/upgrading/4-16/4162.mdx
V4.16.2 移除了 PARSE_FILE_WORKERS、PARSE_FILE_WORKER_MEMORY_LIMIT_MB、HTML_TO_MARKDOWN_WORKERS 和 TEXT_TO_CHUNKS_WORKERS。升级时请从 .env 或 Docker Compose 的 environment 中删除这些变量,无需配置替代变量。
文件解析 Worker 的硬上限会根据 Node.js 检测到的可用 CPU 并行度自动设置,并考虑容器 CPU 配额和进程亲和性,最少保留 1 个 Worker;实际同时运行的任务数还会受到文件解析内存调度限制。
HTML 转 Markdown 和文本切块 Worker 的硬上限为可用 CPU 并行度与 5 中的较小值。任务启动前会检查系统安全预留之外是否还有可调度内存;没有余量时继续排队,任务完成后会立即重试一次,仍不足时每 30 秒检查一次,最长等待 30 分钟。空闲 Worker 超过 60 秒后会自动回收,最多长时间保留 1 个。
本版本会先清理无效资源权限,再将 App、Dataset 和 Agent Skill 的资源权限补齐为完整有效 ACL。升级后请先执行 dry-run;dry-run 不会删除或写入权限数据。默认处理所有团队,也可以通过 teamId 指定单个团队。
curl -X POST 'https://你的域名/api/admin/4162/initPermission' \
-H 'Content-Type: application/json' \
-H 'rootkey: 你的ROOT_KEY' \
-d '{"dryRun":true,"teamConcurrency":100}'
确认 migration.errors 为空或已完成异常资源处理后,执行正式清理和迁移:
curl -X POST 'https://你的域名/api/admin/4162/initPermission' \
-H 'Content-Type: application/json' \
-H 'rootkey: 你的ROOT_KEY' \
-d '{"dryRun":false,"teamConcurrency":100}'
teamConcurrency 控制 ACL 迁移同时处理的团队数,范围为 1 到 1000,默认值为 100。同一团队内的 App、Dataset 和 Agent Skill 依次处理。单个团队的某类资源处理失败时,会将异常写入 migration.errors 并继续处理其他资源类型和团队。sampleLimit 控制 cleanup.samples 返回的无效权限样本数。返回结果分为 cleanup 和 migration 两部分:cleanup 包含扫描、命中和删除统计;migration.resourceCount 是扫描资源数,migration.updatedResourceCount 是需要写入的资源数,migration.skippedResourceCount 是因父级缺失或树结构异常而跳过的目标资源数,migration.errors 包含异常详情。迁移保留资源自身的 owner 和子级权限,父级资源链会按需读取,继承开关缺失的历史资源按启用继承处理。
dry-run 中的迁移预览基于清理前的当前权限数据;如果 cleanup 命中了无效权限,正式执行清理后的迁移统计可能与预览不同。
正式清理和迁移可安全重复执行;完成后再次执行 dry-run,确认 cleanup.danglingPermissionCount、migration.updatedResourceCount 和 migration.errors 均为 0。存在 migration.errors 时应先根据资源类型、资源 ID 和父级 ID 修复数据,再重试。
如果当前向量库是 Milvus,升级 FastGPT 前必须先将 Milvus 升级到 2.5.16 或更高版本。V4.16.2 会把全文检索自动切换到 Milvus BM25,并使用新的 modeldata_v2 集合存储向量和全文;Milvus 版本过低、版本无法识别或 BM25 能力校验失败时,FastGPT 会终止启动,不会回退到 MongoDB 全文检索。
已有 Milvus 部署升级时,必须确认旧向量数据仍然存在:
modeldata 集合存在且有数据:调用 GET /api/admin/4162/milvus,将旧向量和 MongoDB 中的索引文本合并迁移到 modeldata_v2,无需重新生成嵌入。$text。备份、Milvus 镜像升级、dry-run、断点续跑、结果校验、旧表清理和回滚步骤请严格按照 Milvus BM25 全文检索配置与迁移 执行。
modeldata_v2 单表的 BM25 全文检索。nodeResponse、toolResponse 及流式事件中同步展示失败信息。pluginOutput.error 保留为业务字段。read_files 工具节点并保留页数明细;知识库外部文件和 API 文件解析传递 usageId,避免费用归属丢失。valueType 为空或 null 时,聊天配置无法通过校验的问题。读取和保存聊天配置时会根据变量输入类型补齐 valueType,无法映射或值非法时回退为 any,并在保存前通过 Zod 校验;已有数据无需执行额外清洗脚本。type: object params。FileSource,仅在 Worker 获得执行槽位和初始资源额度后物化文件内容: