Skip to main content
Cada secuencia lleva dos tipos de metadatos separados:
  • Validez técnica. ¿La grabación es utilizable? Avala la informa a partir de los criterios de aceptación y los objetivos de calidad. Consulte la sección Validez técnica.
  • Resultado de comportamiento. ¿Qué hizo la persona o el robot, y la tarea tuvo éxito? Avala lo guarda como la etiqueta de resultado de la secuencia.
Una secuencia puede ser técnicamente válida y aun así mostrar un fallo. Una secuencia fallida suele ser la más útil. Los dos ejes se mantienen separados, así que un filtro de datos limpios nunca descarta un fallo útil, y un filtro de éxito nunca oculta un sensor averiado.

La etiqueta de resultado

Cada secuencia tiene como máximo una etiqueta de resultado vigente. Cada escritura registra una nueva versión. Las versiones anteriores siguen disponibles en el historial de la etiqueta.

Ejemplo

Esta es la etiqueta de una demostración humana con un deslizamiento y una recuperación, tal como la devuelve GET .../sequences/<sequence-uid>/outcome/:
Los valores ilustran la forma de la etiqueta. No describen una entrega real.

Campos

Todas las marcas de tiempo son segundos desde el inicio de la secuencia. mistake_type, recovery_type y failure_stage son texto libre. Use las etiquetas de la taxonomía de fallos de su programa para que las secuencias se agrupen con limpieza.

Valores de resultado

Cada subtarea puede llevar su propio resultado de la misma lista.

Nivel de autonomía

Subtareas

Cada subtarea es {label, start_ts, end_ts, outcome}. Una etiqueta contiene como máximo 256 subtareas. La lista debe estar ordenada por start_ts. Dos subtareas cualesquiera son disjuntas o una contiene por completo a la otra, como una fase y sus pasos. Los extremos que se tocan cuentan como disjuntos. Un solapamiento parcial se rechaza. Cuando dos subtareas empiezan al mismo tiempo, ponga primero la que contiene a la otra.

Acciones de las manos

hand_actions contiene dos flujos independientes, left y right. Cada elemento describe lo que hace una mano durante un rango de tiempo.
  • Dentro de una mano, los elementos se ordenan por start_ts y no deben solaparse. Un elemento empieza en el final del anterior o después. Tocarse está permitido.
  • Las dos manos se solapan libremente.
  • Cada mano contiene como máximo 3.600 elementos. Eso es una hora a una etiqueta por segundo.
  • left y right son las únicas claves. Puede omitir cualquiera de ellas. Una mano omitida se guarda como una lista vacía.
  • Un object o verb vacío se guarda como null. Cada elemento guardado tiene los seis campos.

Duración de la secuencia

Cuando Avala conoce la duración de la secuencia, cada end_ts de subtarea y cada end_ts de acción de mano debe ser como máximo la duración más 1 segundo. El segundo extra admite etiquetas escritas a una por segundo. Avala conoce la duración cuando la secuencia tiene exactamente un archivo MCAP extraído con una duración registrada. Para las demás secuencias, la verificación se omite.

Pertenencia a evaluación

evaluation_membership asigna la secuencia a una división: Avala define held_out_eval en las secuencias de cada cohorte de evaluación. Esas secuencias nunca aparecen en una release de entrenamiento. Consulte Evaluación.

Grupos de fuga

Los grupos de fuga evitan que casi duplicados queden a ambos lados de una división entre entrenamiento y evaluación. leakage_groups acepta estas claves, cada una con un ID de grupo de hasta 255 caracteres: Cualquier otra clave se rechaza. Cada clave es opcional. Avala construye las cohortes de evaluación de modo que ningún valor de grupo de una cohorte aparezca en ninguna release de entrenamiento. Usted puede dividir sus propios datos de la misma forma: reserve por grupo, nunca por secuencia aleatoria. Los IDs de grupo de Avala son seudónimos, así que puede agrupar y dividir sin saber quién ni dónde.

Metadatos de origen

source_metadata registra de dónde vino una etiqueta importada, por ejemplo {"importer": "...", "run_id": "...", "task": "...", "log_path": "..."}.
  • Es un objeto plano con como máximo 20 claves.
  • Cada clave tiene de 1 a 64 caracteres.
  • Cada valor es un string de hasta 512 caracteres, un número finito o un booleano.
  • Los objetos anidados, las listas y los valores null se rechazan.

Cómo funcionan las escrituras

  • Una escritura reemplaza la etiqueta vigente por completo y registra una nueva versión. Cualquier campo opcional que omita se guarda sin definir. No se copia de la versión anterior.
  • Escribir requiere acceso de edición al dataset. Leer requiere el mismo acceso que leer la secuencia, incluidos los datasets públicos.
  • confidence se rechaza salvo que source sea model.
  • Leer una secuencia sin etiqueta devuelve 404.

Validez técnica

La validez técnica no forma parte de la etiqueta de resultado. Avala la informa desde el motor de aceptación y desde los objetivos de calidad, y no tiene un esquema JSON propio. Criterios de aceptación. Cada captura de una campaña de captura recibe un veredicto automático: accept, quarantine o reject. El veredicto proviene de estos criterios: Cada criterio informa pass, fail, insufficient_evidence o skipped. Un criterio fallido registra un código de motivo, como acceptance_frame_rate_drop o hands_not_visible. Después, un revisor confirma o anula el veredicto. Los códigos de motivo se enumeran en Hora aceptada. Lea la aceptación con las herramientas MCP get_result_acceptance para una captura y get_campaign_acceptance_summary para una campaña. list_capture_submissions incluye el resumen de aceptación automática de cada captura. Objetivos de calidad. Un proyecto puede fijar umbrales sobre métricas de calidad, como la tasa de aceptación, la tasa de rechazo y la tasa de incidencias. Avala alerta cuando una métrica cruza su umbral. Léalos con la herramienta MCP list_quality_targets. Las verificaciones del programa que no son criterios automáticos, como la calibración, el consentimiento y la sincronización de marcas de tiempo, se informan como motivos de rechazo en el informe de cobertura. Consulte Hora aceptada.

Leer y escribir etiquetas de resultado

Los endpoints REST están bajo https://api.avala.ai/api/v1: La lista del dataset acepta los filtros outcome, evaluation_membership, source y autonomy_level. Cada uno admite un valor o una lista separada por comas, y una secuencia coincide con cualquier valor de la lista. model_version coincide con una versión exacta. Un valor de filtro desconocido devuelve 400. La lista de secuencias, GET /datasets/{owner}/{slug}/sequences/, acepta outcome y evaluation_membership de la misma forma. Devuelve las secuencias cuya etiqueta vigente coincide.

Escribir una etiqueta

El SDK de TypeScript recibe nombres de opciones en camelCase y envía los campos de la API en snake_case. Las claves dentro de sourceMetadata se envían tal como están escritas. En la CLI, --hand-actions-file recibe un archivo JSON con {"left": [...], "right": [...]}, y --leakage-group KEY=ID puede repetirse.

Leer etiquetas

La lista del dataset devuelve hasta 100 etiquetas por página. Pase el cursor de la página anterior para continuar.

Leer etiquetas con el servidor MCP

El servidor MCP lee etiquetas de resultado. No las escribe.
  • get_sequence_outcome recibe owner, slug y sequenceUid. Devuelve la etiqueta vigente.
  • list_sequence_outcomes recibe owner y slug, más los filtros outcome, evaluationMembership, source, autonomyLevel y modelVersion, y limit y cursor.
Ambas herramientas devuelven una forma breve por defecto. Pase detail: "full" para incluir subtareas, acciones de las manos, las etiquetas de error y de recuperación, los grupos de fuga, los metadatos de origen y quién etiquetó. Consulte Use Avala con IA para conectarse.

Exportar etiquetas de resultado con LeRobot

El exportador de LeRobot puede escribir la etiqueta de resultado vigente de cada secuencia junto al dataset. Una secuencia de Avala se convierte en un episodio de LeRobot.
Las etiquetas se escriben en meta/avala_sequence_outcomes.jsonl, un objeto JSON por línea y una línea por cada episodio de LeRobot guardado. La tabla de episodios propia de LeRobot no tiene lugar para estos metadatos, así que van en un archivo aparte. Cada línea tiene estas claves: Una secuencia sin etiqueta recibe una línea con solo episode_index, avala_sequence_uid y "outcome": null.

El carril de fallo y recuperación

Los fallos recuperables se entregan como su propio carril: las secuencias cuyo resultado es mistake_and_recovery o intervention. Las subtareas y las acciones de las manos de cada secuencia marcan dónde ocurren el fallo y la recuperación. El carril se entrega como un slice aparte dentro de la release. Usted puede entrenar con él, ponderarlo o dejarlo fuera. También puede construir el mismo conjunto usted mismo con ?outcome=mistake_and_recovery,intervention. Las secuencias inseguras no forman parte del carril.