toOpenAITool method
Implementation
Map<String, dynamic> toOpenAITool() {
final properties = <String, dynamic>{};
final required = <String>[];
for (final entry in inputs.entries) {
final rawSchema = entry.value;
final schema = rawSchema is Map
? Map<String, dynamic>.from(rawSchema)
: <String, dynamic>{'type': rawSchema};
if (schema.remove('required') == true) required.add(entry.key);
schema.remove('default');
properties[entry.key] = schema;
}
return {
'type': 'function',
'function': {
'name': name,
'description': description,
'parameters': {
'type': 'object',
'properties': properties,
if (required.isNotEmpty) 'required': required,
'additionalProperties': false,
},
},
};
}