Skip to content

feat: configurable per-provider response buffer limit - #114

Open
Akvicor wants to merge 2 commits into
halo-dev:mainfrom
Akvicor:feat/provider-response-buffer-limit
Open

Akvicor wants to merge 2 commits into
halo-dev:mainfrom
Akvicor:feat/provider-response-buffer-limit

Conversation

@Akvicor

@Akvicor Akvicor commented Sep 19, 2026 •

Copy link
Copy Markdown

What this PR does / why we need it:

AI Foundation 的 provider HTTP 客户端使用 Spring 默认的 256 KB 内存缓冲上限。图片生成接口内联 base64 图片时(例如 gpt-image-* 总是返回 b64_json,单张图片可达数 MB)会超出该上限,导致请求以 DataBufferLimitException 失败。

本 PR 为 AiProvider 增加可选的 spec.maxInMemorySize(字节):

  • ProviderHttpClientFactory.webClientBuilder 应用 Provider 配置的值,未配置时保持 256 KB 默认(现有行为不变)
  • Console 校验限定取值范围为 1024–1073741824 字节
  • console/ai-foundation/providers 的供应商表单新增「响应缓冲上限(字节)」输入框

Does this PR introduce a user-facing change?

供应商支持按 Provider 配置响应缓冲上限(spec.maxInMemorySize),解决 base64 图片生成响应超出默认缓冲上限导致的失败。

@ruibaby
ruibaby requested a review from LIlGG September 20, 2026 09:26

@LIlGG LIlGG left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同时,调大 http 编码缓存区之后, base64 仍可能触发 Jackson 的字符串长度限制,可能报错 StreamConstraintsException ,建议一并处理一下。

@Akvicor

Akvicor commented Sep 22, 2026

Copy link
Copy Markdown
Author

修改好了,新增了专用的 imageWebClientBuilder。缓冲改为了64MB。解析改为了共享mapper放宽Jackson字符串限制。

@Akvicor
Akvicor requested a review from LIlGG September 26, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants