OpenReplay Logo
12k
12k

JSON Schema 构建器

为 LLM 结构化输出和工具调用构建 JSON Schema,然后导出为 OpenAI、Anthropic、Gemini、Zod 和 Pydantic 格式——全部在你的浏览器中生成。

字段
本地处理
导出
 

关于此工具

结构化输出让模型返回符合你所定义 schema 的 JSON,而不是需要你解析并寄望其格式正确的自由文本。这个构建工具会逐字段组装该 schema——名称、类型、描述、required 标志、枚举以及嵌套的对象或数组——并以每个提供商所期望的精确形态导出:原始 JSON Schema、OpenAI 的 response_format 和函数工具封装、Anthropic 的工具 input_schema、Google Gemini 的 responseSchema,外加可直接粘贴的 Zod 和 Pydantic 定义。

OpenAI 的严格结构化输出模式有些值得了解的规则:每个属性都必须列为 required,且 additionalProperties 必须为 false。构建工具会在 OpenAI 导出中自动应用这些规则,并标记任何会违反它们的内容,让你复制的 schema 真正可用。粘贴一个现有的 JSON 样本即可推断出起始 schema,然后再加以完善。

Schema 完全在你的浏览器中构建和导出——你输入的任何内容都不会上传。

常见问题

什么是结构化输出和工具调用?

两者都要求模型返回符合某个 schema 的 JSON。结构化输出将模型的最终答案约束为你定义的形态;工具(函数)调用则描述模型在决定调用你的某个函数时可能产生的参数。底层的 schema 格式是相同的。

为什么 OpenAI 严格模式要求每个字段都是 required?

严格模式保证输出能毫无意外地通过你的 schema 校验,为此它不允许可选属性和额外属性。要让某个字段实际上可选,可将其类型标记为可空(nullable)——即与 null 的联合类型——同时仍将它保留在 required 列表中。

OpenAI、Anthropic 和 Gemini 的导出有什么区别?

JSON Schema 在很大程度上是共用的,但每个提供商的封装方式不同:OpenAI 将其嵌套在 response_format 或带 strict: true 的函数工具之下,Anthropic 期望它作为工具的 input_schema,而 Gemini 使用 responseSchema 并带有自己受支持类型的枚举。本工具会为每种格式生成正确的封装。

我能生成 Zod 或 Pydantic 代码吗?

可以。除了各提供商的格式外,构建工具还会输出用于 TypeScript 的 Zod schema 和用于 Python 的 Pydantic 模型,让你能在自己的代码中校验响应。