Configuración Avanzada
Configura funciones avanzadas como Tool Calling, Thinking Mode, MCP Server, guardrails y escenarios de generación para crear datasets más sofisticados y modelos más capaces.
Requisitos Previos
Antes de configurar funciones avanzadas, asegúrate de tener un dataset funcional con conversaciones en formato ChatML estándar. Las funciones avanzadas complementan un dataset base sólido; no sustituyen la calidad de las conversaciones fundamentales.
Tool Calling
El Tool Calling permite que tu modelo aprenda a llamar herramientas externas (APIs, bases de datos, servicios) cuando necesita información que no tiene en su contexto. Durante el entrenamiento, incluyes ejemplos de conversaciones donde el modelo llama herramientas y usa sus respuestas.
Ejemplo de herramientas disponibles
Busca productos en el inventario por categoría, precio o nombre.
Obtiene el estado de un pedido por su número de seguimiento.
Agenda una cita en la fecha y hora disponibles.
Calcula el costo de envío según la ubicación y tipo de envío.
| Herramienta | Descripción | Parámetros |
|---|---|---|
| buscar_productos | Busca productos en el inventario por categoría, precio o nombre. | {"query": "string", "categoria": "string", "precio_max": "number"} |
| consultar_pedido | Obtiene el estado de un pedido por su número de seguimiento. | {"numero_pedido": "string"} |
| agendar_cita | Agenda una cita en la fecha y hora disponibles. | {"fecha": "string", "hora": "string", "servicio": "string", "nombre": "string"} |
| calcular_envio | Calcula el costo de envío según la ubicación y tipo de envío. | {"codigo_postal": "string", "tipo_envio": "standard|express"} |
Respuestas simuladas
No necesitas conectar herramientas reales para crear datos de entrenamiento. Puedes simular las respuestas de las herramientas con datos realistas. El modelo aprenderá el patrón de cuándo llamar cada herramienta y cómo interpretar los resultados.
{
"messages": [
{
"role": "system",
"content": "Eres un asistente de soporte. Tienes acceso a la herramienta consultar_pedido."
},
{
"role": "user",
"content": "¿Dónde está mi pedido #78432?"
},
{
"role": "assistant",
"content": "<tool_call>\n{\"name\": \"consultar_pedido\", \"arguments\": {\"numero_pedido\": \"78432\"}}\n</tool_call>"
},
{
"role": "tool",
"content": "<tool_response>\n{\"estado\": \"en_transito\", \"transportista\": \"DHL\", \"fecha_estimada\": \"2024-03-15\", \"tracking\": \"DHL-MX-123456\"}\n</tool_response>"
},
{
"role": "assistant",
"content": "Tu pedido #78432 está en camino. Aquí tienes los detalles:\n\n- **Estado:** En tránsito\n- **Transportista:** DHL\n- **Fecha estimada de entrega:** 15 de marzo de 2024\n- **Número de rastreo:** DHL-MX-123456\n\nPuedes rastrear tu paquete directamente en la página de DHL con ese número. ¿Hay algo más en lo que pueda ayudarte?"
}
]
}Tip: Incluye variedad en las respuestas de las herramientas: resultados exitosos, resultados vacíos, errores y casos especiales. Así el modelo aprenderá a manejar todos los escenarios posibles.
Thinking Mode
El Thinking Mode permite que el modelo razone internamente antes de responder. Esto es especialmente útil para tareas que requieren análisis, cálculos o decisiones complejas. El razonamiento se incluye en tags <think> que pueden ser filtrados antes de mostrar la respuesta al usuario.
¿Cuándo activar Thinking Mode?
- El modelo necesita decidir entre múltiples herramientas
- La respuesta depende de cálculos o condiciones
- Necesita evaluar múltiples opciones antes de recomendar
- Tareas de análisis o razonamiento paso a paso
Cómo incluirlo en el dataset
- 1Incluye la instrucción de pensar en el system prompt
- 2Agrega el bloque <think> al inicio de cada respuesta del asistente
- 3El razonamiento debe ser relevante y llevar a la respuesta correcta
- 4La respuesta visible debe ser natural (sin referencias al razonamiento)
{
"messages": [
{
"role": "system",
"content": "Eres un asistente de ventas. Razona internamente antes de responder. Tienes acceso a buscar_productos y calcular_descuento."
},
{
"role": "user",
"content": "Busco un regalo para mi esposa, tiene 30 años, le gusta la tecnología y mi presupuesto es de $5,000"
},
{
"role": "assistant",
"content": "<think>\nEl cliente busca un regalo tecnológico para su esposa de 30 años con presupuesto de $5,000 MXN. Debo buscar productos populares entre mujeres de esa edad en categoría tecnología. Opciones probables: AirPods, smartwatch, tablet, e-reader. Voy a buscar primero para ver disponibilidad y precios.\n</think>\n\n<tool_call>\n{\"name\": \"buscar_productos\", \"arguments\": {\"query\": \"regalo tecnología\", \"categoria\": \"accesorios\", \"precio_max\": 5000}}\n</tool_call>"
},
{
"role": "tool",
"content": "<tool_response>\n{\"productos\": [{\"nombre\": \"AirPods Pro 2\", \"precio\": 4499}, {\"nombre\": \"Apple Watch SE\", \"precio\": 4999}, {\"nombre\": \"Kindle Paperwhite\", \"precio\": 2999}]}\n</tool_response>"
},
{
"role": "assistant",
"content": "<think>\nEncontré 3 opciones dentro del presupuesto. Los AirPods Pro 2 y el Apple Watch SE están cerca del límite pero dentro del rango. El Kindle es más económico y podría combinarse con otro accesorio. Voy a presentar las opciones organizadas por popularidad como regalo.\n</think>\n\nTengo excelentes opciones para ti dentro de tu presupuesto:\n\n1. **Apple Watch SE** - $4,999 - Ideal si le gusta el fitness y estar conectada\n2. **AirPods Pro 2** - $4,499 - Perfectos para música y llamadas con cancelación de ruido\n3. **Kindle Paperwhite** - $2,999 - Si también disfruta la lectura (te sobra presupuesto para una funda bonita)\n\nEl Apple Watch SE es el regalo más popular en esa categoría. ¿Alguno te llama la atención?"
}
]
}MCP Server
El MCP (Model Context Protocol) Server permite conectar herramientas externas de forma estandarizada. En el contexto de preparación de datos, puedes usar un MCP Server para generar respuestas de herramientas más realistas durante la creación del dataset.
¿Cómo funciona con la generación de datos?
Define las herramientas en el MCP Server
Configura las herramientas disponibles y sus esquemas de entrada/salida.
Conecta al generador de conversaciones
AstrApp usa el MCP Server para obtener respuestas reales de las herramientas durante la generación.
Genera conversaciones con datos reales
Las conversaciones generadas incluirán datos de tu API/base de datos real, no simulados.
Valida y ajusta
Revisa las conversaciones generadas y ajusta las herramientas según sea necesario.
{
"mcp_server": {
"url": "http://localhost:3001/mcp",
"tools": [
{
"name": "buscar_productos",
"description": "Busca productos en el catálogo",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"categoria": {"type": "string"},
"precio_max": {"type": "number"}
},
"required": ["query"]
}
}
]
}
}Tip: Usa el MCP Server cuando quieras que las conversaciones de entrenamiento contengan datos reales de tu negocio (inventario actual, precios reales, disponibilidad). Para prototipos rápidos, las respuestas simuladas son suficientes.
Guardrails y Reglas de Negocio
Los guardrails son restricciones y reglas que el modelo debe seguir en todas sus respuestas. Se definen en el system prompt y se refuerzan con ejemplos en las conversaciones de entrenamiento.
Restricciones de contenido
Define qué temas puede y no puede abordar el modelo.
- No hablar de competidores
- No dar consejos médicos/legales/financieros
- No compartir información interna
- No usar lenguaje inapropiado
Reglas de negocio
Políticas y procedimientos que el modelo debe seguir.
- Máximo descuento que puede ofrecer: 15%
- Política de devolución: 30 días
- Escalar si el monto supera X cantidad
- Confirmar identidad antes de dar datos sensibles
Formato de respuesta
Cómo debe estructurar sus respuestas el modelo.
- Máximo 3 párrafos por respuesta
- Incluir CTA (llamada a la acción)
- Usar listas para comparaciones
- Confirmar antes de ejecutar acciones
Ejemplo de guardrail en acción
{
"messages": [
{
"role": "system",
"content": "Eres un asistente de soporte. REGLA: Si el cliente solicita un reembolso mayor a $5,000 MXN, debes escalar a un agente humano."
},
{
"role": "user",
"content": "Quiero que me devuelvan los $8,500 de mi compra. El producto llegó completamente dañado."
},
{
"role": "assistant",
"content": "Lamento mucho que tu producto haya llegado dañado. Entiendo tu frustración y quiero asegurarme de que esto se resuelva correctamente.\n\nDado que el monto del reembolso es de $8,500 MXN, necesito conectarte con uno de nuestros agentes especializados para procesar tu solicitud de la mejor manera. Ellos tienen la autoridad para aprobar reembolsos de este monto y asegurarse de que recibas tu dinero lo antes posible.\n\n¿Te parece bien si te transfiero ahora? El tiempo de espera es de aproximadamente 2-3 minutos."
}
]
}Escenarios y Personalidades
Para generar un dataset diverso, define diferentes escenarios y tipos de cliente que el modelo encontrará en producción. Esto asegura que el modelo sepa manejar una amplia variedad de situaciones.
Distribución recomendada de escenarios
Compra exitosa, preguntas sobre productos, consultas informativas.
Producto defectuoso, envío retrasado, error en cobro.
Quejas fuertes, amenaza de cancelar, solicita gerente.
Múltiples productos, comparaciones, necesidades específicas.
Solicitud fuera de lo normal, excepción a políticas, urgencia.
| Escenario | Descripción | Frecuencia |
|---|---|---|
| Cliente satisfecho | Compra exitosa, preguntas sobre productos, consultas informativas. | 40% |
| Cliente con problema | Producto defectuoso, envío retrasado, error en cobro. | 25% |
| Cliente molesto | Quejas fuertes, amenaza de cancelar, solicita gerente. | 15% |
| Consulta compleja | Múltiples productos, comparaciones, necesidades específicas. | 10% |
| Caso especial | Solicitud fuera de lo normal, excepción a políticas, urgencia. | 10% |
Tip: Cuando uses la síntesis de datos de AstrApp, puedes definir estos escenarios como "personalidades" del generador. Cada personalidad generará conversaciones con un tipo diferente de cliente, asegurando diversidad en tu dataset.
Umbrales de Calidad y Pipeline de Evaluación
Define umbrales mínimos de calidad para filtrar automáticamente las conversaciones que no cumplan con tus estándares. AstrApp puede evaluar cada conversación y descartar las que no pasen el filtro.
Promedio de los 5 criterios de evaluación
Fluidez y naturalidad del diálogo
Utilidad y completitud de las respuestas
Precisión de datos factuales
Porcentaje de conversaciones que pasan el filtro
| Métrica | Mínimo | Ideal | Descripción |
|---|---|---|---|
| Score general | 7/10 | 8.5+/10 | Promedio de los 5 criterios de evaluación |
| Naturalidad | 6/10 | 8+/10 | Fluidez y naturalidad del diálogo |
| Calidad del Bot | 7/10 | 9+/10 | Utilidad y completitud de las respuestas |
| Información correcta | 8/10 | 10/10 | Precisión de datos factuales |
| Tasa de aprobación | 80% | 95%+ | Porcentaje de conversaciones que pasan el filtro |
Pipeline de evaluación recomendado
{
"quality_thresholds": {
"min_overall_score": 7.0,
"min_naturalness": 6.0,
"min_bot_quality": 7.0,
"min_factual_accuracy": 8.0,
"min_training_value": 6.0,
"auto_reject_below": 5.0,
"auto_approve_above": 9.0,
"manual_review_range": [5.0, 9.0]
},
"pipeline": {
"judge_model": "gpt-4o",
"sample_size_for_manual_review": "10%",
"reject_duplicates": true,
"reject_empty_responses": true
}
}Resumen de Configuraciones
Tool Calling
OpcionalEnseña al modelo a usar APIs y herramientas externas
Thinking Mode
OpcionalRazonamiento interno antes de responder
MCP Server
AvanzadoHerramientas conectadas para datos reales
Guardrails
RecomendadoRestricciones y reglas de comportamiento
Escenarios
RecomendadoDiversidad de situaciones y tipos de cliente
Umbrales de calidad
RecomendadoFiltrado automático de datos de baja calidad
Empieza simple, escala gradualmente
No intentes implementar todas las configuraciones avanzadas al mismo tiempo. Empieza con un dataset ChatML básico con guardrails, entrena tu primer modelo, evalúa los resultados y luego agrega Tool Calling, Thinking Mode y las demás funciones según las necesidades que identifiques.
Continuar con Entrenamiento