Skip to content
Diese Seite ist in Ihrer Sprache noch nicht verfügbar. Englische Version wird angezeigt.

Supporto AI

Integra LLM per un'assistenza intelligente all'annotazione.

Supporto AI

Potato 2.0 include il supporto integrato per i Large Language Model (LLM) per assistere gli annotatori con suggerimenti intelligenti, evidenziazione di parole chiave e proposte di etichette.

Provider Supportati

Potato supporta più provider LLM:

Provider Cloud:

  • OpenAI (GPT-4, GPT-4 Turbo, GPT-3.5)
  • Anthropic (Claude 3, Claude 3.5)
  • Google (Gemini 1.5 Pro, Gemini 2.0 Flash)
  • Hugging Face
  • OpenRouter

Locale/Self-Hosted:

  • Ollama (esegui modelli localmente)
  • vLLM (inferenza self-hosted ad alte prestazioni)

Configurazione

Impostazione di Base

Aggiungi una sezione ai_support al tuo file di configurazione:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
    temperature: 0.3
    max_tokens: 500

Configurazione Specifica per Provider

OpenAI

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4o
    api_key: ${OPENAI_API_KEY}
    temperature: 0.3
    max_tokens: 500

Anthropic Claude

yaml
ai_support:
  enabled: true
  endpoint_type: anthropic
 
  ai_config:
    model: claude-3-sonnet-20240229
    api_key: ${ANTHROPIC_API_KEY}
    temperature: 0.3
    max_tokens: 500

Google Gemini

yaml
ai_support:
  enabled: true
  endpoint_type: google
 
  ai_config:
    model: gemini-1.5-pro
    api_key: ${GOOGLE_API_KEY}

Ollama Locale

yaml
ai_support:
  enabled: true
  endpoint_type: ollama
 
  ai_config:
    model: llama2
    base_url: http://localhost:11434

vLLM (Self-Hosted)

yaml
ai_support:
  enabled: true
  endpoint_type: vllm
 
  ai_config:
    model: meta-llama/Llama-2-7b-chat-hf
    base_url: http://localhost:8000/v1

Endpoint AI Visivi

Novità della v2.1.0

Per i compiti di annotazione di immagini e video, Potato supporta endpoint di visione dedicati tra cui YOLO, Ollama Vision, OpenAI Vision e Anthropic Vision. Questi abilitano il rilevamento di oggetti, la pre-annotazione e la classificazione visiva.

Vedi Supporto AI Visivo per i dettagli completi della configurazione.

Funzionalità AI

Il supporto AI di Potato offre cinque capacità principali:

1. Suggerimenti Intelligenti

Fornisce indicazioni contestuali agli annotatori senza rivelare la risposta:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  # I suggerimenti appaiono come tooltip o barre laterali
  features:
    hints:
      enabled: true

2. Evidenziazione di Parole Chiave

Evidenzia automaticamente le parole chiave rilevanti nel testo:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    keyword_highlighting:
      enabled: true
      # Le evidenziazioni sono rese come overlay su riquadro sul testo

3. Suggerimenti di Etichette

Suggerisce etichette per la considerazione dell'annotatore (mostrate con indicatori di confidenza):

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    label_suggestions:
      enabled: true
      show_confidence: true

4. Motivazioni delle Etichette

Novità della v2.1.0

Genera spiegazioni bilanciate sul perché ogni etichetta potrebbe applicarsi al testo, aiutando gli annotatori a comprendere il ragionamento alla base delle diverse classificazioni:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    rationales:
      enabled: true

Le motivazioni appaiono come un tooltip che elenca ogni etichetta disponibile con una spiegazione del perché potrebbe applicarsi. Questo è utile per addestrare gli annotatori o quando le decisioni di annotazione sono difficili.

5. Evidenziazione delle Opzioni

Novità della v2.2.0

Evidenziazione assistita da AI delle opzioni più probabilmente corrette per i compiti di annotazione discreta (radio, multiselect, likert, select). Il sistema analizza il contenuto ed evidenzia le opzioni top-k più probabili attenuando quelle meno probabili, mantenendo tutte le opzioni completamente cliccabili.

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4o-mini
    api_key: ${OPENAI_API_KEY}
 
  option_highlighting:
    enabled: true
    top_k: 3
    dim_opacity: 0.4
    auto_apply: true

Vedi Evidenziazione delle Opzioni per i dettagli completi della configurazione.

Complementare: Ordinamento per Diversità

Novità della v2.2.0

Sebbene non sia strettamente una funzionalità AI, l'Ordinamento per Diversità usa embedding sentence-transformer per raggruppare gli elementi e presentarli in un ordine diversificato, riducendo l'affaticamento degli annotatori e migliorando la copertura. Si integra con il supporto AI precaricando automaticamente i suggerimenti AI per gli elementi riordinati.

Caching e Prestazioni

Le risposte AI possono essere memorizzate nella cache per migliorare le prestazioni e ridurre i costi API:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  cache_config:
    disk_cache:
      enabled: true
      path: "ai_cache/cache.json"
 
    # Pre-genera suggerimenti all'avvio e precarica i successivi
    prefetch:
      warm_up_page_count: 100
      on_next: 5
      on_prev: 2

Strategie di Caching

  1. Riscaldamento: Pre-genera i suggerimenti AI per un batch iniziale di istanze quando il server si avvia (warm_up_page_count)
  2. Precaricamento: Genera suggerimenti per le istanze successive mentre gli annotatori navigano avanti (on_next) o indietro (on_prev)
  3. Persistenza su Disco: Le cache vengono salvate su disco e persistono tra i riavvii del server

Prompt Personalizzati

Potato include prompt predefiniti per ogni tipo di annotazione, memorizzati in potato/ai/prompt/. Puoi personalizzarli per il tuo compito specifico:

Tipo di AnnotazioneFile Prompt
Pulsanti radioradio_prompt.txt
Scale Likertlikert_prompt.txt
Caselle di controllocheckbox_prompt.txt
Annotazione spanspan_prompt.txt
Cursorislider_prompt.txt
Elenchi a discesadropdown_prompt.txt
Input numericonumber_prompt.txt
Input testotext_prompt.txt

I prompt supportano la sostituzione di variabili:

  • {text} - Il testo del documento
  • {labels} - Le etichette disponibili per lo schema
  • {description} - La descrizione dello schema

Supporto Multi-Schema

Per i compiti con più schemi di annotazione, puoi abilitare il supporto AI in modo selettivo:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  # Abilita solo per schemi specifici
  special_include:
    - page: 1
      schema: sentiment
    - page: 1
      schema: topics

Esempio Completo

Configurazione completa per l'analisi del sentiment assistita da AI:

yaml
annotation_task_name: "AI-Assisted Sentiment Analysis"
task_dir: "."
port: 8000
 
data_files:
  - "data/reviews.json"
 
item_properties:
  id_key: id
  text_key: text
 
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    description: "What is the sentiment of this review?"
    labels:
      - Positive
      - Negative
      - Neutral
 
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
    temperature: 0.3
    max_tokens: 500
 
  features:
    hints:
      enabled: true
    keyword_highlighting:
      enabled: true
      # Le evidenziazioni sono rese come overlay su riquadro sul testo
    label_suggestions:
      enabled: true
      show_confidence: true
 
  cache_config:
    disk_cache:
      enabled: true
      path: "ai_cache/cache.json"
    prefetch:
      warm_up_page_count: 50
      on_next: 3
      on_prev: 2
 
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: true

Variabili d'Ambiente

Memorizza le chiavi API in modo sicuro usando le variabili d'ambiente:

bash
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."

Fai riferimento a queste nella configurazione con la sintassi ${VARIABLE_NAME}.

Considerazioni sui Costi

  • Le chiamate AI vengono effettuate per istanza per impostazione predefinita
  • Abilita il caching per ridurre le chiamate API ripetute
  • Usa il riscaldamento e il precaricamento per pre-generare i suggerimenti
  • Considera l'uso di modelli più piccoli/economici per i compiti semplici
  • I provider locali (Ollama, vLLM) non hanno costi API

Best Practice

  1. Usa l'AI come assistente, non come sostituto - Lascia agli annotatori le decisioni finali
  2. Abilita il caching per la produzione - Riduce la latenza e i costi
  3. Testa i prompt accuratamente - I prompt personalizzati devono essere validati
  4. Monitora i costi API - Tieni traccia dell'utilizzo specialmente con i provider cloud
  5. Considera i provider locali - Ollama o vLLM per l'annotazione ad alto volume
  6. Proteggi le credenziali API - Usa le variabili d'ambiente, non committare mai le chiavi

Ulteriori Letture

Per i dettagli di implementazione e i template di prompt personalizzati, consulta la documentazione sorgente.