openai-swarmjs
Version:
Agentic framework inspired from OpenAI's swarm framework for TS, JS
40 lines (39 loc) • 1.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.functionToJson = functionToJson;
function functionToJson(func) {
const funcStr = func.toString();
const params = funcStr
.slice(funcStr.indexOf('(') + 1, funcStr.indexOf(')'))
.split(',');
const properties = {};
const required = [];
params.forEach((param) => {
const trimmedParam = param.trim();
if (trimmedParam) {
const [name, defaultValue] = trimmedParam.split('=');
const paramName = name.trim();
properties[paramName] = {
type: 'string',
description: `Parameter ${paramName}`
};
if (!defaultValue) {
required.push(paramName);
}
}
});
const parameters = {
type: 'object',
properties,
...(required.length > 0 ? { required } : {})
};
const functionDefinition = {
name: func.name,
description: func.description || '',
parameters
};
return {
type: 'function',
function: functionDefinition
};
}
;