Vercel AI-SDK在Capacitor打包的iOS应用中无法流式响应
问题:Nuxt.js/Vue + Vercel AI-SDK + Capacitor iOS打包后无法获取API响应
- 技术栈:基于Nuxt.js/Vue开发应用,使用Vercel AI-SDK,通过Capacitor打包
- 异常现象:Chrome/Safari/Firefox浏览器中聊天功能正常,打包为iOS应用后无法获取API响应
- 已排查结论:问题出在传输层,CORS配置无问题,API采用HTTPS协议
- 核心实现:前端组件使用
Chat类,API端通过streamText及result.toUIMessageStreamResponse处理流式响应
API代码片段
const openai = createOpenAI({ apiKey: useRuntimeConfig().openaiApiKey, }); const { messages } = await readBody(event); const result = streamText({ model: openai("gpt-4o"), messages: convertToModelMessages(messages), stopWhen: stepCountIs(10), // multi-steps for server-side tools }); return result.toUIMessageStreamResponse({ headers: { "Content-Type": "text/event-stream; charset=utf-8", "Cache-Control": "no-cache, no-transform", Connection: "keep-alive", "X-Accel-Buffering": "no", }, });
前端组件代码片段
const askAI = async (question: string) => { chat.sendMessage({ text: question }); }; const chat = new Chat({ onFinish: (data) => { console.log("onFinish", data); }, onError: (error) => { console.error("onError:", error); }, transport: new DefaultChatTransport({ api: `${apiURL}/test-chat-stream`, }), }); const messageList = computed(() => chat.messages);
有没有其他开发者遇到过相同的问题?
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

