本页目录
滚动式代码讲解
1
在 上一个示例中,我们了解了如何使用 AI SDK 生成文本。
但这种方式会在最后一次性返回全部文本。 如果希望 逐个 Token 流式输出文本呢?
2
为此,可以 使用 AI SDK 中的 streamText function ,它来自 AI SDK。
它以完全相同的方式接收模型和提示词,但不会直接返回文本,而是返回一个 textStream.
3
这个 textStream 是异步可迭代对象,因此可以流式写入文件或通过网络连接发送。
在这个示例中,我们只把它流式输出到 stdout.
这个 for 循环会等待 textStream 的每个数据块,再把数据块写入 stdout.
4
假设我们问它:“太阳是什么颜色?”
现在运行代码,就会看到内容被流式输出到控制台。
接下来很容易想象:把它接到网络请求,再将内容流式传给 UI。
5
streamText 函数还会返回一个 text promise.
因此,如果只想等待完整文本,也可以直接 await 这个 Promise。
import { generateText } from "ai";export const answerMyQuestion = async (prompt: string,) => {const { text } = await generateText({model,prompt,});return text;};
登录以保存进度。