Skip to content

Soporte de IA

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

Soporte de IA

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-4
    api_key: ${OPENAI_API_KEY}
    temperature: 0.3
    max_tokens: 500

Configuración Específica por Proveedor

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 (Autoalojado)

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

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-4
    api_key: ${OPENAI_API_KEY}
 
  # Hints appear as tooltips or sidebars
  features:
    hints:
      enabled: true

2. Resaltado de Palabras Clave

Resalta automáticamente palabras clave relevantes en el 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. Sugerencias de Etiquetas

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

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. 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: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    rationales:
      enabled: 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: 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

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: 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

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: 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

Ejemplo Completo

Configuración completa para análisis de sentimiento asistido 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/"
output_annotation_format: "json"
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.