openai-zod-to-json-schema
v1.0.3
Published
Convert Zod schemas to JSON schemas which are optionally compatible with OpenAI's structured outputs.
Downloads
4,749
Readme
openai-zod-to-json-schema
Convert Zod schemas to JSON schemas which are optionally compatible with OpenAI's structured outputs.
Intro
This package exports OpenAI's vendored version of zod-to-json-schema as a standalone module (the source code is copied directly to guarantee a 1:1 match).
It re-adds all of the unit tests from the original zod-to-json-schema by Stefan Terdell.
It also adds some additional unit tests for OpenAI's strict
mode. See OpenAI's docs on structured outputs for more details on the subset of JSON Schemas that are supported by OpenAI's structured outputs.
This package will be kept in sync with any changes to OpenAI's vendored version.
Install
[!NOTE] This package requires
Node.js >= 18
or an equivalent environment (Bun, Deno, CF workers, etc).
npm install openai-zod-to-json-schema zod
Usage
All usage is the same as the original zod-to-json-schema, with the addition of a single optional boolean option: openaiStrictMode
.
import { zodToJsonSchema } from 'openai-zod-to-json-schema'
import { z } from 'zod'
const schema = zodToJsonSchema(z.any(), { openaiStrictMode: true })
Why?
- We should be able to access OpenAI's version of
zod-to-json-schema
without depending on the entireopenai
package. - OpenAI's vendored version of
zod-to-json-schema
removed all unit tests for some reason, which could cause undesired regressions. - We wanted a minimal, OpenAI-compatible version of
zod-to-json-schema
for openai-fetch, dexter, and agentic.
License
MIT © Travis Fischer
Also see the original zod-to-json-schema license.