> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Llamada de Funciones en Python

> Ejemplo completo de llamada de funciones en Python

> Contenido actualizado: 2026-06-09

## Descripción general

La llamada de funciones permite que los modelos llamen a funciones que defines, habilitando la interacción con sistemas externos. El modelo no ejecuta las funciones directamente -- devuelve el nombre de la función y los argumentos, y tu código las ejecuta y retorna los resultados al modelo.

## Ejemplo completo

```python theme={null}
import json
from openai import OpenAI

client = OpenAI(api_key="sk-xxx", base_url="https://api.crazyrouter.com/v1")

# 1. Define tools
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get weather information for a specified city",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "City name, e.g.: New York"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "Temperature unit"
                    }
                },
                "required": ["city"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "search_products",
            "description": "Search for products",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "Search keyword"},
                    "max_price": {"type": "number", "description": "Maximum price"}
                },
                "required": ["query"]
            }
        }
    }
]

# 2. Mock function implementations
def get_weather(city, unit="celsius"):
    return {"city": city, "temperature": 22, "unit": unit, "condition": "Sunny"}

def search_products(query, max_price=None):
    return [{"name": f"{query} Product A", "price": 99}, {"name": f"{query} Product B", "price": 199}]

# 3. Conversation loop
messages = [{"role": "user", "content": "What's the weather like in New York today? Also search for umbrellas"}]

response = client.chat.completions.create(
    model="gpt-5.5",
    messages=messages,
    tools=tools,
    tool_choice="auto"
)

message = response.choices[0].message

# 4. Handle tool calls
if message.tool_calls:
    messages.append(message)

    for tool_call in message.tool_calls:
        func_name = tool_call.function.name
        args = json.loads(tool_call.function.arguments)

        if func_name == "get_weather":
            result = get_weather(**args)
        elif func_name == "search_products":
            result = search_products(**args)

        messages.append({
            "role": "tool",
            "tool_call_id": tool_call.id,
            "content": json.dumps(result, ensure_ascii=False)
        })

    # 5. Get final response
    final = client.chat.completions.create(
        model="gpt-5.5",
        messages=messages,
        tools=tools
    )
    print(final.choices[0].message.content)
```

## Forzar una llamada a una función específica

```python theme={null}
response = client.chat.completions.create(
    model="gpt-5.5",
    messages=messages,
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "get_weather"}}
)
```

## Modelos compatibles

Para los ejemplos de llamada de funciones compatibles con OpenAI en esta página, usa primero la siguiente referencia verificada:

* `gpt-5.5`

> [!NOTE]
>
> La llamada a herramientas con `gpt-5.5` fue verificada en Crazyrouter producción el 23 de marzo de 2026. Para otros proveedores, revisa primero sus páginas dedicadas porque los formatos de solicitud y los detalles de soporte pueden diferir.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.