Function: convertSchemaToJsonSchema()
function convertSchemaToJsonSchema(schema, options?): JSONSchema | undefined;
정의 위치: packages/ai/src/activities/chat/tools/schema-converter.ts:324
Standard JSON Schema를 준수하는 스키마 또는 일반 JSONSchema를 LLM 프로바이더와 호환되는 JSON Schema 형식으로 변환합니다.
Standard JSON 스키마 사양 (v1)을 구현하는 모든 스키마 라이브러리를 지원합니다:
- Zod v4+ (StandardJSONSchemaV1 을 네이티브로 지원합니다)
- ArkType (StandardJSONSchemaV1 을 네이티브로 지원합니다)
- Valibot (
toStandardJsonSchema()에서@valibot/to-json-schema를 통해)
입력이 이미 일반 JSONSchema 객체이면 그대로 반환합니다.
매개변수
schema
SchemaInput | undefined
변환할 Standard JSON Schema 준수 스키마 또는 일반 JSONSchema 객체입니다.
options?
ConvertSchemaOptions = {}
변환 옵션입니다.
반환값
JSONSchema | undefined
LLM 프로바이더로 보낼 수 있는 JSON Schema 객체입니다.
예제
// Using Zod v4+ (natively supports Standard JSON Schema)
import * as z from 'zod';
const zodSchema = z.object({
location: z.string().describe('City name'),
unit: z.enum(['celsius', 'fahrenheit']).optional()
});
const jsonSchema = convertSchemaToJsonSchema(zodSchema);
@example
// Using ArkType (natively supports Standard JSON Schema)
import { type } from 'arktype';
const arkSchema = type({
location: 'string',
unit: "'celsius' | 'fahrenheit'"
});
const jsonSchema = convertSchemaToJsonSchema(arkSchema);
@example
// Using Valibot (via toStandardJsonSchema)
import * as v from 'valibot';
import { toStandardJsonSchema } from '@valibot/to-json-schema';
const valibotSchema = toStandardJsonSchema(v.object({
location: v.string(),
unit: v.optional(v.picklist(['celsius', 'fahrenheit']))
}));
const jsonSchema = convertSchemaToJsonSchema(valibotSchema);
@example
// Using JSONSchema directly (passes through unchanged)
const rawSchema = {
type: 'object',
properties: { location: { type: 'string' } },
required: ['location']
};
const result = convertSchemaToJsonSchema(rawSchema);