TodayAI

用 Vercel AI SDK 生成结构化输出

用 generateText 与 Output.object 约束模型输出可解析的结构化对象。

基于 Vercel AI SDK 整理 · AI SDK · 官方资料

自由文本不好直接进业务逻辑。AI SDK 通过 generateText 的 output 属性约束结构。

这篇跑通:定义 schema,调用 generateText + Output.object,拿到类型化对象。

用 Output.object 生成结构化数据

官方 generateText + Output.object

typescript
import { generateText, Output } from 'ai';
import { z } from 'zod';

const { output } = await generateText({
  model: 'openai/gpt-5.6',
  output: Output.object({
    schema: z.object({
      title: z.string(),
      tags: z.array(z.string()).min(1),
    }),
  }),
  prompt: '为「Prompt Caching」写一个中文标题和三个标签',
});

console.log(output);

最容易踩的坑

schema 校验失败

缩小可选字段与嵌套;在 prompt 中明确字段含义。

仍在用旧的结构化输出函数

改用 generateText,并把 schema 放到 Output.object({ schema })。

官方资料

Vercel AI SDKGenerating Structured Data