Skip to content
Announcements7 min read

Potato 2.1: visualizzazione delle istanze, AI visiva e collegamento tra span

Potato 2.1.0 porta il sistema di visualizzazione delle istanze, il supporto dell'AI visiva per l'annotazione di immagini e video, il collegamento tra span, gli span su più campi e la personalizzazione del layout.

Potato Team

Nota: questo post descrive Potato 2.1 com'era al momento del rilascio. Alcune chiavi di configurazione e alcune funzionalità sono cambiate nelle versioni successive. Per la sintassi aggiornata vedi la documentazione attuale.

Potato 2.1.0 è disponibile. Aggiunge cinque cose: un vero sistema di visualizzazione delle istanze, l'assistenza dell'AI per l'annotazione di immagini e video, il collegamento tra span, gli span su più campi e i layout personalizzati.

Sistema di visualizzazione delle istanze

L'aggiunta più grossa della 2.1 è il blocco di configurazione instance_display. Prima, per mostrare un'immagine accanto a un gruppo di radio button servivano soluzioni di ripiego, tipo creare uno schema image_annotation con min_annotations: 0. Ora puoi dire separatamente cosa mostrare e cosa raccogliere.

yaml
instance_display:
  layout:
    direction: horizontal
    gap: 24px
  fields:
    - key: image_url
      type: image
      label: "Image to Classify"
      display_options:
        max_width: 600
        zoomable: true
    - key: description
      type: text
      label: "Context"
 
annotation_schemes:
  - annotation_type: radio
    name: category
    labels: [nature, urban, people, objects]

Supporta 11 tipi di contenuto: text, html, image, video, audio, dialogue, pairwise, code, spreadsheet, document e pdf. Puoi mettere insieme più campi di visualizzazione con qualsiasi schema di annotazione, disporli in orizzontale o in verticale e attivare l'annotazione di span sui campi di testo con span_target: true.

Una funzionalità richiesta da tempo è la valutazione dei singoli turni di dialogo. Puoi inserire un widget Likert direttamente sui turni di una conversazione, così l'annotatore valuta un parlante specifico senza uscire dalla vista della conversazione.

Leggi la documentazione completa sulla visualizzazione delle istanze →

Annotazione di span su più campi

L'annotazione di span accetta ora l'opzione target_field, che permette di annotare più di un campo di testo nella stessa istanza. Serve per task come la valutazione dei riassunti, dove si marcano le entità sia nel documento di partenza sia nel riassunto.

yaml
annotation_schemes:
  - annotation_type: span
    name: source_entities
    labels: [PERSON, ORGANIZATION, LOCATION]
 
  - annotation_type: span
    name: summary_entities
    labels: [PERSON, ORGANIZATION, LOCATION]

Nell'output le annotazioni sono indicizzate per nome del campo, quindi si vede subito da quale campo di testo viene ogni span.

Leggi la documentazione aggiornata sull'annotazione di span →

Collegamento tra span

Il nuovo tipo di annotazione span_link copre l'estrazione di relazioni: crei relazioni tipizzate tra span che hai già annotato. Rientrano qui la costruzione di knowledge graph, la risoluzione della coreferenza e l'analisi del discorso.

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    labels:
      - name: "PERSON"
        color: "#3b82f6"
      - name: "ORGANIZATION"
        color: "#22c55e"
 
  - annotation_type: span_link
    name: relations
    span_schema: entities
    link_types:
      - name: "WORKS_FOR"
        directed: true
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["ORGANIZATION"]
        color: "#dc2626"
      - name: "COLLABORATES_WITH"
        directed: false
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["PERSON"]
        color: "#06b6d4"

I collegamenti possono essere orientati o non orientati, n-ari (cioè unire più di due span), e compaiono come archi disegnati sopra il testo. I vincoli sulle etichette servono a dire quali tipi di entità possono entrare in ciascun tipo di relazione.

Leggi la documentazione completa sul collegamento tra span →

Supporto dell'AI visiva

Potato 2.1 aggiunge quattro endpoint di visione, che per la prima volta portano l'assistenza dell'AI nell'annotazione di immagini e video. Finora le funzionalità di AI valevano solo per il testo.

Quattro endpoint di visione

YOLO è quello da usare per il rilevamento di oggetti rapido e preciso con inferenza locale. Supporta le varianti YOLOv8 e YOLO-World per il rilevamento a vocabolario aperto.

yaml
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5
    iou_threshold: 0.45

Ollama Vision esegue in locale, tramite Ollama, i modelli visione-linguaggio. Supporta LLaVA, Llama 3.2 Vision, Qwen2.5-VL, BakLLaVA e Moondream.

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"
    base_url: "http://localhost:11434"

OpenAI Vision fa l'analisi visiva nel cloud con GPT-4o e livelli di dettaglio configurabili.

yaml
ai_support:
  enabled: true
  endpoint_type: "openai_vision"
  ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o"
    detail: "auto"

Anthropic Vision usa le capacità visive di Claude per la comprensione e la classificazione delle immagini.

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic_vision"
  ai_config:
    api_key: "${ANTHROPIC_API_KEY}"
    model: "claude-sonnet-4-20250514"

Funzionalità di AI per le immagini

Sui task con immagini l'AI visiva offre quattro modalità di assistenza:

  • Il rilevamento trova gli oggetti che corrispondono alle tue etichette e disegna i bounding box proposti come sovrapposizioni tratteggiate
  • La pre-annotazione (Auto) rileva tutti gli oggetti nell'immagine e crea proposte che una persona poi rivede
  • La classificazione etichetta una regione selezionata o l'intera immagine e restituisce un punteggio di confidenza
  • I suggerimenti indirizzano l'annotatore senza rivelare la posizione esatta, cosa utile in fase di training
yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: object_detection
    tools: [bbox, polygon]
    labels:
      - name: "person"
        color: "#FF6B6B"
      - name: "car"
        color: "#4ECDC4"
    ai_support:
      enabled: true
      features:
        detection: true
        pre_annotate: true
        classification: false
        hint: true

Funzionalità di AI per i video

Sui task con video l'AI visiva aggiunge il rilevamento delle scene (individua i confini tra le scene e propone segmenti temporali), il rilevamento dei fotogrammi chiave (isola i momenti significativi) e il tracciamento degli oggetti (propone dove si trova un oggetto nei vari fotogrammi).

Accettare e rifiutare

Le proposte dell'AI compaiono come sovrapposizioni tratteggiate. L'annotatore può accettarne una (doppio clic), rifiutarne una (clic destro), accettarle tutte o cancellarle tutte. La persona resta nel processo, l'AI si limita al primo passaggio noioso.

Endpoint separati per testo e immagini

Puoi far puntare i task testuali e quelli visivi a endpoint di AI diversi, così ogni tipo di contenuto usa il modello adatto:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"          # Text annotations
  visual_endpoint_type: "yolo"     # Image/video annotations
  ai_config:
    model: "llama3.2"
  visual_ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5

Leggi la documentazione completa sul supporto dell'AI visiva →

Personalizzazione del layout

Potato 2.1 permette di costruire layout visivi personalizzati. Di default genera un file layouts/task_layout.html modificabile, e al suo posto puoi mettere un tuo template HTML con layout a griglia CSS, opzioni distinte per colore e sezioni con stile proprio.

yaml
task_layout: layouts/custom_task_layout.html

In project-hub/layout-examples/ ci sono tre layout di esempio. Quello per la moderazione dei contenuti ha un banner di avviso, una griglia a due colonne e la gravità distinta per colore. Quello per il QA sui dialoghi mostra i metadati del caso, valutazioni Likert circolari e giudizi raggruppati. Quello per la revisione medica usa uno stile da referto strutturato.

I layout personalizzati vanno d'accordo con il nuovo sistema instance_display: il contenuto da visualizzare viene renderizzato sopra i tuoi moduli di annotazione.

Leggi la documentazione completa sulla personalizzazione del layout →

Altri miglioramenti

Motivazioni delle etichette

Ai suggerimenti, all'evidenziazione delle parole chiave e alle proposte di etichetta si aggiunge una quarta capacità dell'AI. Le motivazioni scrivono una spiegazione equilibrata del perché ogni etichetta potrebbe applicarsi, il che aiuta l'annotatore a vedere il ragionamento dietro una classificazione invece di andare a intuito.

yaml
ai_support:
  features:
    rationales:
      enabled: true

Correzioni di bug e test

  • Oltre 50 nuovi test per una maggiore affidabilità
  • Correzioni al design responsive nei vari tipi di annotazione
  • Un project-hub più ordinato, ora con gli esempi di layout

Passare alla v2.1

bash
pip install --upgrade potato-annotation

Le configurazioni v2.0 che hai già continuano a funzionare senza modifiche. Tutto ciò che è nuovo si attiva a richiesta, tramite blocchi di configurazione aggiuntivi come instance_display, gli schemi span_link e gli endpoint di AI visiva.

Come iniziare

Per il changelog completo e le eventuali chiavi di configurazione cambiate, vedi le note di rilascio della v2.1.0 nel repository.


Hai domande o commenti? Partecipa al nostro Discord o apri una issue su GitHub.