Skip to content

Soporte de IA

Integra modelos de lenguaje grandes para asistencia inteligente en la anotación.

Potato 2.0 incluye soporte integrado para Modelos de Lenguaje Grandes (LLMs) que asisten a los anotadores con sugerencias inteligentes, resaltado de palabras clave y sugerencias de etiquetas.

Proveedores Compatibles

Potato soporta múltiples proveedores de LLM:

Proveedores en la Nube:

  • 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/Autoalojado:

  • Ollama (ejecutar modelos localmente)
  • vLLM (inferencia autoalojada de alto rendimiento)

Configuración

Configuración Básica

Agrega una sección ai_support a tu archivo de configuración:

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

Configuración Específica por Proveedor

OpenAI

yaml
instance_display:
  fields:
    - {key: body, type: text, label: Ticket}
    - {key: screenshot, type: image, label: Screenshot}

Anthropic Claude

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    include:
      all: false
      special_include:
        "0":
          "0": ["hint", "keyword"]
        "1":
          "1": ["hint"]
        "2":
          "0": ["hint", "keyword"]
          "1": ["hint", "keyword"]

Google Gemini

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    include:
      all: true
  cache_config:
    disk_cache:
      enabled: true
      path: "annotation_output/ai_cache.json"
    prefetch:
      warm_up_page_count: 20
      on_next: 10
      on_prev: 3

Ollama Local

yaml
# config.yaml, committed, no secrets
ai_support:
  enabled: true
  ai_config_file: ai-config.yaml
 
  ai_config:
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

vLLM (Autoalojado)

yaml
# ai-config.yaml, gitignored
endpoint_type: ollama
model: qwen3:0.6b
base_url: http://localhost:11434

Endpoints de IA Visual

Nuevo en v2.1.0

Para tareas de anotación de imágenes y video, Potato soporta endpoints de visión dedicados incluyendo YOLO, Ollama Vision, OpenAI Vision y Anthropic Vision. Estos permiten detección de objetos, pre-anotación y clasificación visual.

Consulta Soporte de IA Visual para detalles completos de configuración.

Características de IA

El soporte de IA de Potato proporciona cinco capacidades principales:

1. Sugerencias Inteligentes

Proporciona orientación contextual a los anotadores sin revelar la respuesta:

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

2. Resaltado de Palabras Clave

Resalta automáticamente palabras clave relevantes en el texto:

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic"
  ai_config:
    model: "claude-sonnet-4-20250514"
    api_key: "${ANTHROPIC_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

3. Sugerencias de Etiquetas

Sugiere etiquetas para consideración del anotador (mostradas con indicadores de confianza):

yaml
ai_support:
  enabled: true
  endpoint_type: "gemini"
  ai_config:
    model: "gemini-2.0-flash-exp"
    api_key: "${GOOGLE_API_KEY}"
    max_tokens: 800
    include:
      all: true

4. Justificaciones de Etiquetas

Nuevo en v2.1.0

Genera explicaciones equilibradas de por qué cada etiqueta podría aplicarse al texto, ayudando a los anotadores a entender el razonamiento detrás de diferentes clasificaciones:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"
  ai_config:
    model: "llama3.2"
    base_url: "http://localhost:11434"
    max_tokens: 800
    include:
      all: true

Las justificaciones aparecen como un tooltip que lista cada etiqueta disponible con una explicación de por qué podría aplicarse. Esto es útil para entrenar anotadores o cuando las decisiones de anotación son difíciles.

5. Resaltado de Opciones

Nuevo en v2.2.0

Resaltado asistido por IA de las opciones más probablemente correctas para tareas de anotación discretas (radio, multiselect, likert, select). El sistema analiza el contenido y resalta las top-k opciones más probables mientras atenúa las menos probables, manteniendo todas las opciones completamente seleccionables.

yaml
ai_support:
  enabled: true
  endpoint_type: "vllm"
  ai_config:
    model: "meta-llama/Llama-3.2-3B-Instruct"
    base_url: "http://localhost:8000"
    max_tokens: 800
    include:
      all: true

Consulta Resaltado de Opciones para detalles completos de configuración.

Complementario: Ordenamiento por Diversidad

Nuevo en v2.2.0

Aunque no es estrictamente una característica de IA, Ordenamiento por Diversidad usa embeddings de sentence-transformer para agrupar elementos y presentarlos en un orden diverso, reduciendo la fatiga del anotador y mejorando la cobertura. Se integra con el soporte de IA al pre-cargar automáticamente sugerencias de IA para los elementos reordenados.

Caché y Rendimiento

Las respuestas de IA pueden almacenarse en caché para mejorar el rendimiento y reducir costos de API:

yaml
ai_support:
  enabled: true
  endpoint_type: "open_router"
  ai_config:
    model: "openai/gpt-4o-mini"
    api_key: "${OPENROUTER_API_KEY}"
    max_tokens: 800
    include:
      all: true

Estrategias de Caché

  1. Precalentamiento: Pre-genera sugerencias de IA para un lote inicial de instancias cuando el servidor arranca (warm_up_page_count)
  2. Precarga: Genera sugerencias para las próximas instancias mientras los anotadores navegan hacia adelante (on_next) o hacia atrás (on_prev)
  3. Persistencia en Disco: Los cachés se guardan en disco y persisten entre reinicios del servidor

Prompts Personalizados

Potato incluye prompts predeterminados para cada tipo de anotación, almacenados en potato/ai/prompt/. Puedes personalizarlos para tu tarea específica:

Tipo de AnotaciónArchivo de Prompt
Botones de radioradio_prompt.txt
Escalas Likertlikert_prompt.txt
Casillas de verificacióncheckbox_prompt.txt
Anotación de spansspan_prompt.txt
Deslizadoresslider_prompt.txt
Menús desplegablesdropdown_prompt.txt
Entrada numéricanumber_prompt.txt
Entrada de textotext_prompt.txt

Los prompts soportan sustitución de variables:

  • {text} - El texto del documento
  • {labels} - Las etiquetas disponibles para el esquema
  • {description} - La descripción del esquema

Soporte Multi-Esquema

Para tareas con múltiples esquemas de anotación, puedes habilitar el soporte de IA selectivamente:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"
  visual_endpoint_type: "ollama_vision"
  ai_config:
    model: "llama3.2"
    include:
      all: true
  visual_ai_config:
    model: "qwen2.5-vl:7b"

Ejemplo Completo

Configuración completa para análisis de sentimiento asistido por IA:

yaml
annotation_task_name: "Sentiment Analysis with AI Support"
task_dir: "."
 
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 text?"
    labels: ["positive", "negative", "neutral"]
 
  - annotation_type: multiselect
    name: topics
    description: "What topics are discussed?"
    labels: ["product", "service", "price", "quality"]
 
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true
  cache_config:
    disk_cache:
      enabled: true
      path: "annotation_output/ai_cache.json"
    prefetch:
      warm_up_page_count: 20
      on_next: 10
      on_prev: 3
 
output_annotation_dir: "output/"
export_annotation_format: jsonl
 
user_config:
  allow_all_users: true

Variables de Entorno

Almacena las claves API de forma segura usando variables de entorno:

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

Referéncialas en tu configuración con la sintaxis ${VARIABLE_NAME}.

Consideraciones de Costos

  • Las llamadas de IA se realizan por instancia de forma predeterminada
  • Habilita el caché para reducir llamadas repetidas a la API
  • Usa precalentamiento y precarga para pre-generar sugerencias
  • Considera usar modelos más pequeños/económicos para tareas simples
  • Los proveedores locales (Ollama, vLLM) no tienen costos de API

Mejores Prácticas

  1. Usa la IA como asistencia, no como reemplazo - Deja que los anotadores tomen las decisiones finales
  2. Habilita el caché para producción - Reduce latencia y costos
  3. Prueba los prompts exhaustivamente - Los prompts personalizados deben ser validados
  4. Monitorea los costos de API - Rastrea el uso especialmente con proveedores en la nube
  5. Considera proveedores locales - Ollama o vLLM para anotación de alto volumen
  6. Protege las credenciales de API - Usa variables de entorno, nunca guardes claves en el código

Lectura Adicional

Para detalles de implementación y plantillas de prompts personalizados, consulta la documentación fuente.