mono/packages/ai-tools/dist/lib/tools/index.js
2025-02-20 15:09:51 +01:00

18 lines
1.4 KiB
JavaScript

import { zodToJsonSchema } from 'zod-to-json-schema';
// see https://github.com/openai/openai-node/blob/master/examples/tool-call-helpers-zod.ts
export const zodFunction = ({ function: fn, schema, description = '', name, }) => {
return {
type: 'function',
function: {
function: fn,
name: name ?? fn.name,
description: description,
parameters: zodToJsonSchema(schema),
parse(input) {
const obj = JSON.parse(input);
return schema.parse(obj);
}
}
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVwRCwwRkFBMEY7QUFDMUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFFLENBQW1CLEVBQ3pDLFFBQVEsRUFBRSxFQUFFLEVBQ1osTUFBTSxFQUNOLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLElBQUksR0FNTCxFQUFxQyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUk7WUFDckIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQWU7WUFDakQsS0FBSyxDQUFDLEtBQWE7Z0JBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMxQixDQUFDO1NBQ0Y7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=