@plastichub/osr-ai-tools
Version:
CLI and library for LLM tools
22 lines (21 loc) • 774 B
JavaScript
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;
;