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': 'get_service_providers', 'description': 'Find service providers based on various criteria such as ratings, availability, location, and service types. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['province_id'], 'properties': {'avg_rating': {'type': 'float', 'description': 'The average review rating, with possible values including decimals, such as 4.0, 4.5, etc.', 'default': None}, 'province_id': {'type': 'integer', 'description': 'ID of the province, with specific allowed values. For example, 1 for Bangkok, 2 for Chiang Mai, etc.'}, 'district_name': {'type': 'string', 'description': "The name of the district, or 'null' if the district name is not applicable or unknown.", 'default': None}, 'sub_district_name': {'type': 'string', 'description': "The name of the sub-district, or 'null' if the sub-district name is not applicable or unknown.", 'default': None}, 'start_available_date': {'type': 'string', 'description': "The start of the availability period for the service provider in the format 'YYYY-MM-DD HH:mm:ss', or 'null' for no specific start date.", 'default': None}, 'end_available_date': {'type': 'string', 'description': "The end of the availability period for the service provider in the format 'YYYY-MM-DD HH:mm:ss', or 'null' for no specific end date.", 'default': None}, 'min_age': {'type': 'integer', 'description': "The minimum age of the service providers, or 'null' if there is no minimum age requirement.", 'default': None}, 'max_age': {'type': 'integer', 'description': "The maximum age of the service providers, or 'null' if there is no maximum age requirement.", 'default': None}, 'has_quality_problem': {'type': 'boolean', 'description': 'Indicates if the service provider has a record of quality problems. True if there is a record, false otherwise.', 'default': False}, 'has_late_check_in': {'type': 'boolean', 'description': 'Indicates if the service provider has a record of late check-ins. True if there is a record, false otherwise.', 'default': False}, 'is_excellent': {'type': 'boolean', 'description': 'Indicates if the service provider is marked as excellent. True if marked excellent, false otherwise.', 'default': False}, 'is_package': {'type': 'boolean', 'description': 'Indicates whether the service is a package deal. True if it is, false if not.', 'default': False}, 'is_subscription': {'type': 'boolean', 'description': 'Indicates whether the service is offered on a subscription basis. True if it is, false if not.', 'default': False}, 'service_id': {'type': 'integer', 'description': 'ID of the specific service being offered.', 'default': None}, 'available_for_pet': {'type': 'boolean', 'description': 'Indicates if the service provider is available to work in homes with pets. True if they are, false if not.', 'default': False}, 'professional_group_id': {'type': 'integer', 'description': 'ID of the professional group the service provider belongs to.', 'default': None}, 'job_qty': {'type': 'integer', 'description': "The number of jobs the service provider has received, or 'null' if the information is not available.", 'default': None}, 'is_cleaning_condo': {'type': 'boolean', 'description': 'Indicates if the service provider can offer cleaning services for condos. True if they can, false if not.', 'default': False}, 'is_cleaning_home': {'type': 'boolean', 'description': 'Indicates if the service provider can offer cleaning services for homes. True if they can, false if not.', 'default': False}, 'is_cleaning_office': {'type': 'boolean', 'description': 'Indicates if the service provider can offer cleaning services for offices or workplaces. True if they can, false if not.', 'default': False}, 'service_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'An array of IDs representing the services offered, such as 1 for cleaning service, 2 for ironing service, etc.', 'default': []}}}}, {'name': 'view_service_provider_profile', 'description': 'This function retrieves and displays the profile information of a specified service provider based on their unique identifier. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['professional_id'], 'properties': {'professional_id': {'type': 'integer', 'description': 'The unique identifier for the service provider whose profile is being viewed.'}}}}]


user: Find a service provider that provides cleaning services.In Bangkok with good rating

Available functions:
[{"name": "get_service_providers", "description": "Find service providers based on various criteria such as ratings, availability, location, and service types.", "parameters": {"type": "dict", "required": ["province_id"], "properties": {"avg_rating": {"type": "float", "description": "The average review rating, with possible values including decimals, such as 4.0, 4.5, etc.", "default": null}, "province_id": {"type": "integer", "description": "ID of the province, with specific allowed values. For example, 1 for Bangkok, 2 for Chiang Mai, etc."}, "district_name": {"type": "string", "description": "The name of the district, or 'null' if the district name is not applicable or unknown.", "default": null}, "sub_district_name": {"type": "string", "description": "The name of the sub-district, or 'null' if the sub-district name is not applicable or unknown.", "default": null}, "start_available_date": {"type": "string", "description": "The start of the availability period for the service provider in the format 'YYYY-MM-DD HH:mm:ss', or 'null' for no specific start date.", "default": null}, "end_available_date": {"type": "string", "description": "The end of the availability period for the service provider in the format 'YYYY-MM-DD HH:mm:ss', or 'null' for no specific end date.", "default": null}, "min_age": {"type": "integer", "description": "The minimum age of the service providers, or 'null' if there is no minimum age requirement.", "default": null}, "max_age": {"type": "integer", "description": "The maximum age of the service providers, or 'null' if there is no maximum age requirement.", "default": null}, "has_quality_problem": {"type": "boolean", "description": "Indicates if the service provider has a record of quality problems. True if there is a record, false otherwise.", "default": false}, "has_late_check_in": {"type": "boolean", "description": "Indicates if the service provider has a record of late check-ins. True if there is a record, false otherwise.", "default": false}, "is_excellent": {"type": "boolean", "description": "Indicates if the service provider is marked as excellent. True if marked excellent, false otherwise.", "default": false}, "is_package": {"type": "boolean", "description": "Indicates whether the service is a package deal. True if it is, false if not.", "default": false}, "is_subscription": {"type": "boolean", "description": "Indicates whether the service is offered on a subscription basis. True if it is, false if not.", "default": false}, "service_id": {"type": "integer", "description": "ID of the specific service being offered.", "default": null}, "available_for_pet": {"type": "boolean", "description": "Indicates if the service provider is available to work in homes with pets. True if they are, false if not.", "default": false}, "professional_group_id": {"type": "integer", "description": "ID of the professional group the service provider belongs to.", "default": null}, "job_qty": {"type": "integer", "description": "The number of jobs the service provider has received, or 'null' if the information is not available.", "default": null}, "is_cleaning_condo": {"type": "boolean", "description": "Indicates if the service provider can offer cleaning services for condos. True if they can, false if not.", "default": false}, "is_cleaning_home": {"type": "boolean", "description": "Indicates if the service provider can offer cleaning services for homes. True if they can, false if not.", "default": false}, "is_cleaning_office": {"type": "boolean", "description": "Indicates if the service provider can offer cleaning services for offices or workplaces. True if they can, false if not.", "default": false}, "service_ids": {"type": "array", "items": {"type": "integer"}, "description": "An array of IDs representing the services offered, such as 1 for cleaning service, 2 for ironing service, etc.", "default": []}}}}, {"name": "view_service_provider_profile", "description": "This function retrieves and displays the profile information of a specified service provider based on their unique identifier.", "parameters": {"type": "dict", "required": ["professional_id"], "properties": {"professional_id": {"type": "integer", "description": "The unique identifier for the service provider whose profile is being viewed."}}}}]

Ground-truth function call:
[{"get_service_providers": {"avg_rating": [4.0], "province_id": [1], "district_name": ["", null], "sub_district_name": ["", null], "start_available_date": ["", null], "end_available_date": ["", null], "min_age": ["", null], "max_age": ["", null], "has_quality_problem": ["", false], "has_late_check_in": ["", false], "is_excellent": ["", false], "is_package": ["", false], "is_subscription": ["", false], "service_id": ["", null], "available_for_pet": ["", false], "professional_group_id": ["", null], "job_qty": ["", null], "is_cleaning_condo": ["", false], "is_cleaning_home": [true], "is_cleaning_office": ["", false], "service_ids": ["", []]}}]