AI 生文模型 HTTP 调用超时问题
使用 HTTP 方式调用云开发 AI 生文大模型时,如果未正确设置流式响应,可能会遇到超时问题。
问题现象
通过 HTTP 接口调用 AI 生文模型时,请求超过 1 分钟后没有返回结果,最终请求超时。
无论是否期望使用流式返回,都可能遇到这个问题。
问题原因
大模型生成文本的过程通常需要较长时间,如果不启用流式响应,服务端需要等待所有内容生成完毕后才能一次性返回。当生成时间过长时,可能触发网关的默认超时限制。
解决方案
设置流式响应请求头
在 HTTP 请求中添加 Accept: text/event-stream 请求头,启用 Server-Sent Events (SSE) 流式响应:
// 使用 fetch
const response = await fetch(apiUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'text/event-stream', // 关键:启用流式响应
// 其他认证头...
},
body: JSON.stringify({
model: 'deepseek-v4-flash',
messages: [
{ role: 'user', content: '你好' }
]
})
});
// 处理流式响应
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
console.log(chunk);
}
// 使用 axios
const response = await axios({
method: 'post',
url: apiUrl,
headers: {
'Content-Type': 'application/json',
'Accept': 'text/event-stream', // 关键:启用流式响应
},
data: {
model: 'deepseek-v4-flash',
messages: [
{ role: 'user', content: '你好' }
]
},
responseType: 'stream' // 以流方式接收响应
});