Skip to content

Novedades

Novedades de Potato v2.x. La versión 2.12 añade experimentos conductuales, importación de encuestas y formatos para la lingüística, las humanidades digitales, la ecología y las ciencias de la vida. 76 tipos de anotación.

Esta página recoge las nuevas funcionalidades y mejoras de las versiones Potato v2.x.


Potato 2.12.0

Publicado en octubre de 2026

Potato 2.12.0 es una versión para investigadores de fuera del PLN y el aprendizaje automático. Para los experimentos conductuales añade condiciones entre sujetos, saltos de página y exclusiones, contrabalanceo, ensayos cronometrados, lectura autoadministrada y pruebas de escucha, y ejecuta líneas de tiempo de jsPsych, comprobaciones de auriculares y tareas externas como páginas de un estudio. Los cuestionarios se importan desde siete herramientas de encuestas, y nuevos tipos de anotación y formatos cubren los experimentos de encuesta, el análisis de contenido, las redes egocéntricas, el análisis de dominios culturales, la elicitación incentivada, el glosado interlineal, las humanidades digitales, las cámaras trampa, la bioacústica, los mapas, las estructuras de proteínas y los loci genómicos.

Potato tiene ahora 76 tipos de anotación (61 en 2.11.1) y 27 tipos de visualización (24), exporta 60 formatos (32) e importa 38 (20), más siete formatos de encuesta. Lee los cambios que afectan a los estudios existentes antes de actualizar.

bash
pip install --upgrade potato-annotation

Experimentos conductuales

  • Flujo del experimento. conditions asigna a los participantes a celdas entre sujetos, de forma equilibrada, aleatoria o rotatoria. show_when salta una página, exit_when excluye a un participante con el resultado de exclusión de la plataforma, phases.counterbalance ordena las páginas mediante un cuadrado latino de Williams, y randomize_questions ordena las preguntas de una página de encuesta. {condition.<factor>} varía la redacción según la condición.
  • Fases de ejecución. Una página type: jspsych ejecuta una línea de tiempo de jsPsych 8.3.0 con 15 plugins incluidos y la extensión de seguimiento del ratón. Una página type: headphone_check selecciona a los oyentes con una prueba que puntúa el servidor, y una página type: external envía a los participantes a oTree, Empirica o una encuesta alojada y los trae de vuelta, con retornos firmados.
  • Ensayos cronometrados con fijación, duración del estímulo, plazos y tiempos de reacción alineados con los fotogramas, y lectura autoadministrada y la tarea maze con tiempos de lectura por región. Los experimentos de Ibex y PCIbex se importan con -f ibex (Si vienes de Ibex).
  • Pasajes cloze puntuados con una clave que se queda en el servidor, y pruebas de vocabulario al estilo de LexTALE. Potato no incluye los ítems de LexTALE.
  • Pruebas de escucha: MUSHRA, BS.1116, ACR, DCR, CCR, ABX y P.835, con estímulos ciegos y cribado posterior en la exportación. Potato no incluye clips de P.808 ni textos de la UIT.

Experimentos conductuales en línea, Si vienes de jsPsych y Comparativa de herramientas para experimentos conductuales reúnen todo esto.

Encuestas y ciencias sociales

Lingüística, humanidades y ciencias

Imagen, inicio de sesión y datos

  • volume_annotation para volúmenes DICOM y NIfTI, imágenes de portaobjetos completos mediante openslide, secuencias de nubes de puntos con objetos rastreados, y atributos por objeto en las formas de imagen y de vídeo.
  • Inicio de sesión SAML (authentication.method: saml), e inicio de sesión con Hugging Face en un Space.
  • Las páginas de los anotadores siguen el ajuste de modo oscuro del navegador (ui.theme), y grid_view etiqueta una página de miniaturas de una vez.
  • Los proyectos de Label Studio y Argilla se importan completos, con las respuestas de cada anotador como su trabajo guardado (Importar proyectos). Las fuentes de datos GCS y Azure Blob se suman a S3.
  • potato validate comprueba las claves de cada esquema según su tipo, y validation.acknowledge enumera las advertencias que un estudio espera.

Cambios que afectan a los estudios existentes

  • Las páginas de los anotadores siguen el ajuste de modo oscuro del navegador. ui.theme es auto por defecto, así que define ui.theme: light para mantener a todos los anotadores en el tema claro.
  • potato validate informa de las claves que el tipo de un esquema no lee, y --strict falla con ellas. Enumera las advertencias que esperas en validation.acknowledge.
  • Lógica de visualización. En el navegador, equals frente a una respuesta multiselect ya no coincide cuando hay una opción seleccionada, así que usa contains. En el servidor, matches sobre una pregunta sin responder es ahora falso. En ambos, length_* sobre un multiselect cuenta las opciones seleccionadas en lugar de los caracteres.
  • Botones de despliegue. potato deploy button ya no escribe el destino de la copia de seguridad del autor, y cada persona que despliega nombra el suyo. Vuelve a generar un botón existente con --force (Despliegue rápido).
  • potato import sin -f prueba primero los importadores de encuestas, así que pasa -f para elegir el formato.
  • Los deslizadores se ajustan a pasos contados desde min_value, así que un mínimo de 1 con paso 2 da 1, 3, 5, y un deslizador con un paso fraccionario ya no guarda solo números enteros.
  • defusedxml es ahora una dependencia obligatoria, que instala pip install --upgrade potato-annotation.
  • MTurk cerró el 30 de septiembre de 2026. Una configuración de MTurk sigue cargándose, así que un estudio archivado arranca y exporta. Traslada los estudios activos a Prolific, CloudResearch Connect o SONA.

Las notas de la versión tienen la lista completa.


Potato 2.11.1

Publicado en octubre de 2026

Potato 2.11.1 vuelve a permitir que potato start config.yaml --debug arranque en la dirección predeterminada, añade clasificadores de imágenes al entrenamiento de modelos y corrige las preetiquetas que se perdían en cada reinicio.

bash
pip install --upgrade potato-annotation

Modo de depuración

Desde 2.8.2 hasta 2.11.0, un servidor de depuración en la dirección predeterminada 0.0.0.0 se negaba a arrancar a menos que se indicara --host 127.0.0.1. En 2.11.1 arranca en cualquier dirección, y otras máquinas de la red pueden acceder a él. La guía de depuración describe lo que hace ahora el modo de depuración:

  • La página de inicio de sesión se mantiene salvo que añadas --debug-phase. Con --debug-phase, cada visitante inicia sesión como el debug_user compartido, así que no lo uses en un estudio real.
  • Las páginas de administración se abren sin clave solo para las solicitudes que vienen de la propia máquina del servidor, es decir, de una dirección de loopback sin encabezado X-Forwarded-For, X-Real-IP ni Forwarded. Esto se cumple también con un bind a 127.0.0.1, donde 2.11.0 dejaba pasar todas las solicitudes, porque un proxy o un túnel en la misma máquina reenvía a 127.0.0.1 las solicitudes de otras máquinas.
  • El depurador interactivo de Werkzeug solo se ejecuta con un bind a 127.0.0.1, porque ejecuta el código que se escribe en el navegador.

POTATO_ALLOW_REMOTE_DEBUG ya no se lee. Un comando de depuración con --host 127.0.0.1 sigue funcionando y sigue dándote el depurador interactivo.

Clasificación de imágenes y preetiquetas

  • El entrenamiento de modelos ajusta clasificadores de imágenes. Un esquema radio o multiselect cuyos ítems nombran archivos de imagen se entrena sobre embeddings de CLIP, cuando antes ajustaba TF-IDF sobre las rutas de los archivos. Las imágenes remotas o que faltan se omiten con una advertencia.
  • El aprendizaje activo con imágenes funciona como está documentado. vectorizer: {name: image} construye el vectorizador CLIP. Antes, el gestor no sabía construir un vectorizador con ese nombre, así que un estudio así se ordenaba por TF-IDF sobre las rutas de los archivos.
  • El motor de etiquetado destila clasificadores de imágenes en un estudio de imágenes (labeling_engine.distill.modality).
  • Preetiquetas para ítems sin etiquetar. model_training.writeback.include_unlabeled: true genera predicciones para los ítems que nadie ha etiquetado todavía. Antes, una ejecución solo predecía sobre ítems reservados que ya estaban etiquetados, así que la escritura de vuelta nunca llegaba a los ítems para los que existe una preetiqueta.

La documentación del entrenamiento de modelos cubre las ejecuciones de entrenamiento, la escritura de vuelta y la cola de revisión.

Correcciones que afectan a estudios anteriores

  • Las preetiquetas no sobrevivían a un reinicio. Al arrancar, la reproducción de las predicciones guardadas se ejecutaba antes de que se cargara ningún ítem, así que la cola de revisión del modelo se vaciaba en cada reinicio. Ahora se ejecuta después de cargar los ítems y aplica las mismas comprobaciones que la escritura de vuelta.
  • Un modelo de texto se entrenaba con URLs. En los ítems con un campo url, path o file_name, el entrenador recibía ese valor en lugar del texto.
  • El restablecimiento de contraseñas fallaba con SSO. Con method: oauth y allow_local_login, cada restablecimiento lanzaba un error. Ahora se pueden restablecer las cuentas locales.
  • ai_support rechazaba OpenRouter. endpoint_type: openrouter ahora se acepta.

Las notas de la versión tienen la lista completa.


Potato 2.11.0

Publicado en octubre de 2026

Potato 2.11.0 añade el motor de etiquetado, que etiqueta un conjunto de datos con modelos y usa una muestra aleatoria y ciega de etiquetas humanas para medir con qué frecuencia se equivocan los modelos. Tú indicas qué deben cumplir las etiquetas finales, por ejemplo «como mucho el 5% de las etiquetas de máquina aceptadas son incorrectas, con un 90% de confianza». El motor acepta las etiquetas de máquina que respalda una prueba estadística, envía el resto a personas y escribe un certificado que registra qué se probó y con cuántas etiquetas humanas. El motor de etiquetado explica cómo configurarlo.

Las sesiones inactivas ahora se cierran, por defecto a las 8 horas. Antes de 2.11.0, session_timeout_minutes no tenía ningún efecto en una aplicación en ejecución, porque la comprobación se registraba en un objeto de aplicación que potato start descarta. Una sesión que pasa inactiva más tiempo del configurado (480 minutos por defecto) ahora se borra, y su siguiente petición va a la página de inicio de sesión. Los quioscos y los equipos compartidos de laboratorio que se quedan con la sesión abierta toda la noche empezarán a ver cierres de sesión, así que sube session_timeout_minutes donde eso importe.

bash
pip install --upgrade potato-annotation

El motor de etiquetado

Un bloque labeling_engine y assignment_strategy: engine activan el motor. Sus fuentes son modelos, que se prueban en orden de cascada, y un ítem pasa a las personas después de la última fuente. Cada contrato nombra un esquema de anotación y se prueba con etiquetas humanas que el motor pide al azar y sirve a ciegas, sin preanotación, veredicto de juez ni ayuda de IA en la página.

  • Fuentes. LLM, modelos de visión y lenguaje, modelos de decisión (Laya y cualquier servidor /v1/systemone), detectores YOLO, jueces LLM con intercambio del orden de las etiquetas, jurados, modelos entrenados con las propias etiquetas del estudio y etiquetas que ya tengas.
  • Contratos. selective_risk acota, con una confianza indicada, la proporción de etiquetas de máquina aceptadas que son incorrectas. ppi da intervalos de prevalencia o de media que siguen siendo válidos sea cual sea la calidad de la máquina. no_worse_than_human ejecuta la prueba del anotador alternativo, budget_first proyecta lo que se obtiene con un presupuesto de etiquetas humanas y distributional compara las etiquetas de la máquina con cómo se reparten las personas en ítems subjetivos.
  • Modalidades. Esquemas de una opción entre N, ordinales, numéricos y multietiqueta, regiones de imagen, audio, vídeo, segmentos de temporal grounding y de anotación por niveles, objetos 3D y etiquetas de pasos en trazas de agentes. Las regiones, los segmentos, los objetos 3D y las trazas se puntúan con las medidas que usa el informe de acuerdo.
  • Auditorías. Una parte de las etiquetas de máquina aceptadas vuelve a las personas, a ciegas. Cuando las auditorías muestran una tasa de error por encima del objetivo, el motor deja de aceptar etiquetas de máquina en ese esquema (con features.drift, activado por defecto), y volver a certificar restablece la aceptación.
  • Interfaces. potato label run|status|certify|certificate|export|calls|distill|optimize|migrate-config, una REST API bajo /api/engine/v1, cinco herramientas MCP engine_*, un Python SDK y una página de administración en /admin/labeling-engine.

Un contrato cumplido es una afirmación estadística sobre el acuerdo con las personas que etiquetaron la muestra. El motor no comprueba que esas personas acierten, así que un contrato probado con anotadores poco fiables certifica el acuerdo con anotadores poco fiables. Contratos del motor de etiquetado explica qué prueba cada contrato y cuándo falla.

icl_labeling, judge_calibration y pre_annotation siguen funcionando, y cada uno muestra al arrancar un aviso que nombra su equivalente en el motor. potato label migrate-config escribe el bloque labeling_engine equivalente. El modo solo y la alineación de jueces no quedan obsoletos. Migrar al motor de etiquetado tiene la tabla de equivalencias.

Acuerdo

  • /admin/iaa informa de más esquemas. spatial_annotation, temporal_grounding, tiered_annotation y los esquemas de trazas de agentes (process_reward, trajectory_eval, tool_call_review, failure_attribution, gui_trajectory) se omitían por no estar admitidos y ahora se puntúan.
  • /admin/api/agreement ya no informa de esquemas estructurados. Reducidos a nombres de etiqueta, las trazas de agentes, los segmentos, las regiones y los objetos 3D mostraban un acuerdo perfecto entre cada par de anotadores. La ruta ahora remite a /admin/iaa, que compara las estructuras.
  • Dos segmentos idénticos de longitud cero ahora coinciden. Antes se puntuaban como desacuerdo total.
  • Los evaluadores de máquina quedan fuera de las cifras publicadas. La publicación y Paper Mode excluyen a los evaluadores de máquina de las etiquetas de referencia y de las cifras de acuerdo.

Modo solo

  • Sugerencias a ciegas. solo_mode.suggestions oculta la etiqueta del LLM en todos los ítems o en una muestra, y el traspaso lee el acuerdo en los ítems a ciegas, porque una sugerencia en pantalla ancla el juicio de quien la revisa.
  • Un tope de gasto y una caché de respuestas. ai_budget.cap_usd se comprueba antes de empezar a etiquetar y antes de cada lote, y solo_mode.cache reutiliza la respuesta a una llamada repetida.
  • Modelos de decisión. Los endpoints systemone y laya etiquetan esquemas de opciones fijas en una sola pasada hacia delante, como primer nivel rápido. Solo Mode incluye una configuración.
  • Conjunto de referencia, jurado y currículo. solo_mode.gold puntúa un prompt con etiquetas conocidas antes de la ejecución completa, solo_mode.jury hace que varios modelos voten cada ítem e instance_selection.curriculum te empieza por los ítems que al LLM le resultaron más fáciles. También es nueva una comprobación de la sensibilidad al prompt.

Correcciones que afectan a estudios con 2.10

  • Una página de imagen guardaba sola una respuesta prerrellenada. En un esquema image_annotation con pre_annotation, el lienzo guardaba las formas prerrellenadas como respuesta del anotador al recalcular su diseño tras cargarse, así que un ítem sin tocar contaba como respondido. Ahora solo guarda una edición. En un estudio de imágenes con 2.10 y preanotaciones, puede que algunos ítems contados como respondidos no se tocaran nunca.
  • No cargaban las imágenes de hosts sin cabeceras CORS. Un host que no envía la cabecera Access-Control-Allow-Origin, como cocodataset.org, rechazaba la petición del lienzo, y la página mostraba «Failed to load image». Ahora la página carga esas imágenes sin CORS. Se puede dibujar, y el relleno de regiones, SAM y la segmentación por prompt de texto, que leen los píxeles de la imagen, explican por qué no pueden ejecutarse.
  • Se descartaba una forma preanotada sin color. El ítem mostraba «Annotations: 0» sin ningún aviso, y ahora la forma toma el color de su etiqueta.
  • «Generate prompt» del modo solo nunca llamaba a un modelo. Ahora pide al modelo de revisión que escriba el primer prompt. Sin modelo de revisión, recurre a la descripción de la tarea y lo indica.
  • Los rechazos a través de potato mcp connect parecían éxitos. Una llamada a herramienta rechazada volvía con isError: false, y ahora vuelve como error de herramienta con el mensaje del servidor.
  • El ejemplo de esqueleto de estudio completo tenía una clave muerta. Potato no lee ninguna training.feedback.enabled, así que el ejemplo ahora define feedback.show_explanations.
  • Las sesiones inactivas nunca se cerraban, como se describe al principio de esta entrada.
  • La adjudicación contaba a los evaluadores de máquina. Los anotadores de máquina podían enviar un ítem a adjudicación, se ignoraba min_human_annotations y una puntuación de acuerdo ausente hacía fallar el formateo.
  • El autoescalado de Prolific contaba las anotaciones de máquina e ignoraba los topes por ítem. El número de plazas que se abren ahora cuenta solo las anotaciones humanas frente al tope de cada ítem.
  • El descubrimiento de casos límite no hacía nada con vLLM. La decodificación guiada de vLLM nunca devolvía los campos de casos límite, que ahora forman parte del esquema de respuesta.

Las notas de la versión tienen la lista completa.


Potato 2.10.3

Publicado en octubre de 2026

Potato 2.10.3 corrige tres errores encontrados en 2.10.2 después de su publicación.

bash
pip install --upgrade potato-annotation
  • Acuerdo con datos unánimes. Cuando todos los anotadores daban la misma respuesta en todos los ítems, /admin/api/agreement devolvía el esquema como {"error": "float division by zero"}. En ese caso el acuerdo por azar es 1, así que alfa y los dos kappas no están definidos. La ruta ahora los informa como null, con percent_agreement en 1,0 y la misma nota que da /admin/iaa, y el promedio general deja fuera el esquema.
  • potato deploy button --dry-run no sale a la red. Sin --hf-backup-repo, la ejecución de prueba preguntaba a HuggingFace de quién era el token, y un token inválido terminaba en un traceback. Ahora la ejecución de prueba usa el marcador <hf-account>/<name>-annotations, como hace potato deploy up --dry-run, y una ejecución real informa de un token rechazado con un mensaje de error.
  • Importar Potato ya no calcula el hash de una contraseña. Potato calculaba un hash PBKDF2 al importarse, así que cada proceso gastaba 100.000 iteraciones al arrancar, incluidas las herramientas de línea de comandos. Ahora el hash se genera la primera vez que un nombre de usuario desconocido intenta iniciar sesión. Además, la importación vuelve a funcionar en Pyodide, cuyo hashlib no tiene pbkdf2_hmac.

Las notas de la versión tienen la lista completa.


Potato 2.10.2

Publicado en octubre de 2026

Potato 2.10.2 corrige funciones que no funcionaban al instalar con pip ni en la imagen de Docker, cierra vías para iniciar sesión como otro usuario, hace que funcione el backend MySQL y corrige las estadísticas de acuerdo. Si publicaste cifras de acuerdo calculadas con una versión anterior, vuelve a calcularlas.

bash
pip install --upgrade potato-annotation
  • Las cuentas SSO aceptaban cualquier contraseña. En una tarea con OAuth, el formulario de contraseña dejaba entrar a cualquiera en una cuenta que un proveedor había registrado. Las identidades SSO ya no se autentican con contraseña, y en un estudio con MySQL un desconocido ya no puede registrar el nombre de usuario de un anotador existente y heredar su trabajo.
  • ai_support y los instrumentos de encuesta fallaban al instalar con pip. Al wheel le faltaban los prompts de IA y los instrumentos de encuesta, así que un estudio que usara cualquiera de los dos se detenía al arrancar. Los contenedores y los destinos de potato deploy también omitían diez subsistemas, entre ellos el soporte de chat.
  • El backend MySQL nunca se activaba. Una configuración que lo indicaba guardaba las anotaciones en disco. Instala el driver con pip install 'potato-annotation[mysql]'; la exportación, los respaldos y potato deploy pull ahora leen la base de datos.
  • 59 correcciones de estadísticas de acuerdo, cada una comprobada con una implementación de referencia como scipy, sklearn o el paquete krippendorff. Un coeficiente indefinido se informa como indefinido en lugar de 1,0, el alfa ordinal usa la métrica ordinal de Krippendorff, MACE estima para los spammers puros una competencia de alrededor de 0,01 en lugar de 0,35, los resultados ya no cambian tras un reinicio y plackett_luce ajusta la verosimilitud best-worst en lugar de repetir Bradley-Terry.
  • Las nubes de puntos en coordenadas cartográficas conservan su precisión. Un archivo LAS en coordenadas UTM se dibujaba sobre una cuadrícula con celdas de hasta 0,5 m. Potato ahora lo sirve relativo a un origen local y guarda las anotaciones en las coordenadas propias del archivo.

Las notas de la versión tienen la lista completa.


Potato 2.10.1

Publicado en octubre de 2026

Potato 2.10.1 corrige cinco problemas de potato deploy y del respaldo que se encontraron después de la 2.10.0. Actualiza antes de fiarte de una ejecución de prueba.

bash
pip install --upgrade potato-annotation
  • Una ejecución de prueba pasaba en despliegues que luego up rechazaba. Heroku o ECS Express sin --backup, Render o Railway sin un almacenamiento de respaldo al que subir el proyecto, y Fly con un proyecto demasiado grande para enviarlo inline mostraban todos un plan sin errores. El plan y up ejecutan ahora la misma comprobación, y ambos muestran REFUSED: <reason> y terminan con el código de salida 2.
  • Se ofrecía --demo donde no puede funcionar. Render, Railway y ECS Express suben tu proyecto al almacenamiento del respaldo, así que necesitan --backup hf o --backup s3 incluso para un estudio desechable. El aviso de la comprobación previa ofrece ahora --demo solo para Heroku y HuggingFace.
  • --cloud jetstream2 planificaba el flavor equivocado. La ejecución de prueba mostraba m1.small, mientras que up creaba un m3.small.
  • Dos precios eran incorrectos. potato deploy providers indicaba unos $16 al mes para aws-ec2 y unos $7 para fly. Los planes calculan $18.31 y $5.85, y los resúmenes indican ahora unos $18 y unos $6.
  • backup: {enabled: false} no desactivaba el respaldo cuando la configuración todavía tenía un bloque huggingface_backup. Ahora prevalece el bloque nuevo.

Las notas de la versión tienen la lista completa.


Potato 2.10.0

Publicado en octubre de 2026

Potato 2.10.0 añade ocho plataformas de hosting a potato deploy, respalda las anotaciones en hosts cuyo disco no sobrevive a un reinicio y añade text_as_image, que muestra el texto de cada ítem como una imagen para que los anotadores no puedan pegarlo en un chatbot. Ejecutar Potato en local o en la nube indica qué host se ajusta a cada estudio.

Ahora se declara Python 3.9 o posterior. Una dependencia principal ya lo exigía, así que tampoco las versiones anteriores se podían instalar en 3.7 ni en 3.8, y ahora pip lo indica antes de instalar nada.

bash
pip install --upgrade potato-annotation

Despliegue

  • AWS, de tres maneras. --provider aws crea una instancia de Lightsail por un precio fijo de $12 al mes que solo necesita permisos lightsail:*. aws-ec2 es para cuentas en las que Lightsail está desactivado, y aws-ecs ejecuta el contenedor en ECS Express Mode detrás de una dirección HTTPS gestionada por AWS, con un coste mayor y con un respaldo obligatorio.
  • Heroku, en un dyno Basic. Heroku borra el disco a diario, así que Potato se niega a desplegar allí sin --backup o --demo.
  • Fly y Railway, cada uno con un volumen persistente.
  • Hetzner, Vultr y Linode, como VM configuradas igual que en DigitalOcean, con un certificado de Let's Encrypt para la dirección IP.
  • OpenStack, con un preajuste para Jetstream2. Jetstream2 da a cada instancia un nombre DNS, así que la tarea obtiene un certificado normal. También funcionan las nubes OpenStack de los campus y EGI.
  • Botones de despliegue. potato deploy button config.yaml --target heroku|render|aws|railway escribe en tu repositorio los archivos de un botón «Deploy to Heroku», «Deploy to Render» o «Launch Stack» de AWS, para que otras personas puedan ejecutar la tarea en sus propias cuentas.

Los nuevos extras deploy-aws y deploy-openstack instalan los clientes de AWS y OpenStack.

Respaldo y restauración

Un nuevo bloque backup copia cada cinco minutos la salida de anotaciones e instantáneas de las bases de datos SQLite a un dataset de HuggingFace, a un bucket compatible con S3 o a ambos. Cuando un servidor arranca con el directorio de la tarea vacío y el respaldo contiene datos, Potato los restaura antes de cargar nada, así que después de un reinicio los anotadores continúan donde lo dejaron. Pasa --backup hf, --backup s3 o --backup hf,s3 a potato deploy up. El antiguo bloque huggingface_backup se lee como un bloque backup con un solo destino y la restauración desactivada, así que los despliegues existentes se comportan como antes.

Texto como imagen

text_as_image: true convierte en el servidor el texto de cada ítem en un PNG y elimina las palabras de la página, del registro del ítem incrustado y de los endpoints JSON, así que el anotador no tiene nada que seleccionar, copiar o pegar. La función encarece pegar un ítem en un chatbot, y un anotador todavía puede volver a escribir el texto o aplicar OCR a una captura de pantalla. Un lector de pantalla no obtiene nada de la imagen, así que la función no conviene a un estudio con anotadores que usen uno. Potato se niega a arrancar cuando text_as_image se combina con un esquema de segmentos, un esquema que lee el campo de texto del ítem, Pocket Mode o Rooms. Contribución de @Eyecatch3r en PR #169.

Correcciones que afectan a los datos recogidos

  • Un reinicio en un host sin disco persistente perdía el trabajo anterior. El servidor arrancaba vacío, y el nuevo estado de un anotador que volvía sobrescribía la copia respaldada. La restauración al arrancar lo corrige.
  • DigitalOcean con --volume-gb guardaba las anotaciones en el disco raíz en lugar de en el volumen. La salida y las bases de datos SQLite están ahora en /data.
  • El respaldo de HuggingFace no hacía nada en la imagen publicada, que no incluía huggingface_hub, y en Render y DigitalOcean --hf-token definía una variable que nada leía. La imagen instala ahora el nuevo extra hosting.
  • Los despliegues en Render arrancaban sin el proyecto, y el contenedor terminaba con "config file not found". El contenedor descarga ahora el proyecto al arrancar y comprueba su sha256.

Las notas de la versión tienen la lista completa.


Potato 2.9.2 a 2.9.4

Publicado en septiembre de 2026

Actualiza a 2.9.4 o posterior si personas en las que no confías pueden acceder a tu servidor. Antes de 2.9.4, el formulario /forgot-password creaba un token de restablecimiento para cualquier nombre de usuario enviado y mostraba el enlace de restablecimiento en la página, así que cualquiera que pudiera acceder al servidor podía hacerse con cualquier cuenta con contraseña, incluidas las de administrador (GHSA-43v4-43pw-4rp2). El formulario ya no crea ningún token. Los enlaces de restablecimiento solo salen de POST /admin/create_reset_token y del comando potato reset-password. Lo notificó HDEF, junto con un parche.

  • Teléfonos (2.9.4). En pantallas táctiles, los controles miden al menos 44 px de alto, la cabecera ocupa dos filas en lugar de tres, multirate se convierte en una lista de filas con etiqueta y el resaltado de segmentos funciona con una pulsación larga.
  • Anotadores automáticos (2.9.4). Un bloque machine_annotators declara evaluadores que son programas, como detectores o LLM. /admin/iaa informa entonces del acuerdo entre humanos, entre máquinas y combinado, con las cifras principales calculadas solo sobre humanos, y las exportaciones csv, tsv y parquet incluyen una columna annotator_origin cuando algún registro procede de una máquina.
  • Cookies de sesión detrás de un prefijo de URL (2.9.4). Dos estudios servidos en /app1 y /app2 en un mismo host compartían una cookie de sesión, así que iniciar sesión en uno cerraba la sesión en el otro. La cookie se limita ahora al prefijo. Corregido por @Eyecatch3r en PR #172.
  • Navegación más rápida (2.9.2). Los scripts y las hojas de estilo se mantienen en caché entre ítems, y Next necesita menos viajes de ida y vuelta. En un enlace con viajes de ida y vuelta de 80 ms, Next en una tarea de botones de opción pasó de unos 2,6 s a unos 0,8 s.
  • Ediciones de texto justo antes de Next (2.9.2). Vaciar un cuadro de texto y pulsar Next en menos de un segundo conservaba el texto anterior. Ahora cada guardado aplica primero las ediciones pendientes.

Potato 2.9.0

Publicado en septiembre de 2026

Potato importa proyectos de brat, doccano, Prodigy, CoNLL y REFI-QDA, y transcribe y diariza audio en local. Las exportaciones registran si una forma de imagen la dibujó una persona, la propuso un modelo o se importó, y en qué sala se emitió un voto. La mayor parte de la versión son correcciones de errores.

Ejecuta potato validate --strict sobre cada configuración antes de actualizar. Varios cambios pueden hacer que un estudio que funcionaba en 2.8.2 se niegue a arrancar o se comporte de otra manera: se rechazan los nombres de esquema duplicados dentro de una fase, min_annotators_per_instance pasó a ser un alias del límite por ítem, se aplica require_fully_annotated: true, una fase que no se carga aborta el arranque, y los desplazamientos de los segmentos se cuentan en puntos de código y no en unidades UTF-16. Los valores de acuerdo de los esquemas con valores de conjunto, de orden, de matriz y ordinales etiquetados cambian y deben recalcularse. Las notas de la versión tienen la lista completa.

bash
pip install --upgrade potato-annotation

Importación y exportación

  • Importadores para brat, doccano, Prodigy, CoNLL-2003/CoNLL-U y REFI-QDA .qdpx, y un exportador .qdpx. Consulta Importar un proyecto.
  • Procedencia en las exportaciones. Cada forma de imagen registra si la dibujó una persona o la propuso un modelo (source, ai_model, confidence, edited, carried_over, import_format). Los votos emitidos en una sala multijugador llevan la sala, el rol, el voto inicial, si cambió después de la revelación y el número de votantes.
  • Las exportaciones de segmentos en csv, jsonl y parquet incluyen el texto cubierto.
  • python -m potato.export --format adjudication es nuevo, y todos los tipos de esquema tienen ahora un control de adjudicación para «adoptar una respuesta» (antes solo lo tenían radio y likert).

Audio, vídeo y transcripciones

  • Transcripción y diarización de hablantes en local con faster-whisper y sherpa-onnx, sin PyTorch y sin token de Hugging Face. Instala potato-annotation[transcribe] y después ejecuta potato transcripts <dir> --transcribe --diarize --num-speakers N -o out.json. Consulta Formatos de transcripción.
  • segment_schemes muestra cualquier tipo de anotación dentro de un segmento de audio o vídeo. Antes se aceptaba y se ignoraba.

Acuerdo, calidad e IA

  • Acuerdo a lo largo del tiempo, cruzado con las revisiones del libro de códigos, con un disparador de recalibración en /admin/iaa.
  • Un modo de revisión de salidas de modelo que incluye el subconjunto de predicciones vacías, para que se pueda calcular la exhaustividad.
  • ai_budget.cap_usd se niega a iniciar una ejecución que no puede costear, y ai_budget.prices fija las tarifas por modelo en la configuración.
  • ai_support registra final_annotation y pre_annotation_seeds, así que las tasas de aceptación se pueden medir con tus propios datos.

Despliegue e interfaz

  • Compatibilidad con proxy inverso y prefijo de ruta en todas las páginas (#168, Aldo Costa). Consulta Proxy inverso.
  • card_sort funciona sin ratón, y los movimientos se anuncian a los lectores de pantalla.
  • resizable, max_height y min_height funcionan en todos los tipos de visualización.

Correcciones que afectan a los resultados

  • /admin/api/agreement nunca producía un número y comparaba los valores almacenados en lugar de los nombres de las etiquetas, así que todos los esquemas categóricos mostraban un acuerdo perfecto.
  • En un estudio con dos anotadores por ítem, el segundo anotador era enviado a la página final, y todas las respuestas que daba a partir de ahí se perdían.
  • Las sugerencias de IA correspondían al ítem equivocado con todas las estrategias de asignación excepto fixed_order.
  • Con la configuración en memoria por defecto, los registros de usuarios nunca se guardaban, así que después de un reinicio cualquiera podía reclamar un nombre de usuario existente.

Gracias a Aldo Costa (@Eyecatch3r) por #168 y #171, y a @ruthenian8 por informar de #170 y diagnosticarlo.


Potato 2.8.2

Publicado en agosto de 2026

2.8.1 no contenía dos de las cinco correcciones de seguridad que describían sus notas de la versión, la corrección de SSRF en los endpoints de medios (GHSA-9394-85jj-2mhj) y el refuerzo del modo de depuración (GHSA-r4ww-vc5h-35qf). 2.8.2 incluye ambas. Si actualizaste a 2.8.1 por cualquiera de esos dos problemas, vuelve a actualizar. Consulta las notas de la versión 2.8.2.


Potato 2.8.1

Publicado en agosto de 2026

Una versión de seguridad. Corrigió la ejecución remota de código a través del agente de programación en vivo (GHSA-cm4p-5rfv-x252), una configuración de administración que se podía leer sin la clave de administración y un webhook de ingesta de trazas que aceptaba cualquier petición. Actualiza si ejecutas Potato en cualquier lugar que no sea localhost, y pasa directamente a 2.8.2, que incluye las dos correcciones que le faltaban a 2.8.1.


Potato 2.8.0

Publicado en agosto de 2026

Potato era una plataforma de anotación de texto con un modo para imágenes. Ahora cubre imágenes, vídeo, escaneos de gigapíxeles, nubes de puntos 3D, mapas de profundidad, episodios de robots, rollouts de vídeo generativo y anclaje visión-lenguaje. Para cada uno de ellos informa del acuerdo corregido por azar.

Actualiza si instalaste desde PyPI. Los wheels hasta la 2.7.1 declaraban los datos del paquete con un glob de un solo nivel, así que a todos los wheels les faltaban 27 plantillas situadas en subdirectorios. Las rutas de configuración inicial del modo solo, las páginas de administración, la calibración de jueces y el mapa del corpus estaban rotos para cualquiera que hubiera ejecutado pip install; quien trabajaba desde un checkout de git nunca lo notó. Corregido en PR #164 por @0x6362.

bash
pip install --upgrade potato-annotation

Acuerdo sobre geometría y tiempo

  • Acuerdo corregido por azar para etiquetas espaciales, descompuesto en detección (si los anotadores encontraron los mismos objetos), clasificación (si los llamaron igual) y localización (si los situaron en el mismo lugar, expresada como σ frente a una línea base de azar empírica, más una prueba KS).
  • STAPLE para el consenso de máscaras. Estima un contorno latente y una sensibilidad y una especificidad para cada evaluador. En un corpus donde dos anotadores cuidadosos quedan en minoría, tres a dos, frente a anotadores ruidosos, el voto mayoritario obtiene un Dice de 0,846 frente a la verdad y STAPLE obtiene 1,000.
  • IoU 3D rotado exacto, de modo que el acuerdo sobre cuboides es correcto para datos de drones, de cámaras de mano y de interiores, y no solo para cajas niveladas.
  • Acuerdo temporal expresado como un barrido sobre distintas tolerancias de emparejamiento, porque el acuerdo a 0,25 s es una afirmación distinta del acuerdo a 2 s.
  • Los valores indefinidos se explican a sí mismos. α está realmente indefinido en un corpus unánime, y un NaN sin más parece un cálculo roto.

Esto también corrige un error. La adjudicación comparaba las claves de una anotación, y los esquemas de imagen guardan todo bajo una única clave llamada _data. Por eso cada par de imágenes obtenía un acuerdo de 1,0, dos anotadores que no coincidían en nada parecían unánimes y ninguna imagen se enviaba nunca a revisión.

Visión

  • Primitivas geométricas: polilíneas, elipses, cuboides 2D, conjuntos de puntos clave con topología de esqueleto e indicadores de visibilidad de COCO, y máscaras de pincel por instancia.
  • Segmentación con un clic en el navegador, con MobileSAM sobre ONNX Runtime Web, unos 132 ms por clic, sin GPU y sin ninguna llamada de red por clic.
  • Prompts de texto de vocabulario abierto. Escribes una frase y cada coincidencia aparece recuadrada. Grounding DINO, Apache-2.0, también en el navegador.
  • Propagación de máscaras en vídeo con los módulos de memoria de SAM 2, medida en 0,974–0,979 de IoU por fotograma, sin degradación a lo largo de la secuencia. Esta se ejecuta en el servidor por diseño; el navegador tiene una vía aparte, más ligera, que traslada las máscaras de un fotograma al siguiente.
  • Zoom profundo para imágenes de gigapíxeles, servidas como DZI y como IIIF Image API 3.0, con máscaras de pincel a la resolución completa del original.
  • Ingesta de medios: TIFF multipágina de 16 bits, HEIC, RAW de cámara y ProRes/MKV/MOV a través de un proxy en el servidor con caché.
  • 15 formatos de importación y 29 de exportación, 11 de ellos de ida y vuelta. Darwin funciona en ambas direcciones.

Los atajos de teclado de la anotación de imágenes siguen ahora por defecto las convenciones de V7: b pincel, r rectángulo, f relleno, k punto clave, v seleccionar. Pon keybinding_profile: legacy en el esquema para recuperar los atajos anteriores en un estudio que ya está en marcha.

3D, profundidad y robótica

  • spatial_annotation para nubes PCD, PLY, LAS, KITTI .bin y .xyz, con cuboides 3D, puntos, polilíneas y segmentos por punto, nivel de detalle mediante octree y paneles ortográficos por franjas. La rotación se guarda como cuaternión, así que la inclinación de montaje que un campo que solo guarda la guiñada descartaría sin avisar sobrevive a un viaje de ida y vuelta por KITTI.
  • Mapas de profundidad en PNG/TIFF de 16 bits, NPY, PFM y EXR, con ventana de valores, mapas de color, lectura en metros bajo el cursor y retroproyección al mismo visor 3D.
  • Proyección con calibración, de modo que un cuboide dibujado en 3D aparece en cada imagen de cámara y se puede comprobar en 2D.
  • episode_annotation coloca N flujos de vídeo sincronizados y M carriles de series temporales del robot en una sola línea temporal, con segmentación en fases, resultados por fase y curvas de recompensa densas. Importa LeRobot v2, RLDS/TFDS y HDF5. El submuestreo de los carriles conserva los mínimos y los máximos, así que un pico de fuerza de un solo fotograma sobrevive al paso a un carril de 300 píxeles.

Evaluación

  • rollout_evaluation muestra de 2 a N vídeos generados sobre un mismo reloj y pide al anotador que marque el fotograma en el que el mundo deja de tener sentido y que indique después qué propiedad física o causal se rompió. Los paneles se pueden mostrar a ciegas y barajar de forma estable para cada anotador.
  • grounding_eval y region_caption puntúan el anclaje por IoU en cuatro umbrales y el señalamiento por la tasa de puntos que caen dentro de la región, porque un punto no tiene área y el IoU contra uno siempre es cero. La falta de anclaje se cuenta por separado.

Todo lo demás

  • Conversaciones con hilos. La visualización dialogue representa la estructura de respuestas a partir del reply_to de cada turno. potato convokit importa cualquier corpus de ConvoKit y --format convokit exporta de vuelta, sin depender de convokit.
  • Telemetría de dibujo, con el tiempo por forma, la dinámica de los trazos, el número de revisiones y la latencia de aceptación de las sugerencias de IA. Las preetiquetas aceptadas en bloque hacen subir el acuerdo sin que suba la exactitud, porque los anotadores que aceptan la misma sugerencia son unánimes por construcción. El tiempo es una señal del proceso que distingue la revisión de la aprobación mecánica allí donde las etiquetas no pueden.
  • Ingesta en vivo desde bases de datos. Las filas creadas después del arranque pasan a poder anotarse en poll_interval_seconds, sin reiniciar (#166).
  • Especificaciones legibles por máquina, un JSON Schema que cubre 159 claves de configuración, 61 tipos de anotación y 24 tipos de visualización, más un documento OpenAPI con 419 rutas. Ambos se generan a partir del código y la CI falla cuando cualquiera de los dos se desvía, así que un editor o un agente de programación puede comprobar una configuración sin inventar opciones.
  • Sin peticiones salientes. Todas las hojas de estilo, scripts, fuentes e iconos se sirven ahora desde la instalación en las 14 plantillas. styles.css empezaba con un @import de Google Fonts, que enviaba la dirección IP de cada anotador a un tercero al cargar la página, y la página de inicio de sesión llevaba un favicon de terceros. Ambas cosas se han eliminado.
  • La pestaña Instances de administración pasó de coste cuadrático a lineal. Con 2000 ítems, el tiempo bajó de 15,1 s a 23 ms.

Potato 2.7.2

Publicado en agosto de 2026

Registro de pulsaciones para campos de texto libre. Potato registra los tiempos que hay detrás de una respuesta y nunca los caracteres, y eso resulta suficiente para distinguir la escritura del pegado.

  • Registro de pulsaciones. Captura ciega al contenido de pausas, ráfagas, revisiones y pegados en cada campo de texto libre, con unas cuarenta características de resumen calculadas por respuesta. Desactivado por defecto.
  • Detección del proceso de escritura. Seis reglas con nombre y umbrales explícitos que informan de los valores de las características detrás de cada marca. Los umbrales se pueden reajustar a tu propio proyecto, y hay una vía supervisada si dispones de etiquetas.
  • Guía de ética. Texto de consentimiento de ejemplo, retención y eliminación, el problema de la tasa base, y por qué una marca es una invitación a mirar y no un hallazgo.
  • Exportaciones opcionales. export_include_typing_dynamics escribe un archivo de resumen adjunto, y --format keystrokes escribe los flujos en bruto en Parquet. Ninguna está activada por defecto, así que los datos de comportamiento nunca acaban en una publicación de datos por accidente.

El aviso a los anotadores viene activado por defecto, y desactivarlo registra una advertencia al arrancar.


Potato 2.7.1

Publicado en julio de 2026

Ingesta de transcripciones, partiendo de que la transcripción ya existe. Alguien ejecutó Whisper, o descargó los subtítulos, o recibió un corpus, y el paso siguiente no debería ser escribir un script de conversión.

  • 21 formatos de transcripción y subtítulos, frente a los 6 anteriores. Whisper, WhisperX, whisper.cpp, AWS Transcribe, Deepgram, AssemblyAI, Rev.ai, SPoRC, SubRip, WebVTT, SubStation Alpha, TTML/DFXP, json3 y srv1/srv2/srv3 de YouTube, NIST CTM, Praat TextGrid y ELAN EAF. La detección se hace por el contenido del archivo, no por la extensión.
  • Archivos de transcripción externos. Un archivo de datos puede apuntar a media/int_001.srt en disco en lugar de incrustar la transcripción. Las rutas se resuelven bajo task_dir con la comprobación de seguridad de rutas habitual, así que tus transcripciones siguen siendo archivos que puedes comparar y volver a exportar.
  • potato transcripts, un conversor que transforma una carpeta de salida de ASR en un archivo de datos listo para anotar, emparejando transcripciones con archivos multimedia por el nombre base. --dry-run informa de lo que ha detectado antes de escribir nada, y --emit-config imprime una configuración acorde.
  • Un solo vocabulario de formatos en cuatro esquemas. speech_transcript, voice_interaction y tiered_annotation aceptan ahora todo lo que acepta la visualización audio_dialogue. Antes solo lo hacía la visualización.
  • Anotar transcripciones de Whisper y Anotar subtítulos de YouTube recorren ambos puntos de partida de principio a fin.

En 2.7.1 los pasos de ASR y diarización se ejecutan antes, fuera de Potato, y Potato lee su salida. Potato 2.9 añadió la transcripción y la diarización en local mediante potato transcripts --transcribe --diarize, y el modo pensar en voz alta transcribe en local lo que dicen los propios anotadores desde la 2.7.0.


Potato 2.7.0

Publicado en julio de 2026

Potato 2.7 se apoya en una sola idea: una herramienta de anotación debería medir cómo se toman los juicios, no solo registrar cuáles fueron. Eso vale para los dos tipos de juez, las personas que anotan y los modelos de IA que se evalúan.

Medir cómo etiquetan las personas

Siete funcionalidades opcionales, ninguna de las cuales requiere un LLM.

  • Motor psicométrico. Una capa de teoría de respuesta al ítem en vivo que da a cada etiqueta una probabilidad posterior y un intervalo de sensibilidad (p = 0.94 [0.88–0.97]) en lugar de un voto mayoritario a secas. Estima la habilidad del anotador y la dificultad del ítem solo a partir de los patrones de acuerdo, dirige cada ítem al anotador cuyo juicio aporta más información y señala probables errores del libro de códigos.
  • Salas multijugador. La reunión de calibración que tu equipo ya hace por pantalla compartida, integrada en la herramienta e instrumentada: voto a ciegas, revelación por parte del anfitrión, discusión y nueva votación, con un medidor de α de Krippendorff en vivo que muestra lo que valió la sesión.
  • Boundary Lab. Sondeos contrafactuales después de cada etiqueta («¿seguiría siendo cierto?»), que convierten la anotación corriente en conjuntos de contraste y detectan anotadores inconsistentes sin sembrar ítems de oro.
  • Truth Serum. Puntuación por predicción entre pares del tipo «sorprendentemente popular», que supera al voto mayoritario donde la anotación es difícil, sin etiquetas de oro.
  • Modo pensar en voz alta. Los anotadores hablan mientras trabajan; el reconocimiento de voz se ejecuta por completo en local y la transcripción literal se convierte en la justificación.
  • Modo Paper. Un comando convierte un proyecto en un informe de dataset en LaTeX compilable, con estadísticas de acuerdo y citas incluidas.
  • Modo Pocket. Anotación móvil de primera clase con una pila de tarjetas deslizables, sincronización sin conexión e instalación como PWA.

Evaluar agentes de IA

El conjunto de evaluación de agentes creció para cubrir la estructura del equipo y los agentes multimodales: un grafo de interacción de agentes navegable, atribución de fallos entre agentes, revisión de traspasos, cuadros de mando por agente y por equipo, líneas temporales de contención de herramientas y etiquetado de comportamiento emergente, además de trayectorias de GUI y uso del ordenador, líneas temporales de voz full-duplex, anclaje temporal en vídeo y estructura de tablas en documentos.

En todo lo demás

Anotación de eventos entre documentos, anotación por turnos, un libro de códigos vivo con editor a página completa, vinculación entre páginas en PDF con OCR opcional, roles RBAC con esquemas por cohorte, paneles de administración y de anotador en 10 idiomas y una instalación mucho más ligera. Los SDK de IA ahora se cargan de forma diferida, lo que reduce el tiempo de arranque de unos 2,0 s a 0,7 s.


Potato 2.6.0

Publicado en junio de 2026

Potato 2.6 entra en el análisis de datos cualitativos y amplía las herramientas de evaluación de agentes. Añade el modo QDA, un flujo de calibración y alineación de LLM como juez con una cola de triaje basada en señales, y esquemas de edición de trayectorias que producen datos de entrenamiento SFT y DPO. Potato pasa además a estar relicenciado bajo GPL-3.0-or-later (antes PolyForm Shield).

Modo QDA

Un qda_mode opcional convierte Potato en un espacio de trabajo colaborativo de codificación cualitativa. Al activarlo se combinan un libro de códigos vivo, codificación in vivo, memos del analista, casos y búsqueda en texto completo, con valores por defecto pensados para un solo analista que codifica un corpus entero.

yaml
qda_mode:
  enabled: true            # codebook + memos + cases + search
codebook_invivo_key: i     # mint a code from a text selection
search:
  enabled: true
  annotator_claim: true

Más información sobre el modo QDA →

Calibración y alineación de LLM como juez

Etiqueta datos automáticamente con uno o varios jueces LLM y ejecuta después una pasada de calibración humana a ciegas para medir la exactitud, el acuerdo y el error de calibración. Un flujo aparte de alineación con un solo juez sigue la kappa de Cohen frente a tus etiquetas de oro humanas a medida que refinas la rúbrica, con un veredicto en línea opcional durante la anotación.

Más información sobre la calibración de jueces → · Alineación de jueces →

Cola de triaje basada en señales

Prioriza la cola de anotación con una señal de calidad por ítem (un error del agente, un pulgar abajo en producción, una puntuación baja o cualquier campo personalizado) para que los revisores vean primero los ítems más sospechosos en vez de verlos por orden de llegada.

yaml
triage:
  enabled: true
  signal_field: quality_score
  invert_signal: true
assignment_strategy: priority

Más información sobre la cola de triaje →

Edición de trayectorias para SFT/DPO

Los nuevos esquemas trajectory_edit y trajectory_correction permiten a los anotadores reescribir los pasos de la traza de un agente. El exportador convierte cada par original/corregido en objetivos de ajuste fino supervisado (trajectory_sft.jsonl) y en pares de preferencia DPO (trajectory_dpo.jsonl).

Más información sobre la edición de trayectorias →

Visualización eval_trace

Una visualización de trazas de agente en tres paneles (Razonamiento, Llamadas a funciones y Respuesta final) pensada para la evaluación continua, donde las trazas llegan por un webhook, un sondeador de Langfuse o un directorio vigilado y se juzgan según van llegando.

Más información sobre eval_trace →

Flujo de trabajo y asignación

  • Cobertura heterogénea. Límites de anotadores por ítem, informes de acuerdo entre anotadores y enrutamiento a adjudicación para tareas en las que los ítems necesitan un número distinto de anotadores.
  • Recuperar asignaciones abandonadas. Recupera las asignaciones que dejaron trabajadores de Prolific o bloqueados por el control de calidad, con retención configurable y recuperación idempotente.
  • Estrategia de asignación por lotes personalizados. Asigna lotes predefinidos de ítems a anotadores concretos.
  • Prefijos de URL para proxy inverso. Sirve Potato bajo una subruta detrás de un proxy inverso.

Licencia

Potato se publica ahora bajo GPL-3.0-or-later, relicenciado desde PolyForm Shield. Puedes usarlo, modificarlo y redistribuirlo, incluso con fines comerciales, siempre que las obras derivadas sigan bajo la GPL. Consulta la página Acerca de para más detalles.

Rendimiento y estabilidad

  • Arranque unas 3× más rápido. La pila de ML ya no se carga de forma anticipada al inicio. El tiempo de importación bajó de unos 6,5 s a 2 s, un arranque con 50k ítems de unos 10 s a 5,7 s y la memoria residente de unos 750 MB a 365 MB.
  • Cambio de nombre de esquema. annotation_type: highlight pasa a ser span, con una migración incluida. Actualiza las configuraciones antiguas renombrando el tipo; las configuraciones span existentes no se ven afectadas.
  • Una amplia tanda de refuerzo de QA tocó el registro de rutas, las fases de entrenamiento, Prolific, la persistencia, la exportación y el manejo de encuestas, los webhooks, el modo solo y el aprendizaje activo.

Potato 2.5.0

Publicado en 2026

Una tanda de codificación cualitativa que hace a Potato creíble para flujos de investigación cualitativa, junto a su superficie de anotación para NLP y ML.

  • Acuerdo entre anotadores. Kappa de Cohen (por pares) y kappa de Fleiss (N evaluadores) además del alfa de Krippendorff, expuestos a través de la API de acuerdo de administración. Consulta la guía de acuerdo entre anotadores.
  • Nuevos exportadores. codebook (CSV por esquema con jerarquía de códigos, color, descripción y número de usos) y quotation_report (CSV por segmento con texto, desplazamientos, documento de origen y codificador).
  • Analítica de códigos. Endpoints de administración para la coocurrencia de códigos por pares y una tabla cruzada de códigos por atributo sobre los metadatos de instancia existentes.

Potato 2.4.5

Publicado en 2026

Una versión de estabilidad y herramientas.

  • Refinamiento validado. Un marco modular para mejorar de forma iterativa las guías de anotación del modo solo, con protecciones frente a contradicciones en las guías y filtraciones de metadatos.
  • Validador de configuración. Una nueva CLI python -m potato.validate_cli que comprueba las claves de configuración contra el esquema de configuración conocido.
  • Seguridad. Corrección de una elusión por prefijo hermano en el recorrido de rutas dentro de la validación de rutas (GHSA-q9m2-fhv9-3jcf).
  • Correcciones en la sincronización de estado de guardado y navegación, la integración con Prolific, la navegación multifase y la retroalimentación del control de calidad.

Potato 2.3.0

Publicado el 9 de marzo de 2026

Potato 2.3 es la versión más grande de la historia de Potato. Introduce anotación agéntica, modo solo, escalado mejor-peor, autenticación SSO/OAuth, exportación a Parquet, 15 nuevos proyectos de demostración y refuerzo de seguridad.

Anotación agéntica

Un sistema completo para evaluar agentes de IA mediante anotación humana. Incluye 12 conversores de formatos de traza, 3 tipos de visualización especializados y 9 esquemas de anotación predefinidos.

12 conversores de formatos de traza. Importa trazas de agentes desde OpenAI, Anthropic, SWE-bench, OpenTelemetry, MCP, CrewAI/AutoGen/LangGraph, LangChain, LangFuse, ReAct, WebArena/VisualWebArena, ATIF y grabaciones de navegador en bruto. Hay detección automática del formato.

La conversión se ejecuta como un paso de CLI antes de arrancar el servidor:

bash
python -m potato.trace_converter \
  --input traces.json \
  --input-format react \
  --output data/traces.jsonl

El archivo convertido es entonces un archivo de datos corriente, que se muestra con uno de los tipos de visualización de agentes:

yaml
data_files:
  - "data/traces.jsonl"
 
instance_display:
  fields:
    - key: steps
      type: agent_trace
      label: "Agent trajectory"

3 tipos de visualización:

  • Visualización de traza de agente. Tarjetas de pasos con código de colores, observaciones plegables, JSON formateado y barra lateral con línea temporal para agentes que usan herramientas
  • Visualización de traza de agente web. Capturas completas con superposiciones SVG que muestran objetivos de clic, entradas de texto y acciones de desplazamiento; navegación tipo filmstrip para agentes de navegación web
  • Visualización de chat interactivo. Modo de chat en vivo (el anotador interactúa con el agente a través de un proxy) y modo de revisión de trazas para agentes conversacionales

Valoraciones por turno. Valora pasos individuales junto a la traza completa para una evaluación de grano fino.

9 esquemas predefinidos. agent_task_success, agent_step_correctness, agent_error_taxonomy, agent_safety, agent_efficiency, agent_instruction_following, agent_explanation_quality, agent_web_action_correctness, agent_conversation_quality.

Sistema de proxy de agentes. Proxies de OpenAI, HTTP y echo para evaluar agentes en vivo.

Más información sobre la anotación agéntica →


Modo solo

Un flujo de trabajo en el que un único anotador humano colabora con un LLM para etiquetar un dataset completo, alcanzando más del 95% de acuerdo con las canalizaciones multianotador y requiriendo solo entre el 10 y el 15% del total de etiquetas humanas.

El modo solo funciona como una máquina de estados de fases y no como una secuencia fija. Pasa por la configuración inicial, la revisión del prompt, un bucle opcional de casos límite, la anotación en paralelo, la resolución de desacuerdos, la anotación activa con revisiones periódicas y de reglas, el etiquetado autónomo y la validación final. Cinco de esas fases pueden volver a la revisión del prompt cuando resulta que el problema es el prompt, y la validación final vuelve a la anotación activa cuando la muestra no supera el umbral.

yaml
solo_mode:
  enabled: true
  labeling_models:
    - endpoint_type: openai
      model: "gpt-4o"
      api_key: ${OPENAI_API_KEY}
  thresholds:
    end_human_annotation_agreement: 0.92
    minimum_validation_sample: 50
  state_dir: "solo_state"

Priorización de instancias multiseñal. instance_selection pondera siete señales (baja confianza, diversidad, predicción del LLM, desacuerdo, azar, cartografía y regla de caso límite) para elegir lo que la persona ve a continuación.

Más información sobre el modo solo →


Escalado mejor-peor

Anotación comparativa eficiente en la que los anotadores eligen el mejor y el peor elemento de una tupla. Generación automática de tuplas con diseños de bloques incompletos equilibrados y tres métodos de puntuación (conteo, Bradley-Terry y Plackett-Luce).

yaml
annotation_schemes:
  - annotation_type: bws
    name: fluency
    description: "Which sentence reads most fluently?"
    tuple_size: 4
    best_description: "Most Fluent"
    worst_description: "Least Fluent"

Más información sobre el escalado mejor-peor →


Autenticación SSO y OAuth

Autenticación lista para producción con Google OAuth (restricción por dominio), GitHub OAuth (restricción por organización) y OIDC genérico (Okta, Azure AD, Auth0, Keycloak). Admite registro automático, modo mixto y gestión de sesiones.

yaml
authentication:
  method: "oauth"
  providers:
    google:
      client_id: ${GOOGLE_CLIENT_ID}
      client_secret: ${GOOGLE_CLIENT_SECRET}
      allowed_domain: "umich.edu"
  user_identity_field: "email"
  auto_register: true
 
secret_key: ${POTATO_SECRET_KEY}

Más información sobre SSO y OAuth →


Exportación a Parquet

Exporta anotaciones al formato Apache Parquet y produce tres archivos estructurados, annotations.parquet, spans.parquet e items.parquet. Admite compresión snappy, gzip, zstd, lz4 y brotli, exportación incremental y particionado por fecha o por anotador. Compatible con pandas, DuckDB, PyArrow, Polars y Hugging Face Datasets.

yaml
export_annotation_format:
  - parquet

Más información sobre la exportación a Parquet →


15 nuevos proyectos de demostración

Nuevas demos en project-hub/ que cubren anotación agéntica (5 demos), modo solo (3 demos), escalado mejor-peor (3 demos), autenticación (2 demos) y flujos de exportación (2 demos). Arranca cualquier demo con potato start config.yaml.


Refuerzo de seguridad

  • Tokens de sesión criptográficamente seguros con caducidad configurable
  • Protección CSRF activada por defecto
  • Limitación de tasa en los endpoints de autenticación
  • Saneamiento de la entrada para el contenido proporcionado por el usuario
  • Auditoría de dependencias con todos los paquetes actualizados
  • Cabeceras de política de seguridad de contenido (CSP)

Otras mejoras

  • Conversores de trazas personalizados para frameworks de agentes no soportados
  • Modo solo híbrido con muestreo de verificación multianotador
  • Pestaña de BWS en el panel de administración con gráficas de convergencia de puntuaciones
  • Exportación incremental a Parquet con particionado por fecha

Comparación v2.2 y v2.3

Funcionalidadv2.2v2.3
Anotación agénticaNo disponible12 conversores, 3 visualizaciones, 9 esquemas
Modo soloNo disponibleFlujo humano-LLM guiado por una máquina de estados de fases
Escalado mejor-peorNo disponibleBWS con 3 métodos de puntuación
AutenticaciónSolo nombre de usuario+ Google OAuth, GitHub OAuth, OIDC
Exportación a ParquetNo disponibleParquet de 3 archivos con 6 opciones de compresión
Proyectos de demostraciónMás de 125Más de 140 (15 nuevos)
SeguridadBásicaCSRF, limitación de tasa, CSP, sesiones seguras

Potato 2.2.0

Publicado el 20 de febrero de 2026

Potato 2.2 es una versión mayor con 9 nuevos esquemas de anotación, un sistema de exportación modular, estimación de competencia con MACE, 55 instrumentos de encuesta validados y fuentes de datos remotas.

Nuevos esquemas de anotación (9)

Anotación de eventos. Estructuras de eventos n-arias con segmentos disparadores y roles de argumento tipados. Anota eventos como ATTACK, HIRE y TRAVEL con argumentos de entidad restringidos y una visualización de arcos en estrella.

yaml
annotation_schemes:
  - annotation_type: event_annotation
    name: events
    description: "Mark the event triggers and their arguments"
    span_schema: entities
    event_types:
      - type: "ATTACK"
        trigger_labels: ["EVENT_TRIGGER"]
        arguments:
          - role: "attacker"
            entity_types: ["PERSON", "ORGANIZATION"]
            required: true

Más información sobre la anotación de eventos →

Vinculación de entidades. Vincula anotaciones de segmentos a bases de conocimiento externas (Wikidata, UMLS, APIs REST personalizadas). Añade un bloque entity_linking: a cualquier esquema de segmentos para activar la búsqueda y la vinculación en la base de conocimiento.

Más información sobre la vinculación de entidades →

Triaje. Interfaz de aceptar/rechazar/omitir al estilo de Prodigy para filtrar datos con rapidez. Etiquetas personalizables, atajos de teclado y avance automático para anotar a gran volumen.

Más información sobre el triaje →

Comparación por pares. Compara dos elementos en modo binario (clic en el recuadro preferido) o de escala (deslizador). Admite items_key, allow_tie y un bloque scale: con rango configurable.

Más información sobre la comparación por pares →

Árboles de conversación. Anota estructuras de conversación jerárquicas con valoraciones por nodo, selección de caminos y comparación de ramas.

Más información sobre los árboles de conversación →

Cadenas de correferencia. Agrupa menciones de texto correferentes en cadenas con indicadores visuales. Admite tipos de entidad, control de menciones únicas y varios modos de resaltado.

Más información sobre las cadenas de correferencia →

Máscaras de segmentación. Nuevas herramientas fill, eraser y brush para segmentar imágenes a nivel de píxel.

Cuadros delimitadores para PDF y documentos. Dibuja cuadros sobre páginas PDF en tareas de anotación de documentos.

Segmentos discontinuos. allow_discontinuous: true permite seleccionar fragmentos de texto no contiguos como un solo segmento.


Anotación inteligente

Estimación de competencia con MACE. Algoritmo EM de Bayes variacional que estima a la vez las etiquetas verdaderas y las puntuaciones de competencia de los anotadores (0,0-1,0). Funciona con esquemas radio, likert, select y multiselect.

yaml
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 3

Más información sobre MACE →

Resaltado de opciones. Resaltado basado en LLM de las opciones probablemente correctas en tareas de anotación discretas. Resalta las k mejores opciones con un indicador de estrella y atenúa las menos probables.

yaml
ai_support:
  option_highlighting:
    enabled: true
    top_k: 3
    dim_opacity: 0.4

Más información sobre el resaltado de opciones →

Ordenación por diversidad. Agrupamiento basado en embeddings y muestreo round-robin para que los anotadores vean contenido variado en lugar de elementos parecidos uno tras otro.

yaml
assignment_strategy: diversity_clustering
diversity_ordering:
  enabled: true
  prefill_count: 100

Más información sobre la ordenación por diversidad →


Sistema de exportación

Una nueva CLI de exportación modular (python -m potato.export) convierte las anotaciones a 6 formatos estándar del sector: COCO, YOLO, Pascal VOC, CoNLL-2003, CoNLL-U y máscaras de segmentación.

bash
python -m potato.export --config config.yaml --format coco --output ./export/

Más información sobre los formatos de exportación →


Fuentes de datos remotas

Carga datos de anotación desde URLs, S3, Google Drive, Dropbox, Hugging Face, Google Sheets y bases de datos SQL mediante el nuevo bloque de configuración data_sources:. Incluye carga parcial, caché y gestión de credenciales.

Más información sobre las fuentes de datos remotas →


Instrumentos de encuesta

55 cuestionarios validados en 8 categorías (Personalidad, Salud mental, Afecto, Autoconcepto, Actitudes sociales, Estilo de respuesta, Formas breves, Demografía). Úsalos en las fases de preestudio y posestudio con instrument: "tipi".

Más información sobre los instrumentos de encuesta →


Otras mejoras

  • Seguimiento de objetos en vídeo con interpolación entre fotogramas clave
  • Compatibilidad con un archivo externo de configuración de IA
  • Mejoras en la cuadrícula de diseño de formularios
  • Manejadores de formato para PDF, Word, código y hojas de cálculo

Potato 2.1.0

Publicado el 5 de febrero de 2026

Potato 2.1 introduce el sistema de visualización de instancias, el soporte de IA visual, la vinculación de segmentos, la anotación de segmentos en varios campos y la personalización del diseño.

Sistema de visualización de instancias

Un nuevo bloque de configuración instance_display que separa la visualización del contenido de la anotación. Muestra cualquier combinación de imágenes, vídeos, audio, texto y diálogos junto a cualquier esquema de anotación.

yaml
instance_display:
  fields:
    - key: image_url
      type: image
      display_options:
        max_width: 600
        zoomable: true
    - key: description
      type: text
 
annotation_schemes:
  - annotation_type: radio
    name: category
    description: "What category best describes this image?"
    labels: [nature, urban, people]

Admite 24 tipos de visualización, entre ellos text, html, image, video, audio, depth_map, dialogue, conversation_tree, pairwise, code, spreadsheet, document, pdf, gallery y cinco visualizaciones de trazas de agentes.

Más información sobre la visualización de instancias →


Anotación de segmentos en varios campos

Los esquemas de anotación de segmentos admiten ahora una opción target_field para anotar varios campos de texto de la misma instancia.

yaml
annotation_schemes:
  - annotation_type: span
    name: source_entities
    description: "Label the entities in the source document"
    labels: [PERSON, ORGANIZATION]
 
  - annotation_type: span
    name: summary_entities
    description: "Label the entities in the summary"
    labels: [PERSON, ORGANIZATION]

Más información sobre la anotación de segmentos →


Vinculación de segmentos

Un nuevo tipo de anotación span_link para crear relaciones tipadas entre segmentos anotados. Admite enlaces dirigidos y no dirigidos, relaciones n-arias, visualización de arcos y restricciones de etiquetas.

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight the named entities in the text"
    labels:
      - name: "PERSON"
        color: "#3b82f6"
      - name: "ORGANIZATION"
        color: "#22c55e"
 
  - annotation_type: span_link
    name: relations
    description: "Link the entities that stand in a relation"
    span_schema: entities
    link_types:
      - name: "WORKS_FOR"
        directed: true
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["ORGANIZATION"]
        color: "#dc2626"

Más información sobre la vinculación de segmentos →


Soporte de IA visual

Cuatro nuevos endpoints de visión para la asistencia de IA en la anotación de imágenes y vídeo:

  • YOLO. Detección de objetos local y rápida
  • Ollama Vision. Modelos locales de visión y lenguaje (LLaVA, Qwen-VL)
  • OpenAI Vision. Visión en la nube con GPT-4o
  • Anthropic Vision. Claude con visión

Entre sus funciones están la detección de objetos, la preanotación, la clasificación, las pistas, la detección de escenas, la detección de fotogramas clave y el seguimiento de objetos.

Más información sobre el soporte de IA visual →


Personalización del diseño

Crea diseños visuales personalizados elaborados con plantillas HTML y CSS. Potato genera un archivo de diseño editable, o puedes aportar una plantilla completamente personalizada con diseños en cuadrícula, opciones codificadas por color y estilos por sección.

yaml
task_layout: layouts/custom_task_layout.html

Se incluyen tres diseños de ejemplo: moderación de contenido, QA de diálogos y revisión médica.

Más información sobre la personalización del diseño →


Justificaciones de etiquetas

Una cuarta capacidad de IA que genera explicaciones equilibradas de por qué podría aplicarse cada etiqueta, para ayudar a los anotadores a entender las distintas perspectivas de clasificación.

yaml
ai_support:
  features:
    rationales:
      enabled: true

Más información sobre el soporte de IA →


Otras mejoras

  • Más de 50 pruebas nuevas para mejorar la fiabilidad
  • Mejoras en el diseño adaptable
  • Mejor organización del project-hub, con ejemplos de diseño
  • Correcciones de errores en varios tipos de anotación

Comparación v2.0 y v2.1

Funcionalidadv2.0v2.1
Visualización de instanciasMediante apaños en la anotaciónBloque instance_display dedicado
Destinos de segmentosUn solo campo de textoVarios campos con target_field
Vinculación de segmentosNo disponibleTipo span_link completo
IA visualNo disponibleYOLO, Ollama Vision, OpenAI Vision, Anthropic Vision
Personalización del diseñoGeneración automática básicaGeneración automática + plantillas personalizadas
Capacidades de IA3 (pistas, palabras clave, sugerencias)4 (+ justificaciones)

Potato 2.0

Potato 2.0 es una versión mayor que añade asistencia de IA, aprendizaje activo, fases de entrenamiento, flujos de trabajo multifase y un backend MySQL.

Soporte de IA

Integra modelos de lenguaje grandes para ayudar a los anotadores con pistas, resaltado de palabras clave y sugerencias de etiquetas.

Proveedores compatibles:

  • OpenAI (GPT-4, GPT-3.5)
  • Anthropic (Claude 3, Claude 3.5)
  • Google (Gemini)
  • Ollama (modelos locales)
  • vLLM (autoalojado)
yaml
ai_support:
  enabled: true
  endpoint_type: openai
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
  features:
    hints:
      enabled: true
    label_suggestions:
      enabled: true

Más información sobre el soporte de IA →


Anotación de audio

Anotación de audio completa con visualización de forma de onda basada en Peaks.js. Crea segmentos, etiqueta regiones de tiempo y anota el habla con atajos de teclado.

Funcionalidades clave:

  • Visualización de forma de onda
  • Creación y etiquetado de segmentos
  • Preguntas de anotación por segmento
  • Más de 15 atajos de teclado
  • Caché de formas de onda en el servidor
yaml
annotation_schemes:
  - annotation_type: audio_annotation
    name: speakers
    description: "Mark each speaker turn in the audio"
    mode: label
    labels:
      - Speaker A
      - Speaker B

Más información sobre la anotación de audio →


Aprendizaje activo

Prioriza automáticamente las instancias de anotación según la incertidumbre del modelo. Entrena clasificadores con las anotaciones existentes y centra a los anotadores en los ejemplos más informativos.

Capacidades:

  • Varios clasificadores disponibles (LogisticRegression, RandomForest, SVC, MultinomialNB)
  • Varios vectorizadores (TF-IDF, Count, Hashing)
  • Persistencia del modelo entre reinicios
  • Selección reforzada con LLM
  • Compatibilidad con varios esquemas
yaml
active_learning:
  enabled: true
  schema_names:
    - sentiment
  min_instances_for_training: 30
  update_frequency: 50
  classifier:
    type: LogisticRegression

Más información sobre el aprendizaje activo →


Fase de entrenamiento

Cualifica a los anotadores con preguntas de práctica antes de la tarea principal. Da retroalimentación inmediata y asegura la calidad con criterios de aprobación configurables.

Funcionalidades:

  • Preguntas de práctica con respuestas conocidas
  • Retroalimentación y explicaciones inmediatas
  • Criterios de aprobación configurables
  • Opciones de reintento
  • Seguimiento del progreso en el panel de administración
yaml
phases:
  training:
    enabled: true
    data_file: "data/training.json"
    passing_criteria:
      min_correct: 8
      total_questions: 10

Más información sobre la fase de entrenamiento →


Panel de administración mejorado

Interfaz completa de supervisión y gestión de las tareas de anotación.

Pestañas del panel:

  • Resumen: métricas generales y tasas de finalización
  • Anotadores: seguimiento del rendimiento, análisis de tiempos
  • Instancias: exploración de los datos con puntuaciones de desacuerdo
  • Configuración: ajuste de la configuración en tiempo real
yaml
admin_api_key: ${ADMIN_API_KEY}

Más información sobre el panel de administración →


Backend de base de datos

Compatibilidad con MySQL para despliegues a gran escala, con agrupación de conexiones y soporte de transacciones.

yaml
database:
  type: mysql
  host: localhost
  database: potato_db
  username: ${DB_USER}
  password: ${DB_PASSWORD}

Potato crea automáticamente las tablas necesarias la primera vez que arranca.


Historial de anotación

Registro completo de todos los cambios de anotación con marcas de tiempo, IDs de usuario y tipos de acción. Permite auditorías y análisis del comportamiento.

json
{
  "history": [
    {
      "timestamp": "2024-01-15T10:30:00Z",
      "user": "annotator_1",
      "action": "create",
      "schema": "sentiment",
      "value": "Positive"
    }
  ]
}

Flujos de trabajo multifase

Construye flujos de trabajo de anotación complejos con varias fases sucesivas:

  1. Consentimiento - Recogida del consentimiento informado
  2. Preestudio - Datos demográficos y cribado
  3. Instrucciones - Directrices de la tarea
  4. Entrenamiento - Preguntas de práctica
  5. Anotación - Tarea principal
  6. Posestudio - Encuestas de opinión
yaml
phases:
  consent:
    enabled: true
    data_file: "data/consent.json"
  prestudy:
    enabled: true
    data_file: "data/demographics.json"
  training:
    enabled: true
    data_file: "data/training.json"
  poststudy:
    enabled: true
    data_file: "data/feedback.json"

Más información sobre los flujos de trabajo multifase →


Cambios de configuración en v2.0

Nueva estructura de configuración

Potato 2.0 usa un formato de configuración más limpio:

v1 (anterior):

yaml
data_files:
  - data.json
id_key: id
text_key: text
output_file: annotations.json

v2 (nuevo):

yaml
data_files:
  - "data/data.json"
 
item_properties:
  id_key: id
  text_key: text
 
output_annotation_dir: "output/"
export_annotation_format: "jsonl"

Requisito de seguridad

Los archivos de configuración deben estar ahora dentro del task_dir.

Si la configuración está junto a los datos, el directorio de la tarea es el actual:

yaml
task_dir: "."

Si la configuración está en un subdirectorio, indica el directorio del proyecto al que pertenece:

yaml
task_dir: "my_project/"

Comparación rápida

Funcionalidadv1v2.0v2.1v2.2v2.3
Soporte de IA/LLMNoSíSí + IA visual + justificaciones+ Resaltado de opciones+ Modo solo
Anotación agénticaNoNoNoNo12 conversores, 3 visualizaciones
Escalado mejor-peorNoNoNoNoSí (3 métodos de puntuación)
Anotación de audioBásicaForma de onda completaForma de onda completaForma de onda completaForma de onda completa
Aprendizaje activoNoSíSíSí + ordenación por diversidad+ Integración con el modo solo
Visualización de instanciasNoNoSíSíSí
Vinculación de segmentosNoNoSíSíSí
Anotación de eventosNoNoNoSíSí
Vinculación de entidadesNoNoNoSíSí
Pares/triaje/correferencia/árbolesNoNoNoSíSí
Personalización del diseñoNoGeneración automáticaAutomática + plantillas personalizadasAutomática + plantillas personalizadasAutomática + plantillas personalizadas
Fase de entrenamientoNoSíSíSíSí
Panel de administraciónBásicoMejoradoMejoradoMejorado + MACE+ Pestaña BWS, modo solo
Backend de base de datosSolo archivosArchivos + MySQLArchivos + MySQLArchivos + MySQLArchivos + MySQL
CLI de exportaciónNoNoNoSí (COCO, YOLO, CoNLL, etc.)+ Parquet
AutenticaciónNombre de usuarioNombre de usuarioNombre de usuarioNombre de usuario+ Google/GitHub OAuth, OIDC
Instrumentos de encuestaNoNoNo55 cuestionarios validados55 cuestionarios validados
Fuentes de datos remotasNoNoNoS3, GDrive, HuggingFace, etc.S3, GDrive, HuggingFace, etc.

Guía de migración

Actualizar la configuración (de v1 a v2)

  1. Configuración de los datos

    yaml
    # Old
    id_key: id
    text_key: text
     
    # New
    item_properties:
      id_key: id
      text_key: text
  2. Configuración de la salida

    yaml
    # Old
    output_file: annotations.json
     
    # New
    output_annotation_dir: "output/"
    export_annotation_format: "jsonl"
  3. Ubicación del archivo de configuración Asegúrate de que el archivo de configuración está dentro del directorio del proyecto.

Arrancar el servidor

bash
# v2 command
python -m potato start config.yaml -p 8000
 
# Or shorthand
potato start config.yaml

Primeros pasos

¿Quieres probar Potato? Empieza con la guía de inicio rápido o explora funcionalidades concretas:

Funcionalidades de v2.3:

Funcionalidades de v2.2:

Funcionalidades de v2.1:

Funcionalidades principales: