UNPKG

@plastichub/osr-ai-tools

Version:

CLI and library for LLM tools

22 lines (21 loc) 774 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.zodFunction = void 0; const zod_to_json_schema_1 = require("zod-to-json-schema"); // see https://github.com/openai/openai-node/blob/master/examples/tool-call-helpers-zod.ts const zodFunction = ({ function: fn, schema, description = '', name, }) => { return { type: 'function', function: { function: fn, name: name ?? fn.name, description: description, parameters: (0, zod_to_json_schema_1.zodToJsonSchema)(schema), parse(input) { const obj = JSON.parse(input); return schema.parse(obj); } } }; }; exports.zodFunction = zodFunction;