toJson method

Map<String, dynamic> toJson()

Implementation

Map<String, dynamic> toJson() {
  return {
    'type': 'function',
    'function': {
      'name': functionName,
      'description': functionDescription,
      'parameters': {
        'type': 'object',
        'properties': [
          ...parameters.map((parameter) {
            return {
              'type': parameter.parameterType.toJson(),
              'description': parameter.parameterDescription,
              if (parameter.allowedValues.isNotEmpty)
                'enum': parameter.allowedValues,
            };
          }),
        ],
        'required': parameters
            .where((parameter) => parameter.isRequired)
            .map((parameter) => parameter.parameterName)
            .toList(),
      },
    }
  };
}