文档
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
类引用
函数引用
接口引用
类型别名引用
变量引用
接口引用

ResponseFormat

接口: ResponseFormat<TData>

定义于: types.ts:487

结构化输出格式规范。

约束模型的输出以匹配特定的 JSON 结构。适用于提取结构化数据、填写表单或确保一致的响应格式。

参见

类型参数

TData

TData = any

期望的数据结构的 TypeScript 类型(用于类型安全)

属性

__data?

ts
optional __data: TData;

定义于: types.ts:565

内部

仅类型属性,用于携带推断的数据类型。

这在运行时永远不会被设置 - 它仅存在于 TypeScript 类型推断中。允许 SDK 在解析响应时知道期望的类型。


json_schema?

ts
optional json_schema: object;

定义于: types.ts:504

JSON 模式规范(当类型为 "json_schema" 时必需)。

定义了模型的输出必须符合的精确结构。OpenAI 的结构化输出将保证输出与此模式匹配。

description?

ts
optional description: string;

模式的描述(可选)。

有助于记录此结构化输出的目的。

示例
ts
"User profile information including name, email, and preferences"

name

ts
name: string;

模式的唯一名称。

用于在日志和调试中标识模式。应具有描述性(例如,“user_profile”、“search_results”)。

schema

ts
schema: Record<string, any>;

期望输出结构的 JSON 模式定义。

必须是有效的 JSON 模式(draft 2020-12 或兼容)。模型的输出将根据此模式进行验证。

参见

https://schema.json.js.cn/

示例
ts
{
     *   type: "object",
     *   properties: {
     *     name: { type: "string" },
     *     age: { type: "number" },
     *     email: { type: "string", format: "email" }
     *   },
     *   required: ["name", "email"],
     *   additionalProperties: false
     * }

strict?

ts
optional strict: boolean;

是否强制执行严格的模式验证。

当为 true(推荐)时,模型保证输出将完全匹配模式。当为 false 时,模型将“尽力”匹配模式。

默认值: true(对于支持它的提供程序)

参见

https://platform.openai.com/docs/guides/structured-outputs#strict-mode


type

ts
type: "json_object" | "json_schema";

定义于: types.ts:496

结构化输出的类型。

  • "json_object": 强制模型输出有效的 JSON(任何结构)
  • "json_schema": 根据提供的 JSON 模式验证输出(严格结构)

参见

https://platform.openai.com/docs/api-reference/chat/create#chat-create-response_format