Skip to content

Noções Básicas de Configuração

Aprenda o formato de configuração YAML do Potato — configurações de tarefa, caminhos de arquivos de dados, esquemas de anotação, formatos de saída e o essencial de gerenciamento de usuários.

O Potato usa arquivos de configuração YAML para definir tarefas de anotação. Este guia cobre as opções de configuração essenciais.

Estrutura do Arquivo de Configuração

Uma configuração básica do Potato tem estas seções principais:

yaml
# Task settings
annotation_task_name: "My Annotation Task"
port: 8000
 
# Data configuration
data_files:
  - data.json
 
item_properties:
  id_key: id
  text_key: text
 
# Output settings
output_annotation_dir: "annotation_output/"
export_annotation_format: "json"
 
# Annotation schemes
annotation_schemes:
  - annotation_type: radio
    name: my_annotation
    labels:
      - Label 1
      - Label 2
 
# User settings
user_config:
  allow_all_users: true

Configurações Essenciais

Configuração de Tarefa e Servidor

yaml
annotation_task_name: "My Task"  # Display name for your task
port: 8000                       # Port to run the server on

Configuração de Dados

yaml
data_files:
  - data.json           # Path to your data file(s)
  - more_data.json      # You can specify multiple files
 
item_properties:
  id_key: id            # Field containing unique ID
  text_key: text        # Field containing text to annotate

Formatos de dados suportados:

  • JSON (.json)
  • JSON Lines (.jsonl)
  • CSV (.csv)
  • TSV (.tsv)

Configuração de Saída

yaml
output_annotation_dir: "annotation_output/"   # Directory for annotation files
export_annotation_format: "json"              # Format: json, jsonl, csv, tsv

Esquemas de Anotação

Defina um ou mais esquemas de anotação:

yaml
annotation_schemes:
  - annotation_type: radio      # Type of annotation
    name: sentiment             # Internal name
    description: "Select the sentiment"  # Instructions
    labels:                     # Options for annotators
      - Positive
      - Negative
      - Neutral

Tipos de Anotação Disponíveis

TipoDescrição
radioSeleção de escolha única
multiselectSeleção de múltipla escolha
likertAvaliação em uma escala
textEntrada de texto livre
numberEntrada numérica
spanDestaque de trecho de texto
sliderSeleção de intervalo contínuo
multirateAvaliar múltiplos itens
selectSeleção única em menu suspenso
pairwiseComparação par a par
best_worstEscala best-worst
soft_labelDistribuição de rótulos suaves
confidence_annotationAnotação com confiança
constant_sumAlocação de soma constante
range_sliderSeleção com controle deslizante de intervalo
semantic_differentialEscala de diferencial semântico
hierarchical_multiselectSeleção hierárquica de múltiplos níveis
card_sortOrdenação de cartões
rubric_evalAvaliação baseada em rubrica
extractive_qaResposta a perguntas extrativa
error_spanDestaque de trecho de erro
triageClassificação por triagem
coreferenceAnotação de correferência
span_linkVinculação de trechos
entity_linkingVinculação de entidades

Configuração de Usuários

Permitir todos os usuários

yaml
user_config:
  allow_all_users: true

Restringir a usuários específicos

yaml
user_config:
  allow_all_users: false
  authorized_users:
    - user1@example.com
    - user2@example.com

Diretório da Tarefa

A configuração task_dir define o diretório raiz para caminhos relativos:

yaml
task_dir: ./my-task/
data_files:
  - data/input.json    # Resolves to ./my-task/data/input.json

Exemplo Completo

Aqui está uma configuração completa para uma tarefa de análise de sentimento:

yaml
# config.yaml
annotation_task_name: "Sentiment Analysis"
port: 8000
task_dir: ./
 
# Data
data_files:
  - data/tweets.json
 
item_properties:
  id_key: id
  text_key: text
  context_key: metadata
 
# Output
output_annotation_dir: "annotation_output/"
export_annotation_format: "json"
 
# Annotation
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    description: "What is the sentiment expressed in this tweet?"
    labels:
      - name: Positive
        key_value: "1"
      - name: Negative
        key_value: "2"
      - name: Neutral
        key_value: "3"
    sequential_key_binding: true
 
# Users
user_config:
  allow_all_users: true
 
# Assignment
instances_per_annotator: 100
annotation_per_instance: 2

Próximos Passos