Function Calling y JSON Mode: respuestas estructuradas para tus apps
Function Calling y JSON Mode: respuestas estructuradas para tus apps
Cuando integras ChatGPT en una aplicación, necesitas que las respuestas sean predecibles y estructuradas, no texto libre. Para esto, la API de OpenAI ofrece dos herramientas fundamentales: JSON Mode y Function Calling.
JSON Mode: siempre JSON, sin excepciones
Activando JSON Mode, garantizas que la respuesta será JSON válido — siempre, sin texto adicional, sin "claro, aquí tienes:", sin nada fuera de las llaves.
response = client.chat.completions.create(
model="gpt-4o",
response_format={"type": "json_object"},
messages=[
{"role": "system", "content": "Responde siempre en JSON válido."},
{"role": "user", "content": """
Extrae los datos de este perfil de LinkedIn y devuélvelos
con la estructura:
{nombre, empresa, cargo, años_experiencia, skills[]}
Perfil: Ana García, Directora de Marketing en TechCorp desde
2019. Especialista en SEO, SEM y Content Marketing.
"""}
]
)
Function Calling: el puente entre ChatGPT y tu código
Function Calling permite definir "herramientas" que ChatGPT puede invocar. En la práctica: le describes funciones de tu sistema y ChatGPT decide cuándo llamarlas y con qué parámetros.
tools = [{
"type": "function",
"function": {
"name": "buscar_producto",
"description": "Busca productos en la base de datos por nombre o categoría",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Término de búsqueda"
},
"categoria": {
"type": "string",
"enum": ["electronica", "ropa", "hogar", "deportes"]
},
"precio_max": {
"type": "number",
"description": "Precio máximo en euros"
}
},
"required": ["query"]
}
}
}]
response = client.chat.completions.create(
model="gpt-4o",
tools=tools,
messages=[{"role": "user",
"content": "¿Tienes auriculares de menos de 50 euros?"}]
)
Casos de uso de Function Calling
- Chatbots con acceso a datos reales: el chatbot llama a tu API para consultar stock, precios o estado de pedidos.
- Asistentes de calendario: el modelo crea, modifica o consulta eventos en Google Calendar.
- Clasificadores automáticos: extrae campos estructurados de texto no estructurado (facturas, CVs, formularios).
- Agentes de automatización: ChatGPT como orquestador que decide qué herramienta usar en cada paso.
Structured Outputs: el sucesor de JSON Mode
La API más reciente de OpenAI incluye Structured Outputs, que garantiza que la respuesta sigue exactamente un JSON Schema definido. Es más robusto que JSON Mode y elimina la necesidad de validación adicional.
📝 Comprueba lo aprendido
Responde estas 3 preguntas y acierta al menos el 60% para desbloquear el botón "Marcar como completada".