故障排查GitHub issue2 分钟阅读故障排查

解决FastGPT HTTP请求组件大整数精度丢失问题

在FastGPT 4.9.11私有部署版本中,使用HTTP请求组件调用Java后端POST接口时,接口返回的number类型大整数(例如2624710177366999063),经组件处理后出现精度丢失,实际获取到的数值变为2624710177366999000。

现象

在FastGPT 4.9.11私有部署版本中,使用HTTP请求组件调用Java后端POST接口时,接口返回的number类型大整数(例如2624710177366999063),经组件处理后出现精度丢失,实际获取到的数值变为2624710177366999000。

可能原因

JavaScript的number类型对长整数的存储存在精度限制,无法完整保存超出安全整数范围(大于2^53-1)的大整数,导致从Java后端返回的大整数在传输和解析过程中出现精度丢失。

排查步骤

  1. 确认HTTP请求组件调用的后端接口返回字段为number类型,且数值长度超出JavaScript安全整数范围。
  2. 查看HTTP请求组件返回的实际结果,对比原始后端接口返回的数值,确认是否出现数值截断或精度丢失。
  3. 需按实际环境确认接口返回数据的传输格式与编码,排除其他传输异常导致的数值异常。

解决与验证

可通过调整后端接口的返回格式解决该问题:将大整数字段转换为字符串类型后再返回,避免JavaScript在解析过程中出现精度丢失。验证时,修改后端接口的目标字段返回格式,重新通过FastGPT HTTP请求组件调用接口,查看返回的字段值是否与原始接口返回值一致。需按实际环境确认是否存在其他适配要求。

来源: FastGPT 官方来源

适用性与版本范围

本页适用于官方来源记录的 故障排查 场景。执行变更前,需核对 FastGPT、依赖、API 与部署版本。

安全护栏

凭证与私密数据使用 [REDACTED_CREDENTIAL] 占位符。执行操作前需核对文档的环境与版本。

回滚指引

恢复变更前的技术内容权威快照、已保存配置与数据快照,再执行最小验证场景。