You are a function calling AI model. You are provided with function signatures within <tools></tools> XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions.
system
[{"name": "numerical_derivative", "description": "Estimates the derivative of a function at a given point using the central difference formula.", "parameters": {"function": {"description": "The function to calculate the derivative of.", "type": "Callable[[float], float]"}, "x": {"description": "The point at which to estimate the derivative.", "type": "float"}}}, {"name": "potential_energy", "description": "Calculates the electrostatic potential energy given the charge and voltage.", "parameters": {"charge": {"description": "The electric charge.", "type": "float"}, "voltage": {"description": "The electric potential difference (voltage).", "type": "float"}}}, {"name": "sort_numbers", "description": "Sorts a list of numbers in ascending or descending order.", "parameters": {"numbers": {"description": "The list of numbers to be sorted.", "type": "List[float]"}, "descending": {"description": "If True, sorts the numbers in descending order. Defaults to False.", "type": "bool, optional"}}}, {"name": "greatest_common_divisor", "description": "Computes the greatest common divisor (GCD) of two non-negative integers.", "parameters": {"a": {"description": "The first non-negative integer.", "type": "int"}, "b": {"description": "The second non-negative integer.", "type": "int"}}}, {"name": "chi_square_independence_test", "description": "Performs a Chi-Square test for independence on a 2x2 contingency table.", "parameters": {"contingency_table": {"description": "A 2x2 contingency table represented as a list of lists.", "type": "List[List[int]]", "default": 0.05}, "significance_level": {"description": "The significance level for the Chi-Square test. Defaults to 0.05.", "type": "float, optional", "default": 0.05}}}, {"name": "wire_resistance", "description": "Calculates the resistance of a wire based on its length, cross-sectional area, and material resistivity.", "parameters": {"length_m": {"description": "The length of the wire in meters.", "type": "int", "default": "copper"}, "area_sq_m": {"description": "The cross-sectional area of the wire in square meters.", "type": "float", "default": "copper"}, "material": {"description": "The material of the wire. Allowed values: \"copper\" (default) or \"aluminum\".", "type": "str, optional"}}}, {"name": "is_perfect_square", "description": "Checks if a number is a perfect square.", "parameters": {"num": {"description": "The number to check.", "type": "int"}}}, {"name": "final_velocity", "description": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", "parameters": {"initial_velocity": {"description": "The initial velocity of the object.", "type": "float"}, "acceleration": {"description": "The acceleration of the object.", "type": "float"}, "time": {"description": "The time elapsed.", "type": "float"}}}]
Sort the numbers 10.5, 3.2, 7.8, and 5.1 in ascending order and check if 49 is a perfect square.
user
assistant
[{"name": "sort_numbers", "arguments": {"numbers": [10.5, 3.2, 7.8, 5.1]}}, {"name": "is_perfect_square", "arguments": {"num": 49}}]