📦 升级指南
镜像变更
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.0-beta3
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.0-beta3
- 更新 fastgpt-code-sandbox 镜像 tag: v4.15.0-beta3
环境变量变更
Code Sandbox 新增 SANDBOX_API_MAX_BODY_MB、SANDBOX_MAX_OUTPUT_MB 等安全相关环境变量,并支持通过 queueId 对运行接口做分组排队;完整默认值如下:
| 变量 | 默认值 | 说明 |
|---|---|---|
SANDBOX_API_MAX_BODY_MB
| 8
| /sandbox API JSON 请求体总大小上限,包含 variables,单位 MB。
|
SANDBOX_MAX_OUTPUT_MB
| 10
| 单次代码执行输出 JSON 大小上限,包含返回值和日志,单位 MB。 |
CHECK_INTERNAL_IP
| true
| 沙箱网络请求默认开启内网 IP 检查,降低 SSRF 风险。 |
SANDBOX_MAX_TIMEOUT
| 60000
| 单次代码执行超时时间,单位毫秒。 |
SANDBOX_MAX_MEMORY_MB
| 256
| 单个沙箱内存上限,单位 MB;运行时会额外预留 50 MB 开销。
|
SANDBOX_POOL_SIZE
| 20
| JS/Python 预热 worker 数量。 |
SANDBOX_REQUEST_MAX_COUNT
| 30
| 单次代码执行允许发起的最大网络请求数。 |
SANDBOX_REQUEST_TIMEOUT
| 60000
| 沙箱内单次网络请求超时时间,单位毫秒。 |
SANDBOX_REQUEST_MAX_RESPONSE_MB
| 10
| 沙箱内单次网络响应体最大大小,单位 MB。 |
SANDBOX_REQUEST_MAX_BODY_MB
| 5
| 沙箱内单次网络请求体最大大小,单位 MB。 |
SANDBOX_QUEUE_ID_CONCURRENCY
| 空 | 同一个 queueId 同时可进入执行流程的请求数;为空时不启用排队。
|
/sandbox/js 和 /sandbox/python 请求体新增可选字段 queueId。当配置 SANDBOX_QUEUE_ID_CONCURRENCY 且请求传入有效 queueId 时,同一 queueId 的请求会按 FIFO 排队;不同 queueId 或未传 queueId 的请求不受该限制,仍只受 worker 池并发限制影响。
🚀 新增内容
- 多模态模型支持音视频输入。
- 分享链接/门户页,支持语言切换,不再强制自动识别浏览器语言切换。
⚙️ 优化
- Skill 模块相关弹窗样式。
- Skill list 接口性能。
- 工作流节点名称和介绍输入。
- 工作流编辑页,因登录失效,跳出后自动保存草稿用于恢复。
- 登录页 UI。
🐛 修复
- TTS 语音播放适配最新 OpenAI SDK,避免报错。
- 知识库数据分块,遇到代码块时,可能出现超大分块。
🛠️ 代码优化
- 调整 token 计算依赖,提高性能。
- 重写了对话框相关代码,进行模块化细分。
- 优化单测性能,全量从 10 分支将至 5 分钟。
- 升级 ts6。
- GitHub action 增强安全性。
What's Changed
- Perf code by @c121914yu in #6978
- doc by @c121914yu in #6981
- chore: remove logger package by @xqvvu in #6979
- feat: support multimodal LLM inputs by @YYH211 in #6967
- feat(app): introduce resource reference index and optimize skill appCount query performance by @DigHuang in #6980
- test: parallelize Mongo-backed Vitest suites by @c121914yu in #6984
- fix(service): convert web readable stream to node stream in text2Speech by @DigHuang in #6985
- refactor(chat): split ChatBox into hooks, utils and UI modules by @xqvvu in #6966
- upgrade ts6 by @c121914yu in #6986
- fix(chat): isolate share chat cache keys by @xqvvu in #6988
- refactor(web): upgrade v2 MyModal padding layout and migrate skill workspace modals by @DigHuang in #6987
- feat: persist share chat language preference by @YYH211 in #6982
- feat(app): implement workflow node inline edit and spacing updates by @DigHuang in #6989
- chore: harden GitHub Actions workflows by @c121914yu in #6991
- fix: clarify MCP key runtime authorization snapshot by @c121914yu in #6992
- Fix chat login by @c121914yu in #6993
- chore: require OpenSandbox credentials by @c121914yu in #6994
- fix: harden code sandbox resource limits by @c121914yu in #6997
- refactor(skill): remove duplicate name constraint for skills and folders by @DigHuang in #6995
- fix(app): restrict nodrag class to active editing state in InlineEdit by @DigHuang in #7000
- style(app): optimize non-active hover effect in InlineEdit by @DigHuang in #7002
- fix: isolate Agent V2 chat preview state by @xqvvu in #7005
- fix: dataset code block splitting by @YYH211 in #6998
- refactor(skill): offload skill package decompression to sandbox container by @DigHuang in #7004
- Add local workflow draft cache and restore flow by @FinleyGe in #6923
- feat(code-sandbox): add queueId concurrency limit by @c121914yu in #7008
- fix: login ui by @shortlight5980 in #7009
- doc by @c121914yu in #7011
New Contributors
- @shortlight5980 made their first contribution in #7009
Full Changelog: v4.15.0-beta2...v4.15.0-beta3