Exibição de Instâncias
Configure o bloco instance_display para controlar como texto, imagens, áudio e vídeo aparecem ao lado dos controles de anotação na sua tarefa do Potato.
Novo na v2.1.0
A exibição de instâncias separa qual conteúdo mostrar aos anotadores de quais anotações coletar. Isso permite exibir qualquer combinação de tipos de conteúdo (imagens, vídeos, áudio, texto) ao lado de qualquer esquema de anotação (botões de rádio, caixas de seleção, spans etc.).
Por Que Usar a Exibição de Instâncias?
Anteriormente, se você quisesse mostrar uma imagem com botões de rádio para classificação, precisava adicionar um esquema image_annotation com min_annotations: 0 apenas para exibir a imagem. Isso era confuso e semanticamente incorreto.
Com instance_display, você configura explicitamente qual conteúdo exibir:
# OLD (deprecated workaround)
annotation_schemes:
- annotation_type: image_annotation
name: image_display
min_annotations: 0 # Just to show the image
tools: [bbox]
labels: [unused]
- annotation_type: radio
name: category
labels: [A, B, C]
# NEW (recommended)
instance_display:
fields:
- key: image_url
type: image
annotation_schemes:
- annotation_type: radio
name: category
labels: [A, B, C]Configuração Básica
Adicione uma seção instance_display à sua configuração YAML:
instance_display:
fields:
- key: "image_url" # Field name in your data JSON
type: "image" # Content type
label: "Image to classify" # Optional header
display_options:
max_width: 600
zoomable: true
layout:
direction: "vertical" # vertical or horizontal
gap: "20px"Tipos de Exibição Suportados
| Tipo | Descrição | Alvo de Span |
|---|---|---|
text | Conteúdo de texto simples | Sim |
html | Conteúdo HTML sanitizado | Não |
image | Exibição de imagem com zoom | Não |
video | Reprodutor de vídeo | Não |
audio | Reprodutor de áudio | Não |
dialogue | Turnos de conversa | Sim |
pairwise | Comparação lado a lado | Não |
code | Código-fonte com destaque de sintaxe | Sim |
spreadsheet | Dados tabulares (Excel/CSV) | Sim (linha/célula) |
document | Documentos ricos (Word, Markdown, HTML) | Sim |
pdf | Documentos PDF com controles de página | Sim |
Opções de Tipo de Exibição
Exibição de Texto
- key: "text"
type: "text"
label: "Document"
display_options:
collapsible: false # Make content collapsible
max_height: 400 # Max height in pixels before scrolling
preserve_whitespace: true # Preserve line breaks and spacingExibição de Imagem
- key: "image_url"
type: "image"
label: "Image"
display_options:
max_width: 800 # Max width (number or CSS string)
max_height: 600 # Max height
zoomable: true # Enable zoom controls
alt_text: "Description" # Alt text for accessibility
object_fit: "contain" # CSS object-fit propertyExibição de Vídeo
- key: "video_url"
type: "video"
label: "Video"
display_options:
max_width: 800
max_height: 450
controls: true # Show video controls
autoplay: false # Auto-play on load
loop: false # Loop playback
muted: false # Start mutedExibição de Áudio
- key: "audio_url"
type: "audio"
label: "Audio"
display_options:
controls: true # Show audio controls
autoplay: false
loop: false
show_waveform: false # Show waveform visualizationExibição de Diálogo
- key: "conversation"
type: "dialogue"
label: "Conversation"
display_options:
alternating_shading: true # Alternate background colors
speaker_extraction: true # Extract "Speaker:" from text
show_turn_numbers: false # Show turn numbersFormato de dados para diálogo (cada linha no arquivo JSONL):
{"id": "conv_001", "conversation": ["Speaker A: Hello there!", "Speaker B: Hi, how are you?"]}Ou com dados estruturados:
{"id": "conv_001", "conversation": [{"speaker": "Alice", "text": "Hello there!"}, {"speaker": "Bob", "text": "Hi, how are you?"}]}Exibição Pareada
- key: "comparison"
type: "pairwise"
label: "Compare Options"
display_options:
cell_width: "50%" # Width of each cell
show_labels: true # Show A/B labels
labels: ["Option A", "Option B"]
vertical_on_mobile: true # Stack vertically on mobileOpções de Layout
Controle como vários campos são organizados:
instance_display:
layout:
direction: horizontal # horizontal or vertical
gap: 24px # Space between fieldsSuporte à Anotação de Span
Os tipos de exibição baseados em texto (text, dialogue) podem ser alvos de anotação de span:
instance_display:
fields:
- key: "document"
type: "text"
span_target: true # Enable span annotation on this field
annotation_schemes:
- annotation_type: span
name: entities
labels: [PERSON, LOCATION, ORG]Vários Alvos de Span
Você pode ter vários campos de texto que oferecem suporte à anotação de span:
instance_display:
fields:
- key: "source_text"
type: "text"
label: "Source Document"
span_target: true
- key: "summary"
type: "text"
label: "Summary"
span_target: true
annotation_schemes:
- annotation_type: span
name: factual_errors
labels: [contradiction, unsupported, fabrication]Quando vários alvos de span são usados, as anotações são armazenadas com associação de campo:
{
"factual_errors": {
"source_text": [],
"summary": [
{"start": 45, "end": 67, "label": "unsupported"}
]
}
}Vinculando Esquemas de Anotação a Campos de Exibição
Para esquemas de anotação de mídia (image_annotation, video_annotation, audio_annotation), vincule-os a campos de exibição usando source_field:
instance_display:
fields:
- key: "image_url"
type: "image"
annotation_schemes:
- annotation_type: image_annotation
source_field: "image_url" # Links to display field
tools: [bbox]
labels: [person, car]Avaliações de Diálogo por Turno
Adicione widgets de avaliação inline a turnos individuais do diálogo:
instance_display:
fields:
- key: conversation
type: dialogue
label: "Conversation"
display_options:
show_turn_numbers: true
per_turn_ratings:
speakers: ["Agent"] # Only show ratings for these speakers
schema_name: "turn_quality" # Name for the stored annotation data
scheme:
type: likert
size: 5
labels: ["Poor", "Excellent"]Círculos de avaliação aparecem inline abaixo do turno de cada falante correspondente. As avaliações são preenchidas até o valor selecionado, e todas as avaliações por turno são armazenadas como um único objeto JSON:
{
"turn_quality": "{\"0\": 4, \"2\": 5, \"4\": 3}"
}Exemplo: Classificação de Imagens
annotation_task_name: "Image Classification"
data_files:
- data/images.json
item_properties:
id_key: id
text_key: image_url
task_dir: .
output_annotation_dir: annotation_output
instance_display:
fields:
- key: image_url
type: image
label: "Image to Classify"
display_options:
max_width: 600
zoomable: true
- key: context
type: text
label: "Additional Context"
display_options:
collapsible: true
annotation_schemes:
- annotation_type: radio
name: category
description: "What category best describes this image?"
labels:
- nature
- urban
- people
- objects
user_config:
allow_all_users: trueArquivo de dados de amostra (data/images.json) no formato JSONL:
{"id": "img_001", "image_url": "https://example.com/image1.jpg", "context": "Taken in summer 2023"}
{"id": "img_002", "image_url": "https://example.com/image2.jpg", "context": "Winter landscape"}Exemplo: Anotação Multimodal
Vídeo ao lado de uma transcrição com anotação de span:
annotation_task_name: "Video Analysis"
instance_display:
layout:
direction: horizontal
gap: 24px
fields:
- key: video_url
type: video
label: "Video"
display_options:
max_width: "45%"
- key: transcript
type: text
label: "Transcript"
span_target: true
annotation_schemes:
- annotation_type: radio
name: sentiment
labels: [positive, neutral, negative]
- annotation_type: span
name: highlights
labels:
- key_point
- question
- supporting_evidenceCompatibilidade com Versões Anteriores
- Configurações existentes sem
instance_displaycontinuam funcionando sem alterações - O
text_keydeitem_propertiesainda é usado como fallback - A detecção de mídia legada via esquemas de anotação ainda funciona
- Um aviso de descontinuação aparece nos logs ao usar o antigo padrão somente de exibição
Migração de Padrões Somente de Exibição
Se você estava usando esquemas de anotação apenas para exibir conteúdo:
Antes (descontinuado):
annotation_schemes:
- annotation_type: image_annotation
name: image_display
min_annotations: 0
tools: [bbox]
labels: [unused]Depois (recomendado):
instance_display:
fields:
- key: image_url
type: imageLeitura Complementar
- Formatos de Dados - Formatos de dados de entrada suportados
- Configuração da Interface - Personalização da interface
- Personalização de Layout - Templates HTML personalizados
- Anotação de Imagem - Ferramentas de anotação de imagem
Para detalhes de implementação, consulte a documentação de origem.