Zod Schemas¶
Zod is a TypeScript-first schema declaration and validation library. It is designed to be easy to use with TypeScript and to be a good fit for the language. It is the primary way of prompt engineering, just note that the room of response_model must be z.object.
Basic Usage¶
Descriptions are Prompts¶
One of the core things about instructors is that it's able to use these descriptions as part of the prompt.
const userDetails = z.object({
name: z.string().description('Your full name'),
age: z.number(),
}).description('Fully extracted user detail');
Inferred Types¶
We can also generate types using zod schemas.
const schema = z.object({
name: z.string(),
age: z.number(),
});
type SchemaType = z.infer<typeof schema>;
Default Values¶
In order to help the language model, we can also define defaults for the values.
const schema = z.object({
name: z.string(),
age: z.number().optional(),
isStudent: z.boolean().default(false),
});
Optional Values¶
We can also define optional values.
Nested Schemas¶
Powerful schemas can be created by nesting schemas.
const schema = z.object({
name: z.string(),
address: z.object({
street: z.string(),
city: z.string(),
}),
});
Arrays¶
Arrays can be defined using the z.array method
Enums¶
Enums can be defined using the z.enum method