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.
pip install --upgrade potato-annotationExperimentos conductuales
- Flujo del experimento.
conditionsasigna a los participantes a celdas entre sujetos, de forma equilibrada, aleatoria o rotatoria.show_whensalta una página,exit_whenexcluye a un participante con el resultado de exclusión de la plataforma,phases.counterbalanceordena las páginas mediante un cuadrado latino de Williams, yrandomize_questionsordena 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: jspsychejecuta 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áginatype: headphone_checkselecciona a los oyentes con una prueba que puntúa el servidor, y una páginatype: externalenví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
- Importación de encuestas desde Qualtrics, SurveyJS, LimeSurvey, XLSForm (ODK, KoboToolbox), REDCap, Beiwe y Network Canvas, con la lógica de mostrar y ocultar, los aleatorizadores y las ramas de fin de encuesta del origen traducidos (Si vienes de Qualtrics).
- Experimentos de lista y respuesta aleatorizada para preguntas sensibles, con estimaciones de prevalencia en la exportación
survey_experiments. - Análisis de contenido: libros de códigos cargados desde un archivo CSV, JSON o YAML, y el alfa de Krippendorff con intervalos bootstrap en la exportación
reliability. - Redes egocéntricas, listados libres y pruebas de tríadas con un modelo de consenso cultural, y pagos por incentivos mediante listas de precios, pujas BDM y elicitación de creencias, sorteados después del estudio y pagados como bonificaciones de Prolific.
- Tareas de dibujo en mapa sobre mapas, con mapas de calor de solapamiento para la dialectología perceptiva.
Lingüística, humanidades y ciencias
- Texto glosado interlineal con comprobaciones de alineación de Leipzig, importado desde FLEx y Toolbox y exportado a ellos (Trabajo de campo lingüístico). Los archivos TextGrid de Praat y los de ELAN se importan como anotación por niveles.
- Formatos de humanidades digitales: manifiestos IIIF, W3C Web Annotation, PAGE XML para la corrección de líneas de texto manuscrito, TEI y flujos de trabajo de Zooniverse.
- Cámaras trampa a partir de la salida de MegaDetector, exportadas como Camtrap DP y Darwin Core, y bioacústica con rectángulos sobre espectrogramas a partir de tablas de Raven, Audacity y BirdNET. Potato lee la salida de BirdNET y no ejecuta BirdNET.
- Estructuras de proteínas en 3Dmol.js o Mol* y loci genómicos en igv.js, con residuos y variantes registrados por un esquema
viewer_selection.
Imagen, inicio de sesión y datos
volume_annotationpara 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), ygrid_viewetiqueta 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 validatecomprueba las claves de cada esquema según su tipo, yvalidation.acknowledgeenumera 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.themeesautopor defecto, así que defineui.theme: lightpara mantener a todos los anotadores en el tema claro. potato validateinforma de las claves que el tipo de un esquema no lee, y--strictfalla con ellas. Enumera las advertencias que esperas envalidation.acknowledge.- Lógica de visualización. En el navegador,
equalsfrente a una respuesta multiselect ya no coincide cuando hay una opción seleccionada, así que usacontains. En el servidor,matchessobre 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 buttonya 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 importsin-fprueba primero los importadores de encuestas, así que pasa-fpara 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. defusedxmles ahora una dependencia obligatoria, que instalapip 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.
pip install --upgrade potato-annotationModo 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 eldebug_usercompartido, 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-IPniForwarded. Esto se cumple también con un bind a127.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 a127.0.0.1las 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: truegenera 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,pathofile_name, el entrenador recibía ese valor en lugar del texto. - El restablecimiento de contraseñas fallaba con SSO. Con
method: oauthyallow_local_login, cada restablecimiento lanzaba un error. Ahora se pueden restablecer las cuentas locales. ai_supportrechazaba OpenRouter.endpoint_type: openrouterahora 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.
pip install --upgrade potato-annotationEl 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_riskacota, con una confianza indicada, la proporción de etiquetas de máquina aceptadas que son incorrectas.ppida intervalos de prevalencia o de media que siguen siendo válidos sea cual sea la calidad de la máquina.no_worse_than_humanejecuta la prueba del anotador alternativo,budget_firstproyecta lo que se obtiene con un presupuesto de etiquetas humanas ydistributionalcompara 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 MCPengine_*, 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/iaainforma de más esquemas.spatial_annotation,temporal_grounding,tiered_annotationy 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/agreementya 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.suggestionsoculta 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_usdse comprueba antes de empezar a etiquetar y antes de cada lote, ysolo_mode.cachereutiliza la respuesta a una llamada repetida. - Modelos de decisión. Los endpoints
systemoneylayaetiquetan 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.goldpuntúa un prompt con etiquetas conocidas antes de la ejecución completa,solo_mode.juryhace que varios modelos voten cada ítem einstance_selection.curriculumte 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_annotationconpre_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 connectparecían éxitos. Una llamada a herramienta rechazada volvía conisError: 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 definefeedback.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_annotationsy 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.
pip install --upgrade potato-annotation- Acuerdo con datos unánimes. Cuando todos los anotadores daban la misma respuesta en todos los ítems,
/admin/api/agreementdevolví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 comonull, conpercent_agreementen 1,0 y la misma nota que da/admin/iaa, y el promedio general deja fuera el esquema. potato deploy button --dry-runno 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 hacepotato 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
hashlibno tienepbkdf2_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.
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_supporty 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 depotato deploytambié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 ypotato deploy pullahora 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 yplackett_luceajusta 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.
pip install --upgrade potato-annotation- Una ejecución de prueba pasaba en despliegues que luego
uprechazaba. 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 yupejecutan ahora la misma comprobación, y ambos muestranREFUSED: <reason>y terminan con el código de salida 2. - Se ofrecía
--demodonde no puede funcionar. Render, Railway y ECS Express suben tu proyecto al almacenamiento del respaldo, así que necesitan--backup hfo--backup s3incluso para un estudio desechable. El aviso de la comprobación previa ofrece ahora--demosolo para Heroku y HuggingFace. --cloud jetstream2planificaba el flavor equivocado. La ejecución de prueba mostrabam1.small, mientras queupcreaba unm3.small.- Dos precios eran incorrectos.
potato deploy providersindicaba unos $16 al mes paraaws-ec2y unos $7 parafly. 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 bloquehuggingface_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.
pip install --upgrade potato-annotationDespliegue
- AWS, de tres maneras.
--provider awscrea una instancia de Lightsail por un precio fijo de $12 al mes que solo necesita permisoslightsail:*.aws-ec2es para cuentas en las que Lightsail está desactivado, yaws-ecsejecuta 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
--backupo--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|railwayescribe 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-gbguardaba 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-tokendefinía una variable que nada leía. La imagen instala ahora el nuevo extrahosting. - 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_annotatorsdeclara evaluadores que son programas, como detectores o LLM./admin/iaainforma 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 columnaannotator_origincuando 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
/app1y/app2en 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.
pip install --upgrade potato-annotationImportació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 adjudicationes 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 ejecutapotato transcripts <dir> --transcribe --diarize --num-speakers N -o out.json. Consulta Formatos de transcripción. segment_schemesmuestra 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_usdse niega a iniciar una ejecución que no puede costear, yai_budget.pricesfija las tarifas por modelo en la configuración.ai_supportregistrafinal_annotationypre_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_sortfunciona sin ratón, y los movimientos se anuncian a los lectores de pantalla.resizable,max_heightymin_heightfuncionan en todos los tipos de visualización.
Correcciones que afectan a los resultados
/admin/api/agreementnunca 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.
pip install --upgrade potato-annotationAcuerdo 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
NaNsin 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_annotationpara nubes PCD, PLY, LAS, KITTI.biny.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_annotationcoloca 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_evaluationmuestra 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_evalyregion_captionpuntú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
dialoguerepresenta la estructura de respuestas a partir delreply_tode cada turno.potato convokitimporta cualquier corpus de ConvoKit y--format convokitexporta de vuelta, sin depender deconvokit. - 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.cssempezaba con un@importde 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_dynamicsescribe un archivo de resumen adjunto, y--format keystrokesescribe 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,
json3ysrv1/srv2/srv3de 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.srten disco en lugar de incrustar la transcripción. Las rutas se resuelven bajotask_dircon 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-runinforma de lo que ha detectado antes de escribir nada, y--emit-configimprime una configuración acorde.- Un solo vocabulario de formatos en cuatro esquemas.
speech_transcript,voice_interactionytiered_annotationaceptan ahora todo lo que acepta la visualizaciónaudio_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.
qda_mode:
enabled: true # codebook + memos + cases + search
codebook_invivo_key: i # mint a code from a text selection
search:
enabled: true
annotator_claim: trueMá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.
triage:
enabled: true
signal_field: quality_score
invert_signal: true
assignment_strategy: priorityMá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: highlightpasa a serspan, con una migración incluida. Actualiza las configuraciones antiguas renombrando el tipo; las configuracionesspanexistentes 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) yquotation_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_clique 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:
python -m potato.trace_converter \
--input traces.json \
--input-format react \
--output data/traces.jsonlEl archivo convertido es entonces un archivo de datos corriente, que se muestra con uno de los tipos de visualización de agentes:
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.
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).
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.
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.
export_annotation_format:
- parquetMá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
| Funcionalidad | v2.2 | v2.3 |
|---|---|---|
| Anotación agéntica | No disponible | 12 conversores, 3 visualizaciones, 9 esquemas |
| Modo solo | No disponible | Flujo humano-LLM guiado por una máquina de estados de fases |
| Escalado mejor-peor | No disponible | BWS con 3 métodos de puntuación |
| Autenticación | Solo nombre de usuario | + Google OAuth, GitHub OAuth, OIDC |
| Exportación a Parquet | No disponible | Parquet de 3 archivos con 6 opciones de compresión |
| Proyectos de demostración | Más de 125 | Más de 140 (15 nuevos) |
| Seguridad | Básica | CSRF, 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.
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: trueMá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.
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 3Resaltado 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.
ai_support:
option_highlighting:
enabled: true
top_k: 3
dim_opacity: 0.4Má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.
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100Má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.
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.
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.
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.
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.
task_layout: layouts/custom_task_layout.htmlSe 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.
ai_support:
features:
rationales:
enabled: trueMá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
| Funcionalidad | v2.0 | v2.1 |
|---|---|---|
| Visualización de instancias | Mediante apaños en la anotación | Bloque instance_display dedicado |
| Destinos de segmentos | Un solo campo de texto | Varios campos con target_field |
| Vinculación de segmentos | No disponible | Tipo span_link completo |
| IA visual | No disponible | YOLO, Ollama Vision, OpenAI Vision, Anthropic Vision |
| Personalización del diseño | Generación automática básica | Generación automática + plantillas personalizadas |
| Capacidades de IA | 3 (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)
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
hints:
enabled: true
label_suggestions:
enabled: trueMá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
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark each speaker turn in the audio"
mode: label
labels:
- Speaker A
- Speaker BMá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
active_learning:
enabled: true
schema_names:
- sentiment
min_instances_for_training: 30
update_frequency: 50
classifier:
type: LogisticRegressionMá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
phases:
training:
enabled: true
data_file: "data/training.json"
passing_criteria:
min_correct: 8
total_questions: 10Má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
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.
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.
{
"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:
- Consentimiento - Recogida del consentimiento informado
- Preestudio - Datos demográficos y cribado
- Instrucciones - Directrices de la tarea
- Entrenamiento - Preguntas de práctica
- Anotación - Tarea principal
- Posestudio - Encuestas de opinión
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):
data_files:
- data.json
id_key: id
text_key: text
output_file: annotations.jsonv2 (nuevo):
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:
task_dir: "."Si la configuración está en un subdirectorio, indica el directorio del proyecto al que pertenece:
task_dir: "my_project/"Comparación rápida
| Funcionalidad | v1 | v2.0 | v2.1 | v2.2 | v2.3 |
|---|---|---|---|---|---|
| Soporte de IA/LLM | No | Sí | Sí + IA visual + justificaciones | + Resaltado de opciones | + Modo solo |
| Anotación agéntica | No | No | No | No | 12 conversores, 3 visualizaciones |
| Escalado mejor-peor | No | No | No | No | Sí (3 métodos de puntuación) |
| Anotación de audio | Básica | Forma de onda completa | Forma de onda completa | Forma de onda completa | Forma de onda completa |
| Aprendizaje activo | No | Sí | Sí | Sí + ordenación por diversidad | + Integración con el modo solo |
| Visualización de instancias | No | No | Sí | Sí | Sí |
| Vinculación de segmentos | No | No | Sí | Sí | Sí |
| Anotación de eventos | No | No | No | Sí | Sí |
| Vinculación de entidades | No | No | No | Sí | Sí |
| Pares/triaje/correferencia/árboles | No | No | No | Sí | Sí |
| Personalización del diseño | No | Generación automática | Automática + plantillas personalizadas | Automática + plantillas personalizadas | Automática + plantillas personalizadas |
| Fase de entrenamiento | No | Sí | Sí | Sí | Sí |
| Panel de administración | Básico | Mejorado | Mejorado | Mejorado + MACE | + Pestaña BWS, modo solo |
| Backend de base de datos | Solo archivos | Archivos + MySQL | Archivos + MySQL | Archivos + MySQL | Archivos + MySQL |
| CLI de exportación | No | No | No | Sí (COCO, YOLO, CoNLL, etc.) | + Parquet |
| Autenticación | Nombre de usuario | Nombre de usuario | Nombre de usuario | Nombre de usuario | + Google/GitHub OAuth, OIDC |
| Instrumentos de encuesta | No | No | No | 55 cuestionarios validados | 55 cuestionarios validados |
| Fuentes de datos remotas | No | No | No | S3, GDrive, HuggingFace, etc. | S3, GDrive, HuggingFace, etc. |
Guía de migración
Actualizar la configuración (de v1 a v2)
-
Configuración de los datos
yaml# Old id_key: id text_key: text # New item_properties: id_key: id text_key: text -
Configuración de la salida
yaml# Old output_file: annotations.json # New output_annotation_dir: "output/" export_annotation_format: "jsonl" -
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
# v2 command
python -m potato start config.yaml -p 8000
# Or shorthand
potato start config.yamlPrimeros pasos
¿Quieres probar Potato? Empieza con la guía de inicio rápido o explora funcionalidades concretas:
Funcionalidades de v2.3:
- Anotación agéntica - Evalúa agentes de IA con conversores de trazas y visualizaciones por paso
- Modo solo - Etiquetado colaborativo entre una persona y un LLM
- Escalado mejor-peor - Anotación comparativa con puntuación
- SSO y OAuth - Autenticación con Google, GitHub y OIDC
- Exportación a Parquet - Exportación de datos en columnas
Funcionalidades de v2.2:
- Anotación de eventos - Estructuras de eventos n-arias
- Vinculación de entidades - Vinculación con bases de conocimiento
- Triaje - Filtrado rápido de datos
- Cadenas de correferencia - Correferencia de entidades
- Árboles de conversación - Anotación jerárquica de diálogos
- MACE - Estimación de la competencia de los anotadores
- Resaltado de opciones - Orientación sobre las opciones asistida por IA
- Ordenación por diversidad - Ordenación de ítems basada en embeddings
- Formatos de exportación - CLI de exportación con 6 formatos
- Fuentes de datos remotas - Carga de datos desde la nube
- Instrumentos de encuesta - 55 cuestionarios validados
Funcionalidades de v2.1:
- Visualización de instancias - Visualización de contenido multimodal
- Soporte de IA visual - IA para la anotación de imágenes y vídeo
- Vinculación de segmentos - Anotación de relaciones entre entidades
Funcionalidades principales:
- Soporte de IA - Asistencia inteligente a la anotación
- Aprendizaje activo - Priorización inteligente de instancias
- Anotación de audio - Anotación sobre forma de onda
- Fase de entrenamiento - Cualificación de anotadores
- Panel de administración - Supervisión y gestión