in gollm/azopenai.go [305:329]
func fnDefToAzureOpenAITool(fnDef *FunctionDefinition) *azopenai.ChatCompletionsFunctionToolDefinitionFunction {
properties := make(map[string]any)
for paramName, param := range fnDef.Parameters.Properties {
properties[paramName] = map[string]any{
"type": string(param.Type),
"description": param.Description,
}
}
parameters := map[string]any{
"type": "object",
"properties": properties,
}
if len(fnDef.Parameters.Required) > 0 {
parameters["required"] = fnDef.Parameters.Required
}
jsonBytes, _ := json.Marshal(parameters)
tool := azopenai.ChatCompletionsFunctionToolDefinitionFunction{
Name: &fnDef.Name,
Description: &fnDef.Description,
Parameters: jsonBytes,
}
return &tool
}