system: 
You are an expert in composing functions. You are given a question and a set of possible functions.
Based on the question, you will need to make one or more function/tool calls to achieve the purpose.
If none of the function can be used, point it out. If the given question lacks the parameters required by the function,
also point it out. You should only return the function call in tools call sections.

If you decide to invoke any of the function(s), you MUST put it in the format of [func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)]

You SHOULD NOT include any other text in the response.

Here is a list of functions in JSON format that you can invoke.

[{'name': 'flipImageAction', 'description': 'This function flips an image in the specified direction, either horizontally or vertically. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['flip_direction'], 'properties': {'flip_direction': {'type': 'string', 'description': "Specifies the flip direction of the image. Must be either 'horizontal' or 'vertical'.", 'enum': ['horizontal', 'vertical']}}}}, {'name': 'rotateImageAction', 'description': 'Rotates the image clockwise by a specified degree of angle. Accepts an integer value representing the angle in degrees. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['degrees'], 'properties': {'degrees': {'type': 'integer', 'description': 'The degree of clockwise rotation to be applied to the image. Value must be between 0 and 360 degrees.'}, 'image_format': {'type': 'string', 'description': "The format of the image to be rotated. For example, 'JPEG', 'PNG', 'BMP', etc.", 'enum': ['JPEG', 'PNG', 'BMP', 'GIF', 'TIFF'], 'default': 'JPEG'}, 'keep_original': {'type': 'boolean', 'description': 'Indicates whether the original image should be kept unchanged. If set to false, the original image will be overwritten.', 'default': True}}}}, {'name': 'removeBackgroundAction', 'description': 'Remove the background from an image and optionally replace it with a specified color or another image. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['image_path'], 'properties': {'image_path': {'type': 'string', 'description': 'The file path to the image from which the background is to be removed.'}, 'replacement_color': {'type': 'string', 'description': "The hex code of the color to replace the background with, e.g., '#FFFFFF' for white.", 'default': 'null', 'enum': ['#FFFFFF', '#000000', 'null']}, 'replacement_image_path': {'type': 'string', 'description': "The file path to an image that will replace the removed background. This is ignored if 'replacement_color' is not 'null'.", 'default': 'null'}, 'output_format': {'type': 'string', 'description': "The desired file format of the output image, such as 'PNG' or 'JPEG'.", 'default': 'PNG', 'enum': ['PNG', 'JPEG', 'GIF', 'BMP']}, 'tolerance': {'type': 'integer', 'description': 'The tolerance level for background detection, ranging from 0 to 100, where a higher value means more of the background will be considered for removal.', 'default': 50}}}}, {'name': 'getRecommendationsAction', 'description': 'Retrieves a list of recommended items based on the image provided. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['image_data'], 'properties': {'image_data': {'type': 'string', 'description': 'Base64 encoded string of the image for which recommendations are being requested.'}, 'threshold': {'type': 'float', 'description': 'The confidence threshold for filtering recommendations, ranging from 0.0 to 1.0.', 'default': 0.5}, 'max_results': {'type': 'integer', 'description': 'The maximum number of recommendations to return.', 'default': 10}, 'include_similar': {'type': 'boolean', 'description': 'A flag to determine whether to include similar items in the recommendations.', 'default': True}}}}, {'name': 'resizeImageAction', 'description': 'This function resizes an image to the specified aspect ratio while maintaining the original image proportions. It returns the resized image in the desired format. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['aspect_ratio_width', 'aspect_ratio_height'], 'properties': {'aspect_ratio_width': {'type': 'integer', 'description': 'The width component of the desired aspect ratio for the image. Must be a positive integer.'}, 'aspect_ratio_height': {'type': 'integer', 'description': 'The height component of the desired aspect ratio for the image. Must be a positive integer.'}, 'image_format': {'type': 'string', 'description': "The file format for the output resized image. For example, 'jpeg' for Joint Photographic Experts Group format.", 'enum': ['jpeg', 'png', 'gif', 'bmp'], 'default': 'jpeg'}}}}]


user: turn it by 20 degree and flip it horizontally

Available functions:
[{"name": "flipImageAction", "description": "This function flips an image in the specified direction, either horizontally or vertically.", "parameters": {"type": "dict", "required": ["flip_direction"], "properties": {"flip_direction": {"type": "string", "description": "Specifies the flip direction of the image. Must be either 'horizontal' or 'vertical'.", "enum": ["horizontal", "vertical"]}}}}, {"name": "rotateImageAction", "description": "Rotates the image clockwise by a specified degree of angle. Accepts an integer value representing the angle in degrees.", "parameters": {"type": "dict", "required": ["degrees"], "properties": {"degrees": {"type": "integer", "description": "The degree of clockwise rotation to be applied to the image. Value must be between 0 and 360 degrees."}, "image_format": {"type": "string", "description": "The format of the image to be rotated. For example, 'JPEG', 'PNG', 'BMP', etc.", "enum": ["JPEG", "PNG", "BMP", "GIF", "TIFF"], "default": "JPEG"}, "keep_original": {"type": "boolean", "description": "Indicates whether the original image should be kept unchanged. If set to false, the original image will be overwritten.", "default": true}}}}, {"name": "removeBackgroundAction", "description": "Remove the background from an image and optionally replace it with a specified color or another image.", "parameters": {"type": "dict", "required": ["image_path"], "properties": {"image_path": {"type": "string", "description": "The file path to the image from which the background is to be removed."}, "replacement_color": {"type": "string", "description": "The hex code of the color to replace the background with, e.g., '#FFFFFF' for white.", "default": "null", "enum": ["#FFFFFF", "#000000", "null"]}, "replacement_image_path": {"type": "string", "description": "The file path to an image that will replace the removed background. This is ignored if 'replacement_color' is not 'null'.", "default": "null"}, "output_format": {"type": "string", "description": "The desired file format of the output image, such as 'PNG' or 'JPEG'.", "default": "PNG", "enum": ["PNG", "JPEG", "GIF", "BMP"]}, "tolerance": {"type": "integer", "description": "The tolerance level for background detection, ranging from 0 to 100, where a higher value means more of the background will be considered for removal.", "default": 50}}}}, {"name": "getRecommendationsAction", "description": "Retrieves a list of recommended items based on the image provided.", "parameters": {"type": "dict", "required": ["image_data"], "properties": {"image_data": {"type": "string", "description": "Base64 encoded string of the image for which recommendations are being requested."}, "threshold": {"type": "float", "description": "The confidence threshold for filtering recommendations, ranging from 0.0 to 1.0.", "default": 0.5}, "max_results": {"type": "integer", "description": "The maximum number of recommendations to return.", "default": 10}, "include_similar": {"type": "boolean", "description": "A flag to determine whether to include similar items in the recommendations.", "default": true}}}}, {"name": "resizeImageAction", "description": "This function resizes an image to the specified aspect ratio while maintaining the original image proportions. It returns the resized image in the desired format.", "parameters": {"type": "dict", "required": ["aspect_ratio_width", "aspect_ratio_height"], "properties": {"aspect_ratio_width": {"type": "integer", "description": "The width component of the desired aspect ratio for the image. Must be a positive integer."}, "aspect_ratio_height": {"type": "integer", "description": "The height component of the desired aspect ratio for the image. Must be a positive integer."}, "image_format": {"type": "string", "description": "The file format for the output resized image. For example, 'jpeg' for Joint Photographic Experts Group format.", "enum": ["jpeg", "png", "gif", "bmp"], "default": "jpeg"}}}}]

Ground truth: [{"rotateImageAction": {"degrees": [20], "image_format": ["", "JPEG"], "keep_original": ["", true]}}, {"flipImageAction": {"flip_direction": ["horizontal"]}}]