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': 'default_function', 'description': 'This function performs a default operation with optional customization parameters. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': [], 'properties': {'option_flag': {'type': 'boolean', 'description': 'A flag that indicates whether the default operation should be customized.', 'default': False}, 'precision': {'type': 'integer', 'description': "Specifies the numeric precision for the operation's output.", 'default': 2}, 'operation_mode': {'type': 'string', 'description': 'Determines the mode of operation to be used.', 'enum': ['simple', 'advanced'], 'default': 'simple'}}}}, {'name': 'add_mtnards_server', 'description': 'Adds a new MTN Advanced Rich Data Services (RDS) server configuration to the system. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['host', 'api_key'], 'properties': {'nickname': {'type': 'string', 'description': 'An easily recognizable name or alias for the server.', 'default': 'rds1'}, 'host': {'type': 'string', 'description': "The hostname or IP address of the server, such as '192.168.0.1' or 'server.domain.com'."}, 'api_key': {'type': 'string', 'description': 'The unique API key required to authenticate against the server.'}}}}, {'name': 'add_postgres_server', 'description': 'Adds a new PostgreSQL server configuration to the environment, allowing connections to be established with the specified credentials. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['nickname', 'host', 'port', 'database', 'username', 'password'], 'properties': {'nickname': {'type': 'string', 'description': 'A unique nickname or alias for the PostgreSQL server instance, for easier identification.'}, 'host': {'type': 'string', 'description': 'The hostname or IP address of the PostgreSQL server.'}, 'port': {'type': 'integer', 'description': 'The port number on which the PostgreSQL server is running. The default PostgreSQL port is 5432.'}, 'database': {'type': 'string', 'description': 'The name of the default database to connect to on the PostgreSQL server.'}, 'username': {'type': 'string', 'description': 'The username for authentication with the PostgreSQL server.'}, 'password': {'type': 'string', 'description': 'The password for authentication with the PostgreSQL server. Ensure to use a strong and secure password.'}}}}, {'name': 'connect_to_server', 'description': 'Establishes a connection to the specified server or checks the status of an existing connection. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['nickname'], 'properties': {'nickname': {'type': 'string', 'description': 'A unique identifier or alias for the server to connect to.'}, 'timeout': {'type': 'integer', 'description': 'The maximum time in seconds to wait for the connection to be established before timing out.', 'default': 30}, 'retry_attempts': {'type': 'integer', 'description': 'The number of attempts to connect to the server in case of failure.', 'default': 3}, 'use_ssl': {'type': 'boolean', 'description': 'Determines whether to use SSL encryption for the connection.', 'default': True}}}}, {'name': 'list_servers', 'description': 'Retrieves a list of all the servers currently deployed within the specified environment, optionally filtered by server type. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'properties': {'type': {'type': 'string', 'description': 'Specifies the type of server to filter the list. If not provided, servers of all types are included.', 'enum': ['all', 'graphql', 'mtna', 'openapi', 'postgres', 'rds', 'sql'], 'default': 'all'}}, 'required': []}}, {'name': 'list_files', 'description': 'List all the files within the current project directory. Optionally, list files of a specific type only. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': [], 'properties': {'file_type': {'type': 'string', 'description': "The specific file type to list, such as 'txt' for text files or 'md' for markdown files. Provide the extension without the dot.", 'enum': ['txt', 'md', 'py', 'js', 'css'], 'default': 'all'}, 'include_hidden': {'type': 'boolean', 'description': 'Whether to include hidden files (those starting with a dot) in the listing.', 'default': False}, 'recursive': {'type': 'boolean', 'description': 'Whether to recursively list files in all subdirectories.', 'default': False}}}}, {'name': 'open_project', 'description': 'This function either creates a new Data Artifex project or opens an existing one within the specified directory. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'The file system path to the directory where the project is to be created or opened. The path should be absolute or relative to the current working directory.'}, 'create_if_missing': {'type': 'boolean', 'description': 'Determines whether to create a new project if no existing project is found at the specified path.', 'default': True}, 'access_mode': {'type': 'string', 'description': 'The mode in which the project should be opened, either read-only or read-write.', 'enum': ['readonly', 'readwrite'], 'default': 'readwrite'}}}}, {'name': 'close_project', 'description': 'Closes the currently active project in the Data Artifex system, ensuring all resources are properly released and data is saved. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'properties': {'project_id': {'type': 'string', 'description': 'Unique identifier of the project to be closed.'}, 'save_changes': {'type': 'boolean', 'description': 'Specifies whether to save any unsaved changes before closing the project.', 'default': True}, 'backup': {'type': 'boolean', 'description': 'Determines if a backup should be created before closing the project.', 'default': False}}, 'required': ['project_id']}}, {'name': 'dartfx_help', 'description': 'Provides guidance and assistance to the user on a particular topic within the DartFX application. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'description': "The specific topic the user needs help with, such as 'account_setup', 'trading_interface', or 'funds_transfer'.", 'enum': ['account_setup', 'trading_interface', 'funds_transfer']}, 'section': {'type': 'string', 'description': 'The section of the topic where the user requires more information. Optional, and if not provided, the entire topic guide is presented.', 'default': 'overview'}, 'format': {'type': 'string', 'description': "The format in which the help guidance should be provided. Options include 'text', 'video', or 'interactive'.", 'enum': ['text', 'video', 'interactive'], 'default': 'text'}}}}]


user: Could you create a new Data Artifex project for me in the directory /Foo/Bar?

Available functions:
[{"name": "default_function", "description": "This function performs a default operation with optional customization parameters.", "parameters": {"type": "dict", "required": [], "properties": {"option_flag": {"type": "boolean", "description": "A flag that indicates whether the default operation should be customized.", "default": false}, "precision": {"type": "integer", "description": "Specifies the numeric precision for the operation's output.", "default": 2}, "operation_mode": {"type": "string", "description": "Determines the mode of operation to be used.", "enum": ["simple", "advanced"], "default": "simple"}}}}, {"name": "add_mtnards_server", "description": "Adds a new MTN Advanced Rich Data Services (RDS) server configuration to the system.", "parameters": {"type": "dict", "required": ["host", "api_key"], "properties": {"nickname": {"type": "string", "description": "An easily recognizable name or alias for the server.", "default": "rds1"}, "host": {"type": "string", "description": "The hostname or IP address of the server, such as '192.168.0.1' or 'server.domain.com'."}, "api_key": {"type": "string", "description": "The unique API key required to authenticate against the server."}}}}, {"name": "add_postgres_server", "description": "Adds a new PostgreSQL server configuration to the environment, allowing connections to be established with the specified credentials.", "parameters": {"type": "dict", "required": ["nickname", "host", "port", "database", "username", "password"], "properties": {"nickname": {"type": "string", "description": "A unique nickname or alias for the PostgreSQL server instance, for easier identification."}, "host": {"type": "string", "description": "The hostname or IP address of the PostgreSQL server."}, "port": {"type": "integer", "description": "The port number on which the PostgreSQL server is running. The default PostgreSQL port is 5432."}, "database": {"type": "string", "description": "The name of the default database to connect to on the PostgreSQL server."}, "username": {"type": "string", "description": "The username for authentication with the PostgreSQL server."}, "password": {"type": "string", "description": "The password for authentication with the PostgreSQL server. Ensure to use a strong and secure password."}}}}, {"name": "connect_to_server", "description": "Establishes a connection to the specified server or checks the status of an existing connection.", "parameters": {"type": "dict", "required": ["nickname"], "properties": {"nickname": {"type": "string", "description": "A unique identifier or alias for the server to connect to."}, "timeout": {"type": "integer", "description": "The maximum time in seconds to wait for the connection to be established before timing out.", "default": 30}, "retry_attempts": {"type": "integer", "description": "The number of attempts to connect to the server in case of failure.", "default": 3}, "use_ssl": {"type": "boolean", "description": "Determines whether to use SSL encryption for the connection.", "default": true}}}}, {"name": "list_servers", "description": "Retrieves a list of all the servers currently deployed within the specified environment, optionally filtered by server type.", "parameters": {"type": "dict", "properties": {"type": {"type": "string", "description": "Specifies the type of server to filter the list. If not provided, servers of all types are included.", "enum": ["all", "graphql", "mtna", "openapi", "postgres", "rds", "sql"], "default": "all"}}, "required": []}}, {"name": "list_files", "description": "List all the files within the current project directory. Optionally, list files of a specific type only.", "parameters": {"type": "dict", "required": [], "properties": {"file_type": {"type": "string", "description": "The specific file type to list, such as 'txt' for text files or 'md' for markdown files. Provide the extension without the dot.", "enum": ["txt", "md", "py", "js", "css"], "default": "all"}, "include_hidden": {"type": "boolean", "description": "Whether to include hidden files (those starting with a dot) in the listing.", "default": false}, "recursive": {"type": "boolean", "description": "Whether to recursively list files in all subdirectories.", "default": false}}}}, {"name": "open_project", "description": "This function either creates a new Data Artifex project or opens an existing one within the specified directory.", "parameters": {"type": "dict", "required": ["path"], "properties": {"path": {"type": "string", "description": "The file system path to the directory where the project is to be created or opened. The path should be absolute or relative to the current working directory."}, "create_if_missing": {"type": "boolean", "description": "Determines whether to create a new project if no existing project is found at the specified path.", "default": true}, "access_mode": {"type": "string", "description": "The mode in which the project should be opened, either read-only or read-write.", "enum": ["readonly", "readwrite"], "default": "readwrite"}}}}, {"name": "close_project", "description": "Closes the currently active project in the Data Artifex system, ensuring all resources are properly released and data is saved.", "parameters": {"type": "dict", "properties": {"project_id": {"type": "string", "description": "Unique identifier of the project to be closed."}, "save_changes": {"type": "boolean", "description": "Specifies whether to save any unsaved changes before closing the project.", "default": true}, "backup": {"type": "boolean", "description": "Determines if a backup should be created before closing the project.", "default": false}}, "required": ["project_id"]}}, {"name": "dartfx_help", "description": "Provides guidance and assistance to the user on a particular topic within the DartFX application.", "parameters": {"type": "dict", "required": ["topic"], "properties": {"topic": {"type": "string", "description": "The specific topic the user needs help with, such as 'account_setup', 'trading_interface', or 'funds_transfer'.", "enum": ["account_setup", "trading_interface", "funds_transfer"]}, "section": {"type": "string", "description": "The section of the topic where the user requires more information. Optional, and if not provided, the entire topic guide is presented.", "default": "overview"}, "format": {"type": "string", "description": "The format in which the help guidance should be provided. Options include 'text', 'video', or 'interactive'.", "enum": ["text", "video", "interactive"], "default": "text"}}}}]

Ground truth: [{"open_project": {"path": ["/Foo/Bar"], "create_if_missing": [true, ""], "access_mode": ["", "readwrite"]}}]