AstrApp
Docs

Crear datasets

Reúne las conversaciones con las que vas a entrenar: impórtalas desde un archivo, tráelas de Supabase o Hugging Face, o guarda como dataset las que ya revisaste.

Qué es un dataset

Un dataset es una colección de conversaciones de ejemplo: lo que pregunta un usuario y lo que tu asistente debería responder. Con esas conversaciones entrenas tu modelo.

Las conversaciones viven en tu proyecto y un dataset las agrupa: la misma conversación puede estar en varios datasets. Si importas sin darle nombre al set, las conversaciones se quedan solo en el proyecto y las ves en Conversaciones › Ver todas.

¿Cuántas conversaciones necesitas?

Como punto de partida, reúne al menos 100; con 500 o más los resultados suelen mejorar. Los criterios completos están en Importar conversaciones.

Dónde está cada cosa

En el menú lateral, el grupo Datasets tiene cuatro entradas:

Entrada del menúRutaPara qué sirve
Datos/datosTus datasets agrupados por origen, con filtros de origen y formato. Al abrir uno ves sus conversaciones.
Importar datos/datos/importarEl asistente de importación: sube un archivo o pega el contenido, en tres pasos.
Ver todos (clásico)/datasetsLa tabla de datasets, con pestañas para Hugging Face, Supabase y carga desde tu equipo.
Exportar/exportarAnaliza un dataset y descárgalo en JSONL.
1

Abre Importar datos

La forma recomendada de crear un dataset es el asistente de importación. En el menú lateral entra a Datasets › Importar datos.

Si todavía no tienes un proyecto, el asistente te pide crear uno primero: las conversaciones siempre se guardan dentro de un proyecto.

2

Sube o pega tus conversaciones

Arrastra un archivo o haz clic para buscarlo en tu equipo. También puedes pegar el contenido directamente: JSON, JSONL, CSV o un chat exportado de WhatsApp.

El formato se detecta leyendo el contenido, no la extensión: un JSON de varias líneas guardado como .jsonl (o al revés) se lee bien igual. La vista previa te muestra cómo quedaron las conversaciones antes de seguir.

3

Configura la importación

Todas las opciones son opcionales:

OpciónQué hace
Quitar datos personales antes de guardarViene marcada. Cambia correos, teléfonos, tarjetas, IPs, IDs de WeChat, CURP, RFC, SSN, cédulas chinas y direcciones con calle y número por marcadores como [EMAIL]. No detecta nombres.
Idioma de las conversacionesEspañol, Inglés u Otro. Arranca en el idioma de tu interfaz y decide el idioma de los marcadores anteriores.
Interpretación del textoSolo para texto plano: Export de WhatsApp, Prefijos de rol (Usuario: / Asistente:) o Líneas alternadas (user/assistant).
Título del setNombre del dataset que se crea. Si lo dejas vacío, las conversaciones se guardan solo en el proyecto, sin dataset.
Identificar herramientasDetecta con IA qué herramientas (tool calls) necesitan tus conversaciones. Es la única opción con costo y lo ves en MXN antes de confirmar.
Formato de exportaciónChatML, Alpaca, ShareGPT o Qwen. Se aplica al exportar o entrenar; las conversaciones siempre se guardan en ChatML.
Dividir en sub-datasetsGuarda cada 1,000 conversaciones como un dataset aparte.
Marcar como semillas de calidadLas marca como base para generar más conversaciones con IA.
Limitar cuántas procesarImporta solo las primeras N. Sirve para probar con pocas antes de procesar todo el archivo.
4

Revisa y confirma

El último paso muestra un resumen (título del set, idioma, formato de exportación, conversaciones a importar y costo del flujo) y una muestra. Importar no cuesta. Al confirmar, AstrApp:

  • Convierte cada conversación a ChatML y descarta las que no tienen mensajes.
  • Quita los duplicados del archivo y no crea copias de conversaciones que ya existen en el proyecto. Si reimportas el mismo archivo con otro nombre, el dataset nuevo reutiliza las que ya tenías.
  • Importa hasta el tope de conversaciones de tu plan (ver abajo).
  • Crea el dataset con la etiqueta Importación, para que sepas de dónde salió.

Máximo 4 MB por importación

El asistente acepta archivos o texto pegado de hasta 4 MB: el servidor corta las peticiones más grandes antes de leerlas. Si tu archivo pesa más, divídelo e impórtalo por partes.

Formatos que acepta

FormatoCómo se reconoceNotas
JSONLCada línea es un objeto JSON completo.El recomendado: una conversación por línea.
JSONEmpieza con { o [ y no es un objeto por línea.Un arreglo de conversaciones.
CSV y TSVPor la extensión .csv o .tsv.Una fila por mensaje o una por conversación (abajo).
TXT y WhatsAppUn chat de WhatsApp se detecta por su contenido, con cualquier extensión.Para otro texto plano eliges cómo interpretarlo.
WeChatEl CSV y el TXT de WeChatMsg y el TXT de WechatExporter, por su contenido.Archivos .csv o .txt. Eliges quién responde por tu negocio; se revisa antes que WhatsApp.
XMLEmpieza con <?xml, <conversation, <chat o <message.También por la extensión .xml.
ParquetPor la extensión .parquet.Se procesa en el servidor; con Parquet no se puede identificar herramientas al importar.

Dentro de JSON y JSONL, AstrApp reconoce ChatML (messages), ShareGPT (conversations con from/value), Alpaca (instruction, input, output), input/output y prompt/completion, y convierte todo a ChatML. El detalle de cada formato está en Formatos de importación.

Chats de WeChat

WeChat no exporta el historial en texto: sube el CSV o el TXT que genera WeChatMsg, o el TXT de WechatExporter. El formato se reconoce por el contenido, no por la extensión.

Se importan solo los mensajes de texto: fotos, audios, stickers, adjuntos y avisos del sistema se omiten, igual que los chats de grupo del CSV, y el asistente te dice cuántos. Tú eliges quién responde por tu negocio y sus mensajes se guardan como assistant; los nombres de los participantes no se guardan. Lo mismo aplica a un chat exportado de WhatsApp. Los tres formatos y el detalle están en WeChat.

Quitar datos personales antes de guardar

El interruptor viene marcado en el asistente de importación y en la importación rápida de Conversaciones. Se aplica antes de guardar y antes de quitar duplicados, así que la vista previa te dice cuántos datos encontró.

No detecta nombres de personas ni direcciones escritas de otra forma, así que revisa la muestra antes de confirmar. Importa estas conversaciones solo si tienes derecho a usarlas para entrenar modelos.

Importar un CSV

AstrApp lee el CSV con un parser que sigue el estándar RFC 4180 (campos entre comillas con comas o saltos de línea adentro) y reconoce dos maneras de organizar las conversaciones.

Modo A: una fila por mensaje

Necesita una columna de rol y una de contenido. Las filas se agrupan en conversaciones por la columna de id y se ordenan por la de orden, si existe.

csv
conversation_id,msg_index,role,content
c1,0,system,Eres un asistente de ventas amable.
c1,1,user,¿Cuál es el precio?
c1,2,assistant,Desde $9.99 al mes.
c2,0,user,¿Tienen soporte?
c2,1,assistant,"Sí, 24/7 por chat y correo."

Modo B: una fila por conversación

Cada fila es un par pregunta y respuesta, con system opcional. Es el formato típico de un export de preguntas frecuentes.

csv
system,user,assistant
Eres un asistente de ventas amable.,¿Cuál es el precio?,Desde $9.99 al mes.
Eres un asistente de ventas amable.,¿Tienen soporte?,"Sí, 24/7 por chat y correo."

Sin columna de id, el archivo puede quedar como una sola conversación

En el modo A, si tu CSV no trae columna de id de conversación, cada fila con rol system abre una conversación nueva. Si tampoco hay filas system, todo el archivo termina siendo una única conversación. La app te lo avisa, pero es mejor agregar la columna de id desde el origen.

El comportamiento es el mismo en el asistente Importar datos, en Crear dataset de la vista clásica y en POST /api/v1/datasets cuando le mandas filas planas. Los nombres de columna que se reconocen (en español o en inglés), el separador y cómo se normalizan los roles están en Importar CSV.

Formato ChatML

Es el formato en el que AstrApp guarda todas las conversaciones: un arreglo de mensajes, cada uno con su rol (system, user, assistant o tool) y su contenido.

conversaciones.jsonl
{"messages": [{"role": "system", "content": "Eres un asistente de ventas amable."}, {"role": "user", "content": "¿Cuál es el precio?"}, {"role": "assistant", "content": "Desde $9.99 al mes."}]}
{"messages": [{"role": "system", "content": "Eres un asistente de ventas amable."}, {"role": "user", "content": "¿Tienen soporte?"}, {"role": "assistant", "content": "Sí, 24/7 por chat y correo."}]}

Otras formas de crear un dataset

Crear dataset en la vista clásica

En Datasets › Ver todos (clásico) haz clic en Crear dataset (la pestaña Cargar desde mi equipo abre el mismo diálogo). Tienes dos opciones:

  • Subir archivo: CSV, JSONL, JSON o TXT. El diálogo lee el archivo en tu navegador y lo sube en lotes de 300 elementos; por eso anuncia un límite de 200 MB. En TXT cada línea se guarda como un registro de texto, así que para un chat de WhatsApp usa el asistente Importar datos.
  • Entrada manual: nombre, descripción y el contenido en JSON. Si lo que pegas no es JSON válido, cada línea se guarda como texto suelto, que no sirve para entrenar.

Para un CSV, no uses la zona de arrastre de la vista clásica

La zona Arrastra un archivo o haz clic para subir, arriba de las pestañas, lee el CSV línea por línea y rompe los campos con comas o saltos de línea adentro. Importa tus CSV con el asistente Importar datos o con Crear dataset.

Desde Supabase

En la vista clásica abre la pestaña Supabase y haz clic en Conectar Supabase:

  1. Escribe la cadena de conexión con el formato https://[ref].supabase.co|[service_role_key].
  2. Elige la tabla de la lista o escribe su nombre.
  3. Ponle nombre al dataset y, si quieres, un system prompt.

AstrApp reconoce tres estructuras: un campo messages con el arreglo ChatML, mensajes agrupados por conversation_id o mensajes sueltos con role y content.

La service_role key abre toda tu base

Úsala solo con un proyecto de Supabase tuyo y rótala si la compartiste.

Desde Hugging Face

La pestaña Hugging Face de la vista clásica busca e importa datasets públicos, detecta su formato y los convierte a ChatML, hasta 5,000 ejemplos por importación. Requiere el plan Professional. Los pasos y los datasets más usados están en Hugging Face Hub.

Desde tus conversaciones

En Conversaciones › Ver todas selecciona las que quieras (por ejemplo, las marcadas como válidas) y haz clic en A dataset. Los pasos están en Guardar como dataset.

Google Drive

La pestaña Google Drive todavía no funciona: su botón dice Próximamente. Mientras tanto, descarga el archivo y súbelo desde tu equipo.

Límites por plan

PlanConversaciones por importaciónDatasets
Gratuito1002
Starter5005
Growth1,50010
ProfessionalSin límiteSin límite

Si un archivo trae más conversaciones de las que permite tu plan, el asistente te avisa e importa las primeras hasta el tope. El límite de datasets se revisa al crear uno desde Datasets › Ver todos (clásico). Los planes completos están en Planes y precios.

Gestionar tus datasets

La tabla de Datasets › Ver todos (clásico) muestra nombre, formato, filas, fuente, estado y fecha de cada dataset.

Acciones de cada dataset

Abre el menú de la fila (⋯) para ver estas acciones:

AcciónQué hace
Vista previaFormato, número de conversaciones, tamaño, fuente y una muestra de ejemplos.
Editar conversacionesAbre el dataset en Conversaciones para editar, validar y limpiar cada ejemplo. El botón Editar de la fila hace lo mismo.
RenombrarCambia el nombre en la misma fila. También puedes usar el lápiz junto al nombre.
Exportar JSON / Exportar CSVDescarga los ejemplos del dataset en ese formato.
CalificarMuestra de 1 a 5 estrellas para marcar tus mejores datasets.
EliminarBorra el dataset después de pedirte confirmación.

Buscar y filtrar

La búsqueda revisa el nombre, la descripción y las etiquetas. Además puedes filtrar por formato (JSON, JSONL, CSV, Parquet o ChatML) y por fuente (Subido, Hugging Face, Manual, Sintetizado o Kommo CRM).

Combinar datasets

Con dos datasets o más, el botón Combinar junta los que elijas en uno nuevo, dentro del proyecto del primero que eliges.

  • Deduplicar por fingerprint viene activada: compara cada conversación completa, sin distinguir mayúsculas ni espacios y sin contar el system prompt. Dos conversaciones que solo comparten el saludo no cuentan como duplicadas.
  • El orden en que los eliges decide cuál gana: de cada duplicado se queda la copia del dataset elegido primero.
  • Solo combina datasets de proyectos de tu organización activa. Si algo falla a medias, no queda un dataset combinado incompleto.

Limpiar y validar los ejemplos

Al abrir el dataset en Conversaciones (vista Dataset) buscas, filtras, validas, etiquetas y editas cada ejemplo. Para reemplazar texto en todo el dataset (por ejemplo, anonimizar datos personales) o reparar herramientas mal formadas, usa las Mini tasks: cambian los ejemplos del dataset sin tocar el proyecto. Evaluar con IA y los micro-agentes trabajan sobre las conversaciones del proyecto.

Marcar como inválida no saca una conversación del dataset

El estado de validación no filtra el entrenamiento. Para entrenar solo con las buenas, filtra por Válida en Conversaciones y guarda esa selección como un dataset nuevo.

Exportar

  • Desde la vista clásica: Exportar JSON o Exportar CSV en el menú de cada dataset.
  • Desde Datasets › Exportar: Analizar calcula la distribución de roles, los tokens estimados, las llamadas a herramientas y el formato, y te recomienda qué tipo de entrenamiento conviene. El botón de descarga baja el dataset en JSONL, una conversación por línea. El botón Subir a Hugging Face aparece, pero todavía no está disponible.
  • Desde Conversaciones: selecciona conversaciones y usa la paleta de comandos (⌘K o Ctrl+K) › Exportar seleccionadas (JSONL).

¿Necesitas más datos?

La síntesis genera conversaciones nuevas con IA a partir de tus semillas o de una URL. Está en todos los planes; los superiores generan más conversaciones por trabajo.