用 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 })。