Skip to content
Release6 min read

Potato 2.4.0 : annotation d'agent web, évaluation en direct et intégration HuggingFace

Potato 2.4.0 apporte la revue de traces d'agents web, l'évaluation d'agents en direct, une barre latérale de chat LLM, l'export vers HuggingFace Hub, les webhooks, le SSO/OAuth et cinq stratégies d'apprentissage actif.

Potato Team

Note : les décomptes de fonctionnalités de cet article reflètent l'état du projet à la sortie de la v2.4.0. Potato prend aujourd'hui en charge plus de 50 types d'annotation. Voir la documentation des types d'annotation pour la liste complète.

Potato 2.4.0 est disponible. C'est notre plus grosse mise à jour depuis l'arrivée de l'annotation agentique en 2.3 : elle ajoute les fonctionnalités d'évaluation d'agents qu'on nous réclamait, plus un lot de travaux sur les intégrations et les usages en entreprise.

Annotation d'agent web

Évaluer un agent de navigation web est difficile. Il faut voir ce que l'agent a vu, où il a cliqué, comment il a fait défiler la page, et si chaque étape avait un sens. Potato 2.4 ajoute pour cela un visualiseur de traces d'agent web.

Le mode revue donne aux annotateurs une vue pellicule des captures d'écran préenregistrées. Des superpositions SVG marquent les cibles de clic, les boîtes englobantes, les trajets de souris et les positions de défilement, si bien que l'évaluateur voit ce que l'agent a vu, avec les contrôles d'annotation en ligne.

Le mode création inverse la logique. Les annotateurs naviguent sur un site réel dans une iframe, et Potato enregistre chaque interaction sous forme de trace prête à annoter. Vous pouvez importer des traces existantes aux formats WebArena, Mind2Web et Anthropic Computer Use, ou en enregistrer de nouvelles au fil de l'eau.

yaml
display:
  type: web_agent_trace
  mode: review          # or "creation"
  show_overlays: true
  keyboard_shortcuts: true

Évaluation d'agent en direct

Il faut parfois évaluer les agents pendant qu'ils s'exécutent, et non après coup. Le nouveau système d'évaluation d'agent en direct permet aux annotateurs de regarder des agents IA exécuter des tâches en temps réel et d'annoter leur comportement en cours d'exécution.

Potato lance les agents en parallèle via l'Agent Runner Manager, capte les traces à mesure qu'elles arrivent grâce à un récepteur de webhooks, et présente aux annotateurs une interface d'évaluation en temps réel. L'accord inter-annotateurs au niveau des étapes est suivi automatiquement.

Barre latérale de chat LLM

Les décisions d'annotation difficiles gagnent à un deuxième avis. La nouvelle barre latérale de chat LLM donne aux annotateurs un panneau d'assistant IA qu'ils peuvent consulter en cours de tâche sans quitter l'interface.

La barre latérale gère les conversations à plusieurs tours et injecte automatiquement le contexte complet de la tâche. Elle fonctionne avec les points de terminaison OpenAI, Anthropic et Ollama, et journalise chaque conversation comme donnée comportementale, ce qui est pratique pour étudier la façon dont les annotateurs s'appuient sur l'assistance IA.

yaml
llm_sidebar:
  enabled: true
  provider: anthropic
  model: claude-3-5-sonnet-20241022
  system_prompt: "You are a helpful annotation assistant for this {task_name} task."
  collapsible: true

Intégration à l'écosystème HuggingFace

Potato se relie désormais à HuggingFace de plusieurs façons. Vous pouvez pousser les annotations directement vers des jeux de données du Hub avec des DatasetCards générées automatiquement, les recharger comme objets datasets.Dataset sans détour, déployer une instance Potato sur HuggingFace Spaces, et ingérer automatiquement les traces des agents LangChain via le callback LangChain.

bash
pip install potato-annotation[huggingface]
python
from potato import PotatoDataset
 
ds = PotatoDataset.from_output("annotations/")
ds.push_to_hub("my-org/my-annotation-dataset")

Système de webhooks

Potato 2.4 embarque un système de webhooks complet pour les intégrations événementielles. Cinq types d'événements, signés en HMAC-SHA256 selon la spécification Standard Webhooks :

ÉvénementDéclenché quand
annotation.createdUn annotateur valide une étiquette
item.fully_annotatedUn élément atteint le nombre de recoupements requis
task.completedTous les éléments d'une tâche sont annotés
user.phase_completedUn utilisateur termine une phase (mode Solo)
quality.attention_check_failedUn annotateur échoue à un contrôle d'attention

Les webhooks sont livrés de façon non bloquante, avec relance configurable, et se gèrent depuis l'API d'administration.

yaml
webhooks:
  - url: https://your-system.example.com/potato-events
    secret: your-signing-secret
    events: [annotation.created, item.fully_annotated]

Apprentissage actif avancé : 5 stratégies + démarrage à froid par LLM

Le système d'apprentissage actif propose désormais cinq stratégies de requête :

  1. Échantillonnage par incertitude : sélectionner les éléments sur lesquels le modèle est le moins sûr
  2. Sélection par diversité : maximiser la couverture de l'espace d'entrée
  3. BADGE : Batch Active Learning by Diverse Gradient Embeddings
  4. BALD : Bayesian Active Learning by Disagreement
  5. Ensemble hybride : combiner les stratégies pour une sélection robuste

S'y ajoute le démarrage à froid par LLM, qui choisit des éléments avant qu'aucune étiquette n'existe. Vous braquez un modèle de langage sur votre réserve de données et il en fait ressortir les éléments difficiles ou représentatifs pour amorcer l'annotation. CoverICL est nouveau lui aussi, pour choisir des exemples variés d'apprentissage en contexte.

Gestion des mots de passe et SSO/OAuth

Deux fonctionnalités d'authentification qu'on nous réclamait :

La gestion des mots de passe repose sur un hachage PBKDF2-SHA256 avec un sel par utilisateur, permet la réinitialisation depuis la CLI d'administration et l'API, et inclut un parcours de réinitialisation en libre-service par jeton, adossé à SQLite ou PostgreSQL.

Le SSO/OAuth gère l'authentification unique via Google, GitHub ou n'importe quel fournisseur OIDC générique, à travers Authlib.

bash
pip install potato-annotation[auth]

Décomptes mis à jour

Capacité2.32.4
Types d'annotation2021
Types d'affichage1517+
Points de terminaison IA711
Projets d'exemple1540+
Stratégies d'apprentissage actif15
Types d'événements webhook05
Projets d'exemple pour agents014

Installation

bash
pip install potato-annotation           # core
pip install potato-annotation[ai]       # OpenAI, Ollama
pip install potato-annotation[huggingface]  # HF Hub + Spaces
pip install potato-annotation[langchain]    # LangChain callback
pip install potato-annotation[auth]         # SSO/OAuth
pip install potato-annotation[all]          # everything

À essayer

Le plus rapide pour voir la 2.4 à l'œuvre est la démo en ligne sur HuggingFace Spaces, sans rien installer. Elle fait tourner une tâche d'évaluation de traces d'agent avec boutons radio, échelles de Likert, annotation d'empans et notes en texte libre :

Essayer la démo en ligne →

Ou lancez un exemple en local :

bash
git clone https://github.com/davidjurgens/potato.git
cd potato
pip install -e .
python potato/flask_server.py start examples/agent-traces/complex-annotation/config.yaml -p 8000

Pour le journal des modifications complet, voir les notes de version v2.4.0, et le reste de la documentation dans le dépôt GitHub.