AIHero
    03 / 16Vercel AI SDK 教程

    使用 Vercel AI SDK 流式生成文本

    学习如何使用 Vercel AI SDK 流式生成文本,显著改善用户体验。

    Matt Pocock
    Matt Pocock
    源代码下一课
    本页目录

    滚动式代码讲解

    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;
    };
    登录以保存进度。