func fnDefToAzureOpenAITool()

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
}