Skip to content
此页面尚未提供您所选语言的版本,当前显示英文版本。

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.