fix(ai): disable retry for streaming AI requests to prevent duplicate responses (#1700)#1894
fix(ai): disable retry for streaming AI requests to prevent duplicate responses (#1700)#1894HandSonic wants to merge 1 commit into
Conversation
e23af3c to
71ded68
Compare
|
Thanks for working on this. This change does not actually disable retries. The resolved dependency is Spring Retry 2.0.12, and |
…sponses Replace new RetryTemplate() with RetryTemplate.builder().maxAttempts(1).build() for all three AI providers (OpenAI, Claude, Gemini). The default RetryTemplate constructor uses SimpleRetryPolicy(3), which retries failed requests up to 3 times. For streaming AI responses, retries cause duplicate content. Using maxAttempts(1) ensures no retries occur.
71ded68 to
0991b47
Compare
|
Fixed. Replaced Regarding whether streaming and sync paths need separate retry configs: disabling retries uniformly in |
Problem
所有 AI provider(OpenAI/Claude/Gemini)使用
RetryTemplate.defaultInstance(),默认最多重试 3 次。对于流式响应,重试会从头重新发送整个流,而前端通过accumulatedContent += newContent简单拼接,导致 AI 回答重复出现。Fix
将三个 provider 的
RetryTemplate.defaultInstance()替换为new RetryTemplate()(maxAttempts=1,不重试)。AiModelFactory.java:97— OpenAIAiModelFactory.java:130— ClaudeAiModelFactory.java:163— GeminiRelated
Fixes #1700