AstrApp
Docs
Preparación de Datos
Guía de Uso

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

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.

Tool Call con respuesta simulada (JSON)
{
  "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)
Thinking + Tool Calling combinados (JSON)
{
  "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?

1

Define las herramientas en el MCP Server

Configura las herramientas disponibles y sus esquemas de entrada/salida.

2

Conecta al generador de conversaciones

AstrApp usa el MCP Server para obtener respuestas reales de las herramientas durante la generación.

3

Genera conversaciones con datos reales

Las conversaciones generadas incluirán datos de tu API/base de datos real, no simulados.

4

Valida y ajusta

Revisa las conversaciones generadas y ajusta las herramientas según sea necesario.

Ejemplo de configuración MCP (JSON)
{
  "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

Conversación con guardrail de escalamiento (JSON)
{
  "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

Cliente satisfecho40%

Compra exitosa, preguntas sobre productos, consultas informativas.

Cliente con problema25%

Producto defectuoso, envío retrasado, error en cobro.

Cliente molesto15%

Quejas fuertes, amenaza de cancelar, solicita gerente.

Consulta compleja10%

Múltiples productos, comparaciones, necesidades específicas.

Caso especial10%

Solicitud fuera de lo normal, excepción a políticas, urgencia.

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.

Score general

Promedio de los 5 criterios de evaluación

Mínimo: 7/10
Ideal: 8.5+/10
Naturalidad

Fluidez y naturalidad del diálogo

Mínimo: 6/10
Ideal: 8+/10
Calidad del Bot

Utilidad y completitud de las respuestas

Mínimo: 7/10
Ideal: 9+/10
Información correcta

Precisión de datos factuales

Mínimo: 8/10
Ideal: 10/10
Tasa de aprobación

Porcentaje de conversaciones que pasan el filtro

Mínimo: 80%
Ideal: 95%+

Pipeline de evaluación recomendado

Generar conversaciones
Evaluar con LLM Judge
Filtrar por umbral
Revisión manual (muestra)
Dataset final
Configuración de umbrales (JSON)
{
  "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

Opcional

Enseña al modelo a usar APIs y herramientas externas

Thinking Mode

Opcional

Razonamiento interno antes de responder

MCP Server

Avanzado

Herramientas conectadas para datos reales

Guardrails

Recomendado

Restricciones y reglas de comportamiento

Escenarios

Recomendado

Diversidad de situaciones y tipos de cliente

Umbrales de calidad

Recomendado

Filtrado 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