stream disconnected before completion: Our servers are currently overloaded. Ple...
错误信息
stream disconnected before completion: Our servers are currently overloaded. Please try again later. spring ai没有重试机制好像
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:stream disconnected before completion: Our servers are currently overloaded. Please try again later.
译文:流在完成前断开连接:我们的服务器当前超载。请稍后重试。
2. 🎯 原因分析
3. 💡 解决方案
通过在客户端调用逻辑中手动添加重试机制,应对服务端临时超载问题,代码示例(Java):
import org.springframework.ai.chat.ChatClient;
import org.springframework.ai.chat.response.ChatResponse;
import org.springframework.retry.annotation.Backoff;
import org.springframework.retry.annotation.Retryable;
import org.springframework.stereotype.Service;
@Service
public class ChatService {
private final ChatClient chatClient;
public ChatService(ChatClient chatClient) {
this.chatClient = chatClient;
}
@Retryable(
value = {RuntimeException.class}, // 捕获流中断抛出的异常
maxAttempts = 3, // 最大重试次数
backoff = @Backoff(delay = 2000, multiplier = 1.5) // 重试间隔:2s→3s→4.5s
)
public ChatResponse getChatResponse(String prompt) {
// 流式调用逻辑,服务端超载时会抛出RuntimeException
return chatClient.prompt()
.user(prompt)
.stream()
.doOnNext(response -> {
// 可添加对服务端超载提示的检测逻辑
})
.collectList()
.map(responses -> ChatResponse.builder().generations(responses).build())
.block();
}
}
4. 🛡️ 预防措施
@Retryable注解或手动循环实现