What you specify as a function tool to the API is actually provided (after being rewritten to a different form) directly to the AI model.
It is the AI that must understand your function, and the AI must have the cognitive abilities to construct the response parameters you want to take and then employ in your backend code for communicating with the various APIs you need to fulfill the request with a return value.
Easy for the AI to write:
tools.functions.weather_forecast(“city”: “Los Angeles, CA”)
Hard for the AI to write:
tools.functions.weather_noaa_gridpoint(“field_office”: “PQR”, “forecast_grid”: “134,110”)