Skip to content

Suporte de IA

Integre OpenAI, Claude, Gemini, Ollama, HuggingFace, vLLM e OpenRouter ao Potato para sugestões de rótulos, pré-anotação e destaque de palavras-chave com IA.

O Potato 2.0 inclui suporte nativo a Modelos de Linguagem de Grande Porte (LLMs) para auxiliar os anotadores com dicas inteligentes, destaque de palavras-chave e sugestões de rótulos.

Provedores compatíveis

O Potato é compatível com vários provedores de LLM:

Provedores em nuvem:

  • 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

Local/auto-hospedado:

  • Ollama (execute modelos localmente)
  • vLLM (inferência auto-hospedada de alto desempenho)

Configuração

Configuração básica

Adicione uma seção ai_support ao seu arquivo de configuração:

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

Configuração específica por provedor

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 local

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

vLLM (auto-hospedado)

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

Endpoints de IA visual

Novidade na v2.1.0

Para tarefas de anotação de imagem e vídeo, o Potato é compatível com endpoints de visão dedicados, incluindo YOLO, Ollama Vision, OpenAI Vision e Anthropic Vision. Eles permitem detecção de objetos, pré-anotação e classificação visual.

Consulte Suporte de IA Visual para todos os detalhes de configuração.

Recursos de IA

O suporte de IA do Potato oferece cinco capacidades principais:

1. Dicas inteligentes

Forneça orientação contextual aos anotadores sem revelar a resposta:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  # Hints appear as tooltips or sidebars
  features:
    hints:
      enabled: true

2. Destaque de palavras-chave

Destaque automaticamente as palavras-chave relevantes no texto:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    keyword_highlighting:
      enabled: true
      # Highlights are rendered as box overlays on the text

3. Sugestões de rótulos

Sugira rótulos para o anotador considerar (exibidos com indicadores de confiança):

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. Justificativas de rótulos

Novidade na v2.1.0

Gere explicações equilibradas sobre por que cada rótulo pode se aplicar ao texto, ajudando os anotadores a entender o raciocínio por trás das diferentes classificações:

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

As justificativas aparecem como uma dica que lista cada rótulo disponível com uma explicação de por que ele pode se aplicar. Isso é útil para treinar anotadores ou quando as decisões de anotação são difíceis.

5. Destaque de opções

Novidade na v2.2.0

Destaque assistido por IA das opções mais prováveis de estarem corretas em tarefas de anotação discretas (radio, multiselect, likert, select). O sistema analisa o conteúdo e destaca as top-k opções mais prováveis, enquanto atenua as menos prováveis, mantendo todas as opções totalmente clicáveis.

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

Consulte Destaque de Opções para todos os detalhes de configuração.

Complementar: Ordenação por diversidade

Novidade na v2.2.0

Embora não seja estritamente um recurso de IA, a Ordenação por Diversidade usa embeddings de sentence-transformer para agrupar itens e apresentá-los em uma ordem diversa, reduzindo a fadiga do anotador e melhorando a cobertura. Ela se integra ao suporte de IA buscando automaticamente as dicas de IA dos itens reordenados.

Cache e desempenho

As respostas da IA podem ser armazenadas em cache para melhorar o desempenho e reduzir os custos de 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-generate hints on startup and prefetch upcoming
    prefetch:
      warm_up_page_count: 100
      on_next: 5
      on_prev: 2

Estratégias de cache

  1. Aquecimento: Pré-gera dicas de IA para um lote inicial de instâncias quando o servidor inicia (warm_up_page_count)
  2. Pré-busca: Gera dicas para as próximas instâncias à medida que os anotadores navegam para frente (on_next) ou para trás (on_prev)
  3. Persistência em disco: Os caches são salvos em disco e persistem entre reinicializações do servidor

Prompts personalizados

O Potato inclui prompts padrão para cada tipo de anotação, armazenados em potato/ai/prompt/. Você pode personalizá-los para a sua tarefa específica:

Tipo de anotaçãoArquivo de prompt
Botões de opçãoradio_prompt.txt
Escalas Likertlikert_prompt.txt
Caixas de seleçãocheckbox_prompt.txt
Anotação de trechospan_prompt.txt
Controles deslizantesslider_prompt.txt
Listas suspensasdropdown_prompt.txt
Entrada numéricanumber_prompt.txt
Entrada de textotext_prompt.txt

Os prompts oferecem substituição de variáveis:

  • {text} - O texto do documento
  • {labels} - Rótulos disponíveis para o esquema
  • {description} - A descrição do esquema

Suporte a múltiplos esquemas

Para tarefas com vários esquemas de anotação, você pode ativar o suporte de IA seletivamente:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  # Only enable for specific schemes
  special_include:
    - page: 1
      schema: sentiment
    - page: 1
      schema: topics

Exemplo completo

Configuração completa para análise de sentimento assistida por IA:

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
      # Highlights are rendered as box overlays on the text
    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/"
export_annotation_format: "json"
user_config:
  allow_all_users: true

Variáveis de ambiente

Armazene as chaves de API com segurança usando variáveis de ambiente:

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

Referencie-as na sua configuração com a sintaxe ${VARIABLE_NAME}.

Considerações de custo

  • As chamadas de IA são feitas por instância por padrão
  • Ative o cache para reduzir chamadas de API repetidas
  • Use aquecimento e pré-busca para pré-gerar dicas
  • Considere usar modelos menores/mais baratos para tarefas simples
  • Provedores locais (Ollama, vLLM) não têm custos de API

Boas práticas

  1. Use a IA como apoio, não como substituição - Deixe os anotadores tomarem as decisões finais
  2. Ative o cache em produção - Reduz a latência e os custos
  3. Teste os prompts minuciosamente - Prompts personalizados devem ser validados
  4. Monitore os custos de API - Acompanhe o uso, especialmente com provedores em nuvem
  5. Considere provedores locais - Ollama ou vLLM para anotação de alto volume
  6. Proteja as credenciais de API - Use variáveis de ambiente, nunca faça commit de chaves

Leitura adicional

Para detalhes de implementação e modelos de prompt personalizados, consulte a documentação de origem.