用 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相关 AI 工具
相关 TodayAI 指南
- 用 Structured Outputs 拿到可解析的模型结果用 json_schema + strict 约束 Chat Completions 输出,让结果可以直接解析进入应用逻辑。
- 用 Gemini Embeddings 做文本向量化按 Gemini API Embeddings 文档:用 embedContent 生成向量,配置 task 前缀或 task_type,并用 output_dimensionality 控制维度。
- 用 Gemini Structured Outputs 约束 JSON 结果按官方 Structured outputs:用 JSON Schema / Pydantic 约束 Gemini 的最终回答格式,提取菜谱等结构化数据并可直接校验。