2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
构建人工智能聊天机器人并不难——难的是让它真正有用(来自真实项目的经验教训)
一个月前,在使用 Lambda 函数构建简历辅导人工智能聊天机器人并将其部署在 Vercel(一个面向前端开发者的领先云平台)上时,我在测试期间反复在 Vercel 日志中遇到超时错误。经过一段时间的调试,我发现我使用的是 response.json() 而不是流式传输响应,这导致了 Vercel 上的超时 ⌛️ 错误。一旦我将 Lambda 函数更新为使用流,它就开始正常工作了。
💡 我使用 React 构建了聊天机器人的用户界面(buildcv.makeadifference.app)。
为什么我们需要在 Lambda 中使用流?
流式传输非常适合人工智能聊天机器人或任何基于对话的应用程序,因为它们能提供良好的用户体验。通过流式传输,用户无需等待整个响应生成完毕,而是可以增量接收输出,从而为用户带来更好的交互体验 🙂。
根据我构建应用程序接口的个人经验,我建议对文本使用流式传输,而对任何创建、读取、更新、删除操作或业务逻辑实现使用 JSON。
Lambda / 无服务器函数:
// 请求来自人工智能模型的流式响应
const stream = AI.generateStream(userPrompt)
res.setHeader("Content-Type", "text/plain; charset=utf-8");
res.setHeader("Cache-Control", "no-cache");
// 立即向前端返回数据块
for await (const chunk of stream) {
const text = chunk.text;
if (text) {
res.write(text);
}
}
res.end();
javascript
前端(React)
const response = await fetch("api/chat");
const reader = response.body.getReader();
const decoder = new TextDecoder();
let fullText = "";
while (true) {
const { value, done } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
fullText += chunk;
}
if (!response.ok) {
throw new Error(`获取响应失败:${response.status}`);
}
💡 Vercel 允许我们以数据块的形式向客户端(前端)发送数据,而无需等待整个响应生成完毕。
你正在使用人工智能构建什么?
你在使用人工智能构建项目时是否遇到过任何问题?你是如何解决的?
祝学习愉快 🎉
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
