Skip to content
Announcements6 min read

Potato 2.1: Instanzanzeige, visuelle KI und Span-Verknüpfung

Potato 2.1.0 bringt das System zur Instanzanzeige, KI-Unterstützung für Bild- und Videoannotation, Span-Verknüpfung, feldübergreifende Spans und anpassbare Layouts.

Potato Team

Hinweis: Dieser Beitrag beschreibt Potato 2.1 im Zustand zum Release. Einige Konfigurationsschlüssel und Funktionen haben sich in späteren Versionen geändert. Die aktuelle Konfigurationssyntax steht in der aktuellen Dokumentation.

Potato 2.1.0 ist da. Dazugekommen sind fünf Dinge: ein richtiges System zur Instanzanzeige, KI-Unterstützung für Bild- und Videoannotation, Span-Verknüpfung, feldübergreifende Spans und eigene Layouts.

System zur Instanzanzeige

Der größte Zugang in 2.1 ist der Konfigurationsblock instance_display. Bisher war ein Bild neben einer Reihe Radio-Buttons nur über einen Umweg zu bekommen, etwa über ein image_annotation-Schema mit min_annotations: 0. Jetzt legst du getrennt fest, was angezeigt und was erhoben wird.

yaml
instance_display:
  layout:
    direction: horizontal
    gap: 24px
  fields:
    - key: image_url
      type: image
      label: "Image to Classify"
      display_options:
        max_width: 600
        zoomable: true
    - key: description
      type: text
      label: "Context"
 
annotation_schemes:
  - annotation_type: radio
    name: category
    labels: [nature, urban, people, objects]

Unterstützt werden 11 Inhaltstypen: text, html, image, video, audio, dialogue, pairwise, code, spreadsheet, document und pdf. Du kannst mehrere Anzeigefelder mit jedem beliebigen Annotationsschema kombinieren, sie waagerecht oder senkrecht anordnen und für Textfelder per span_target: true die Span-Annotation einschalten.

Eine oft gewünschte Funktion sind Bewertungen einzelner Gesprächsbeiträge. Du kannst ein Likert-Widget direkt an einzelnen Turns einer Unterhaltung einblenden, sodass Annotierende eine bestimmte sprechende Person bewerten, ohne die Gesprächsansicht zu verlassen.

Zur vollständigen Dokumentation der Instanzanzeige →

Feldübergreifende Span-Annotation

Die Span-Annotation kennt jetzt die Option target_field, mit der du innerhalb einer Instanz mehr als ein Textfeld annotieren kannst. Nötig ist das etwa bei der Bewertung von Zusammenfassungen, wo du Entitäten sowohl im Ausgangsdokument als auch in der Zusammenfassung markierst.

yaml
annotation_schemes:
  - annotation_type: span
    name: source_entities
    labels: [PERSON, ORGANIZATION, LOCATION]
 
  - annotation_type: span
    name: summary_entities
    labels: [PERSON, ORGANIZATION, LOCATION]

In der Ausgabe sind die Annotationen nach Feldnamen geschlüsselt, sodass klar bleibt, aus welchem Textfeld ein Span stammt.

Zur überarbeiteten Dokumentation der Span-Annotation →

Span-Verknüpfung

Der neue Annotationstyp span_link deckt die Relationsextraktion ab: Du legst typisierte Beziehungen zwischen bereits annotierten Spans an. Damit lassen sich Aufgaben wie der Aufbau von Wissensgraphen, Koreferenzauflösung und Diskursanalyse bearbeiten.

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    labels:
      - name: "PERSON"
        color: "#3b82f6"
      - name: "ORGANIZATION"
        color: "#22c55e"
 
  - annotation_type: span_link
    name: relations
    span_schema: entities
    link_types:
      - name: "WORKS_FOR"
        directed: true
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["ORGANIZATION"]
        color: "#dc2626"
      - name: "COLLABORATES_WITH"
        directed: false
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["PERSON"]
        color: "#06b6d4"

Verknüpfungen können gerichtet oder ungerichtet sein, auch n-är (also mehr als zwei Spans verbinden), und sie erscheinen als Bögen über dem Text. Über Label-Einschränkungen legst du fest, welche Entitätstypen an welchem Beziehungstyp beteiligt sein dürfen.

Zur vollständigen Dokumentation der Span-Verknüpfung →

Visuelle KI-Unterstützung

Potato 2.1 ergänzt vier Vision-Endpunkte und bringt damit erstmals KI-Unterstützung in die Bild- und Videoannotation. Bisher liefen die KI-Funktionen nur auf Text.

Vier Vision-Endpunkte

YOLO ist die Wahl für schnelle, präzise Objekterkennung mit lokaler Inferenz. Unterstützt werden YOLOv8-Varianten und YOLO-World für die Erkennung mit offenem Vokabular.

yaml
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5
    iou_threshold: 0.45

Ollama Vision führt Vision-Language-Modelle lokal über Ollama aus. Unterstützt werden LLaVA, Llama 3.2 Vision, Qwen2.5-VL, BakLLaVA und Moondream.

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"
    base_url: "http://localhost:11434"

OpenAI Vision übernimmt die Bildanalyse in der Cloud, mit GPT-4o und einstellbarer Detailstufe.

yaml
ai_support:
  enabled: true
  endpoint_type: "openai_vision"
  ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o"
    detail: "auto"

Anthropic Vision nutzt die Bildfähigkeiten von Claude für Bildverständnis und Klassifikation.

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic_vision"
  ai_config:
    api_key: "${ANTHROPIC_API_KEY}"
    model: "claude-sonnet-4-20250514"

KI-Funktionen für Bilder

Bei Bildaufgaben stehen vier Unterstützungsarten zur Verfügung:

  • Detection findet Objekte passend zu deinen Labels und zeichnet vorgeschlagene Bounding Boxes als gestrichelte Überlagerung ein
  • Vorannotation (Auto) erkennt alle Objekte im Bild und legt Vorschläge zur menschlichen Prüfung an
  • Klassifikation labelt einen ausgewählten Bereich oder das ganze Bild und gibt einen Konfidenzwert aus
  • Hinweise weisen Annotierende in die richtige Richtung, ohne die genaue Stelle zu verraten, was in der Einarbeitung nützlich ist
yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: object_detection
    tools: [bbox, polygon]
    labels:
      - name: "person"
        color: "#FF6B6B"
      - name: "car"
        color: "#4ECDC4"
    ai_support:
      enabled: true
      features:
        detection: true
        pre_annotate: true
        classification: false
        hint: true

KI-Funktionen für Video

Bei Videoaufgaben kommen Szenenerkennung (findet Szenengrenzen und schlägt zeitliche Segmente vor), Keyframe-Erkennung (greift wichtige Momente heraus) und Objektverfolgung (schlägt vor, wo ein Objekt über die Einzelbilder hinweg liegt) dazu.

Annehmen und Verwerfen

KI-Vorschläge erscheinen als gestrichelte Überlagerung. Annotierende können einen Vorschlag annehmen (Doppelklick), verwerfen (Rechtsklick), alle annehmen oder alle löschen. Die Entscheidung bleibt beim Menschen, die KI erledigt nur den mühsamen ersten Durchgang.

Getrennte Endpunkte für Bild und Text

Textaufgaben und visuelle Aufgaben können auf unterschiedliche KI-Endpunkte zeigen, sodass jeder Inhaltstyp das passende Modell bekommt:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"          # Text annotations
  visual_endpoint_type: "yolo"     # Image/video annotations
  ai_config:
    model: "llama3.2"
  visual_ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5

Zur vollständigen Dokumentation der visuellen KI-Unterstützung →

Anpassbare Layouts

Mit Potato 2.1 kannst du eigene visuelle Layouts bauen. Standardmäßig erzeugt Potato eine bearbeitbare Datei layouts/task_layout.html, und du kannst stattdessen eine eigene HTML-Vorlage einsetzen, mit CSS-Grid-Layouts, farbig unterschiedenen Optionen und eigenem Abschnitts-Styling.

yaml
task_layout: layouts/custom_task_layout.html

Unter project-hub/layout-examples/ liegen drei Beispiel-Layouts. Das zur Inhaltsmoderation hat ein Warnbanner, ein zweispaltiges Raster und farbig abgestufte Schweregrade. Das zur Dialogbewertung zeigt Metadaten zum Fall, kreisförmige Likert-Skalen und gruppierte Einschätzungen. Das zur medizinischen Begutachtung ist wie ein strukturierter Befund aufgebaut.

Eigene Layouts vertragen sich mit dem neuen System zur Instanzanzeige: Die angezeigten Inhalte werden oberhalb deiner eigenen Annotationsformulare gerendert.

Zur vollständigen Dokumentation der Layout-Anpassung →

Weitere Verbesserungen

Begründungen zu Labels

Zu Hinweisen, Keyword-Hervorhebung und Labelvorschlägen kommt eine vierte KI-Fähigkeit. Begründungen schreiben eine abwägende Erklärung, warum ein Label jeweils passen könnte. Das hilft Annotierenden, die Überlegung hinter einer Klassifikation nachzuvollziehen, statt zu raten.

yaml
ai_support:
  features:
    rationales:
      enabled: true

Fehlerbehebungen und Tests

  • Über 50 neue Tests für mehr Verlässlichkeit
  • Korrekturen am responsiven Design quer durch die Annotationstypen
  • Ein aufgeräumter project-hub, jetzt mit Layout-Beispielen

Umstieg auf v2.1

bash
pip install --upgrade potato-annotation

Deine bestehenden v2.0-Konfigurationen laufen unverändert weiter. Alles Neue schaltest du selbst dazu, über zusätzliche Konfigurationsblöcke wie instance_display, span_link-Schemata und visuelle KI-Endpunkte.

Loslegen

Das vollständige Changelog und alle geänderten Konfigurationsschlüssel stehen in den Release Notes zu v2.1.0 im Repository.


Fragen oder Rückmeldungen? Komm in unseren Discord oder eröffne ein Issue auf GitHub.