Was ist neu
Neu in Potato v2.x. Version 2.8 bringt Computer Vision, 3D-Punktwolken, Tiefenkarten, Roboterepisoden und die Evaluation von Weltmodellen, dazu zufallskorrigierte Übereinstimmung über Geometrie und Zeit. 61 Annotationstypen, 24 Anzeigetypen.
Diese Seite beschreibt neue Funktionen und Verbesserungen in den Potato v2.x-Versionen.
Potato 2.10.3
Veröffentlicht im Oktober 2026
Potato 2.10.3 behebt drei Fehler, die nach der Veröffentlichung von 2.10.2 gefunden wurden.
pip install --upgrade potato-annotation- Übereinstimmung bei einstimmigen Daten. Wenn alle Annotierenden bei jedem Item dieselbe Antwort gaben, lieferte
/admin/api/agreementdas Schema als{"error": "float division by zero"}. Die Zufallsübereinstimmung ist in diesem Fall 1, daher sind Alpha und beide Kappas undefiniert. Die Route meldet sie jetzt alsnull, mitpercent_agreementbei 1,0 und demselben Hinweis, den/admin/iaagibt, und der Gesamtdurchschnitt lässt das Schema aus. potato deploy button --dry-runbleibt offline. Ohne--hf-backup-repofragte der Probelauf bei HuggingFace nach, wem das Token gehört, und ein ungültiges Token endete in einem Traceback. Der Probelauf verwendet jetzt den Platzhalter<hf-account>/<name>-annotations, wie espotato deploy up --dry-runtut, und ein echter Lauf meldet ein abgelehntes Token als Fehlermeldung.- Der Import von Potato hasht kein Passwort mehr. Potato berechnete beim Import einen PBKDF2-Hash, sodass jeder Prozess beim Start 100.000 Iterationen aufwendete, CLI-Werkzeuge eingeschlossen. Der Hash wird jetzt erst erzeugt, wenn sich zum ersten Mal ein unbekannter Benutzername anzumelden versucht. Außerdem funktioniert der Import wieder unter Pyodide, dessen
hashlibkeinpbkdf2_hmachat.
Die vollständige Liste steht in den Release Notes.
Potato 2.10.2
Veröffentlicht im Oktober 2026
Potato 2.10.2 behebt Funktionen, die nach einer Installation per pip oder im Docker-Image nicht funktionierten, schließt Wege, sich als eine andere Person anzumelden, bringt das MySQL-Backend zum Laufen und korrigiert Übereinstimmungsstatistiken. Wenn Sie Übereinstimmungswerte aus einer früheren Version veröffentlicht haben, berechnen Sie sie neu.
pip install --upgrade potato-annotation- SSO-Konten akzeptierten jedes Passwort. In einer Aufgabe mit OAuth meldete das Passwortformular jede Person bei einem Konto an, das ein Anbieter registriert hatte. SSO-Identitäten authentifizieren sich nicht mehr per Passwort, und in einer MySQL-Studie kann niemand Fremdes mehr den Benutzernamen eines bestehenden Annotators registrieren und dessen Arbeit übernehmen.
ai_supportund Survey-Instrumente scheiterten nach einer Installation per pip. Im Wheel fehlten die KI-Prompts und die Survey-Instrumente, sodass eine Studie, die eines davon nutzte, beim Start abbrach. Container und Ziele vonpotato deployließen außerdem zehn Subsysteme aus, darunter den Chat-Support.- Das MySQL-Backend wurde nie aktiv. Eine Konfiguration, die es angab, speicherte Annotationen auf der Festplatte. Installieren Sie den Treiber mit
pip install 'potato-annotation[mysql]'; Export, Backups undpotato deploy pulllesen jetzt die Datenbank. - 59 Korrekturen an Übereinstimmungsstatistiken, jede gegen eine Referenzimplementierung wie scipy, sklearn oder das Paket
krippendorffgeprüft. Ein undefinierter Koeffizient wird als undefiniert gemeldet statt als 1,0, das ordinale Alpha verwendet Krippendorffs ordinale Metrik, MACE schätzt reine Spammer auf eine Kompetenz von etwa 0,01 statt 0,35, Ergebnisse ändern sich nach einem Neustart nicht mehr, undplackett_lucepasst die Best-Worst-Likelihood an, statt Bradley-Terry zu wiederholen. - Punktwolken in Kartenkoordinaten behalten ihre Genauigkeit. Eine LAS-Datei in UTM-Koordinaten wurde auf einem Raster mit bis zu 0,5 m Abstand gezeichnet. Potato liefert sie jetzt relativ zu einem lokalen Ursprung aus und speichert Annotationen in den eigenen Koordinaten der Datei.
Die vollständige Liste steht in den Release Notes.
Potato 2.10.1
Veröffentlicht im Oktober 2026
Potato 2.10.1 behebt fünf Probleme in potato deploy und im Backup, die nach 2.10.0 gefunden wurden. Aktualisieren Sie, bevor Sie sich auf einen Probelauf verlassen.
pip install --upgrade potato-annotation- Ein Probelauf ging durch bei Deployments, die
updann verweigerte. Heroku oder ECS Express ohne--backup, Render oder Railway ohne Backup-Speicher, in den das Projekt hochgeladen werden kann, und Fly mit einem Projekt, das zu groß ist, um es inline zu senden, gaben alle einen fehlerfreien Plan aus. Plan undupführen jetzt dieselbe Prüfung aus, und beide gebenREFUSED: <reason>aus und beenden sich mit Exit-Status 2. --demowurde angeboten, wo es nicht funktionieren kann. Render, Railway und ECS Express laden Ihr Projekt in den Speicher des Backups hoch und brauchen daher--backup hfoder--backup s3, selbst für eine Wegwerf-Studie. Die Warnung der Vorabprüfung bietet--demojetzt nur noch für Heroku und HuggingFace an.--cloud jetstream2plante das falsche Flavor. Der Probelauf zeigtem1.small, währendupeinm3.smallanlegte.- Zwei Preise waren falsch.
potato deploy providersnannte etwa $16 im Monat füraws-ec2und etwa $7 fürfly. Die Pläne berechnen $18.31 und $5.85, und die Zusammenfassungen nennen jetzt etwa $18 und etwa $6. backup: {enabled: false}schaltete das Backup nicht ab, wenn die Konfiguration noch einenhuggingface_backup-Block enthielt. Jetzt hat der neue Block Vorrang.
Die vollständige Liste steht in den Release Notes.
Potato 2.10.0
Veröffentlicht im Oktober 2026
Potato 2.10.0 ergänzt potato deploy um acht Hosting-Plattformen, sichert Annotationen auf Hosts, deren Datenträger einen Neustart nicht übersteht, und führt text_as_image ein, das den Text jedes Items als Bild zeigt, sodass Annotatoren ihn nicht in einen Chatbot einfügen können. Potato lokal oder in der Cloud ausführen zeigt, welcher Host zu welcher Studie passt.
Python 3.9 oder neuer ist jetzt als Voraussetzung deklariert. Eine Kernabhängigkeit verlangte das bereits, sodass sich auch frühere Releases nicht unter 3.7 oder 3.8 installieren ließen, und pip meldet das jetzt, bevor es etwas installiert.
pip install --upgrade potato-annotationDeployment
- AWS, auf drei Arten.
--provider awslegt eine Lightsail-Instanz zum Pauschalpreis von $12 im Monat an, die nurlightsail:*-Berechtigungen braucht.aws-ec2ist für Konten gedacht, in denen Lightsail deaktiviert ist, undaws-ecsführt den Container auf ECS Express Mode hinter einer von AWS verwalteten HTTPS-Adresse aus, zu höheren Kosten und mit verpflichtendem Backup. - Heroku, auf einem Basic-Dyno. Heroku löscht den Datenträger täglich, daher verweigert Potato dort ein Deployment ohne
--backupoder--demo. - Fly und Railway, jeweils mit einem persistenten Volume.
- Hetzner, Vultr und Linode, als VMs, die genauso eingerichtet werden wie bei DigitalOcean, mit einem Let's-Encrypt-Zertifikat für die IP-Adresse.
- OpenStack, mit einer Voreinstellung für Jetstream2. Jetstream2 gibt jeder Instanz einen DNS-Namen, sodass die Aufgabe ein gewöhnliches Zertifikat erhält. OpenStack-Clouds von Hochschulen und EGI funktionieren ebenfalls.
- Deploy-Buttons.
potato deploy button config.yaml --target heroku|render|aws|railwayschreibt die Dateien für einen Button „Deploy to Heroku“, „Deploy to Render“ oder AWS „Launch Stack“ in Ihr Repository, sodass andere die Aufgabe in ihren eigenen Konten betreiben können.
Die neuen Extras deploy-aws und deploy-openstack installieren die Clients für AWS und OpenStack.
Backup und Wiederherstellung
Ein neuer backup-Block kopiert alle fünf Minuten die Annotationsausgabe und Snapshots der SQLite-Datenbanken in ein HuggingFace-Dataset, einen S3-kompatiblen Bucket oder beides. Wenn ein Server mit leerem Aufgabenverzeichnis startet und das Backup Daten enthält, stellt Potato sie wieder her, bevor es irgendetwas lädt, sodass Annotatoren nach einem Neustart dort weitermachen, wo sie aufgehört haben. Übergeben Sie --backup hf, --backup s3 oder --backup hf,s3 an potato deploy up. Der ältere huggingface_backup-Block wird als backup-Block mit einem Ziel und ausgeschalteter Wiederherstellung gelesen, sodass sich bestehende Deployments wie bisher verhalten.
Text als Bild
text_as_image: true rendert den Text jedes Items auf dem Server zu einem PNG und entfernt die Wörter aus der Seite, dem eingebetteten Item-Datensatz und den JSON-Endpunkten, sodass ein Annotator nichts auswählen, kopieren oder einfügen kann. Die Funktion macht es aufwendiger, ein Item in einen Chatbot einzufügen, und ein Annotator kann den Text weiterhin abtippen oder OCR auf einen Screenshot anwenden. Ein Screenreader kann mit dem Bild nichts anfangen, daher eignet sich die Funktion nicht für eine Studie mit Annotatoren, die einen nutzen. Potato startet nicht, wenn text_as_image mit einem Span-Schema, einem Schema, das das Textfeld des Items liest, dem Pocket Mode oder Rooms kombiniert wird. Beigetragen von @Eyecatch3r in PR #169.
Korrekturen, die gesammelte Daten betreffen
- Ein Neustart auf einem Host ohne persistenten Datenträger verlor frühere Arbeit. Der Server startete leer, und der neue Zustand eines zurückkehrenden Annotators überschrieb die gesicherte Kopie. Die Wiederherstellung beim Start behebt das.
- DigitalOcean mit
--volume-gblegte die Annotationen auf dem Root-Datenträger ab statt auf dem Volume. Die Ausgabe und die SQLite-Datenbanken liegen jetzt unter/data. - Das HuggingFace-Backup tat im veröffentlichten Image nichts, weil dieses
huggingface_hubnicht enthielt, und auf Render und DigitalOcean setzte--hf-tokeneine Variable, die nichts las. Das Image installiert jetzt das neue Extrahosting. - Deployments auf Render starteten ohne das Projekt, und der Container beendete sich mit „config file not found“. Der Container lädt das Projekt jetzt beim Start herunter und prüft seine sha256-Prüfsumme.
Die vollständige Liste steht in den Release Notes.
Potato 2.9.2 bis 2.9.4
Veröffentlicht im September 2026
Aktualisieren Sie auf 2.9.4 oder neuer, wenn Personen, denen Sie nicht vertrauen, Ihren Server erreichen können. Vor 2.9.4 erzeugte das Formular /forgot-password für jeden eingegebenen Benutzernamen ein Reset-Token und zeigte den Reset-Link auf der Seite an, sodass jeder, der den Server erreichen konnte, jedes Passwortkonto übernehmen konnte, Admin-Konten eingeschlossen (GHSA-43v4-43pw-4rp2). Das Formular erzeugt jetzt kein Token mehr. Reset-Links kommen nur noch von POST /admin/create_reset_token und dem Befehl potato reset-password. Gemeldet, zusammen mit einem Patch, von HDEF.
- Smartphones (2.9.4). Auf Touchscreens sind Bedienelemente mindestens 44 px hoch, der Header belegt zwei Zeilen statt drei, multirate wird zu einer Liste beschrifteter Zeilen, und Span-Markierungen funktionieren per langem Drücken.
- Maschinelle Annotatoren (2.9.4). Ein
machine_annotators-Block deklariert Bewerter, die Programme sind, etwa Detektoren oder LLMs./admin/iaaberichtet dann Übereinstimmung zwischen Menschen, zwischen Maschinen und gepoolt, mit Kennzahlen nur für Menschen an erster Stelle, und Exporte in csv, tsv und parquet erhalten eine Spalteannotator_origin, sobald ein Datensatz von einer Maschine stammt. - Sitzungscookies hinter einem URL-Präfix (2.9.4). Zwei Studien, die unter
/app1und/app2auf einem Host liefen, teilten sich ein Sitzungscookie, sodass eine Anmeldung bei der einen Studie die Sitzung der anderen beendete. Das Cookie ist jetzt auf das Präfix beschränkt. Behoben von @Eyecatch3r in PR #172. - Schnellere Navigation (2.9.2). Skripte und Stylesheets bleiben zwischen Items im Cache, und Next braucht weniger Roundtrips. Über eine Verbindung mit 80 ms Roundtrip-Zeit sank die Dauer von Next bei einer Aufgabe mit Radiobuttons von etwa 2,6 s auf etwa 0,8 s.
- Textänderungen direkt vor Next (2.9.2). Wer ein Textfeld leerte und innerhalb einer Sekunde Next drückte, behielt den alten Text. Jedes Speichern übernimmt jetzt zuerst ausstehende Änderungen.
Potato 2.9.0
Veröffentlicht im September 2026
Potato importiert Projekte aus brat, doccano, Prodigy, CoNLL und REFI-QDA und transkribiert und diarisiert Audio lokal. Exporte halten fest, ob eine Bildform von einer Person gezeichnet, von einem Modell vorgeschlagen oder importiert wurde und in welchem Raum eine Stimme abgegeben wurde. Der größte Teil des Releases besteht aus Fehlerbehebungen.
Führen Sie vor dem Upgrade für jede Konfiguration potato validate --strict aus. Mehrere Änderungen können dazu führen, dass eine funktionierende 2.8.2-Studie nicht mehr startet oder sich anders verhält: Doppelte Schemanamen innerhalb einer Phase werden abgelehnt, min_annotators_per_instance ist jetzt ein Alias für die Obergrenze pro Element, require_fully_annotated: true wird durchgesetzt, eine Phase, die nicht geladen werden kann, bricht den Start ab, und Span-Offsets zählen Codepoints statt UTF-16-Einheiten. Übereinstimmungswerte für Schemata mit Mengen- oder Reihenfolgewerten, für Matrixschemata und für ordinale Schemata mit Labels ändern sich und sollten neu berechnet werden. Die vollständige Liste steht in den Release Notes.
pip install --upgrade potato-annotationImport und Export
- Importer für brat, doccano, Prodigy, CoNLL-2003/CoNLL-U und REFI-QDA
.qdpxsowie ein.qdpx-Exporter. Siehe Ein Projekt importieren. - Herkunftsangaben in Exporten. Jede Bildform hält fest, ob eine Person sie gezeichnet oder ein Modell sie vorgeschlagen hat (
source,ai_model,confidence,edited,carried_over,import_format). Stimmen aus einem Multiplayer-Raum enthalten den Raum, die Rolle, die erste Stimme, ob sie nach der Auflösung geändert wurde, und die Zahl der Abstimmenden. - Span-Exporte in csv, jsonl und parquet enthalten den abgedeckten Text.
potato export --format adjudicationist neu, und jeder Schematyp hat jetzt ein Adjudikations-Bedienelement, mit dem sich eine vorhandene Antwort übernehmen lässt (bisher hatten nur radio und likert eines).
Audio, Video und Transkripte
- Lokale Transkription und Sprecherdiarisierung mit faster-whisper und sherpa-onnx, ohne PyTorch und ohne Hugging-Face-Token. Installieren Sie
potato-annotation[transcribe]und führen Sie dannpotato transcripts <dir> --transcribe --diarize --num-speakers N -o out.jsonaus. Siehe Transkriptformate. segment_schemesrendert jeden Annotationstyp innerhalb eines Audio- oder Videosegments. Bisher wurde die Einstellung akzeptiert und dann ignoriert.
Übereinstimmung, Qualität und KI
- Übereinstimmung im Zeitverlauf, abgeglichen mit den Revisionen des Codebuchs, mit einem Auslöser für eine Neukalibrierung auf
/admin/iaa. - Ein Prüfmodus für Modellausgaben, der auch die Items mit leerer Vorhersage einschließt, sodass sich der Recall berechnen lässt.
ai_budget.cap_usdstartet keinen Lauf, den das Budget nicht deckt, undai_budget.priceslegt die Preise pro Modell in der Konfiguration fest.ai_supportspeichertfinal_annotationundpre_annotation_seeds, sodass sich Übernahmeraten aus Ihren eigenen Daten messen lassen.
Deployment und Oberfläche
- Unterstützung für Reverse-Proxys und Pfadpräfixe auf jeder Seite (#168, Aldo Costa). Siehe Reverse-Proxy.
card_sortfunktioniert ohne Maus, und Verschiebungen werden Screenreadern angesagt.resizable,max_heightundmin_heightfunktionieren bei jedem Anzeigetyp.
Korrekturen, die Ergebnisse betreffen
/admin/api/agreementhat nie eine Zahl geliefert und verglich gespeicherte Werte statt Labelnamen, sodass jedes kategoriale Schema perfekte Übereinstimmung zeigte.- In einer Studie mit zwei Annotatoren pro Element wurde die zweite annotierende Person auf die Abschlussseite geschickt, und jede Antwort, die sie danach gab, ging verloren.
- KI-Vorschläge bezogen sich unter jeder Zuweisungsstrategie außer
fixed_orderauf das falsche Element. - Registrierungen wurden mit der standardmäßigen In-Memory-Konfiguration nie gespeichert, sodass nach einem Neustart jede Person einen bestehenden Benutzernamen beanspruchen konnte.
Dank an Aldo Costa (@Eyecatch3r) für #168 und #171 sowie an @ruthenian8 für das Melden und die Diagnose von #170.
Potato 2.8.2
Veröffentlicht im August 2026
2.8.1 enthielt zwei der fünf Sicherheitskorrekturen nicht, die in seinen Release Notes beschrieben waren: die SSRF-Korrektur an den Medien-Endpunkten (GHSA-9394-85jj-2mhj) und die Härtung des Debug-Modus (GHSA-r4ww-vc5h-35qf). 2.8.2 liefert beide aus. Wenn Sie wegen eines dieser beiden Probleme auf 2.8.1 aktualisiert haben, aktualisieren Sie erneut. Siehe die Release Notes zu 2.8.2.
Potato 2.8.1
Veröffentlicht im August 2026
Ein Sicherheitsrelease. Es behob eine Remote-Code-Ausführung über den Live-Coding-Agenten (GHSA-cm4p-5rfv-x252), eine Admin-Konfiguration, die ohne Admin-Schlüssel lesbar war, und einen Webhook zur Trace-Aufnahme, der jede Anfrage annahm. Aktualisieren Sie, wenn Sie Potato irgendwo anders als auf localhost betreiben, und gehen Sie direkt auf 2.8.2, das die beiden Korrekturen enthält, die in 2.8.1 fehlten.
Potato 2.8.0
Veröffentlicht im August 2026
Potato war eine Plattform für Textannotation mit einem Bildmodus. Jetzt deckt es Bilder, Video, Gigapixel-Scans, 3D-Punktwolken, Tiefenkarten, Roboterepisoden, generierte Video-Rollouts und Vision-Language-Grounding ab. Für jede dieser Datenarten berichtet es zufallskorrigierte Übereinstimmung.
Aktualisieren Sie, wenn Sie von PyPI installiert haben. Wheels bis einschließlich 2.7.1 deklarierten die Paketdaten mit einem einstufigen Glob, sodass 27 Templates in Unterverzeichnissen in jedem Wheel fehlten. Die Setup-Routen des Solo-Modus, die Admin-Seiten, die Judge-Kalibrierung und die Korpuskarte funktionierten bei allen nicht, die pip install ausgeführt hatten; wer aus einem Git-Checkout arbeitete, bemerkte davon nichts. Behoben in PR #164 von @0x6362.
pip install --upgrade potato-annotationÜbereinstimmung über Geometrie und Zeit
- Zufallskorrigierte Übereinstimmung für räumliche Labels, zerlegt in Detektion (haben die Annotatoren dieselben Objekte gefunden), Klassifikation (haben sie sie gleich benannt) und Lokalisierung (haben sie sie an dieselbe Stelle gesetzt, angegeben als σ gegenüber einer empirischen Zufallsbasislinie plus KS-Test).
- STAPLE für den Masken-Konsens. Es schätzt eine latente Grenze sowie Sensitivität und Spezifität für jede bewertende Person. Auf einem Korpus, in dem zwei sorgfältige Annotatoren von verrauschten im Verhältnis drei zu zwei überstimmt werden, erreicht das Mehrheitsvotum einen Dice-Wert von 0,846 gegenüber der Wahrheit und STAPLE einen von 1,000.
- Exakter rotierter 3D-IoU, sodass die Übereinstimmung bei Quadern auch für Drohnen-, Handkamera- und Innenraumdaten korrekt ist und nicht nur für waagerechte Boxen.
- Zeitliche Übereinstimmung als Sweep über verschiedene Toleranzen beim Matching, weil Übereinstimmung bei 0,25 s eine andere Aussage ist als Übereinstimmung bei 2 s.
- Undefinierte Werte erklären sich selbst. α ist auf einem einstimmigen Korpus tatsächlich undefiniert, und ein bloßes
NaNliest sich wie eine fehlerhafte Berechnung.
Damit ist auch ein Fehler behoben. Die Adjudikation verglich die Schlüssel einer Annotation, und Bildschemata speichern alles unter einem einzigen Schlüssel namens _data. Jedes Bildpaar erhielt deshalb eine Übereinstimmung von 1,0, sodass zwei Annotatoren, die in nichts übereinstimmten, einstimmig wirkten und kein Bild je zur Prüfung weitergeleitet wurde.
Vision
- Geometrie-Primitive: Polylinien, Ellipsen, 2D-Quader, Keypoint-Sets mit Skeletttopologie und COCO-Sichtbarkeitsflags sowie instanzbezogene Pinselmasken.
- Click-to-Segment im Browser mit MobileSAM unter ONNX Runtime Web, etwa 132 ms pro Klick, ohne GPU und ohne Netzwerkaufruf pro Klick.
- Textprompts mit offenem Vokabular. Sie geben eine Phrase ein, und jeder Treffer wird mit einer Box markiert. Grounding DINO, Apache-2.0, ebenfalls im Browser.
- Maskenpropagation in Videos mit den Speichermodulen von SAM 2, gemessen mit 0,974–0,979 IoU pro Frame, ohne Abfall über die Sequenz. Diese Funktion läuft bewusst serverseitig; der Browser hat einen separaten, leichteren Weg, der Masken in das nächste Frame übernimmt.
- Deep Zoom für Gigapixel-Bilder, ausgeliefert sowohl als DZI als auch über IIIF Image API 3.0, mit Pinselmasken in der vollen Auflösung der Quelle.
- Medienimport: mehrseitige 16-Bit-TIFF, HEIC, Kamera-RAW sowie ProRes/MKV/MOV über einen serverseitigen Proxy mit Cache.
- 15 Import- und 29 Exportformate, 11 davon mit verlustfreiem Round-Trip. Darwin funktioniert in beide Richtungen.
Die Tastenkürzel für die Bildannotation folgen jetzt standardmäßig den Konventionen von V7: b Pinsel, r Rechteck, f Füllen, k Keypoint, v Auswahl. Setzen Sie keybinding_profile: legacy im Schema, um für eine bereits laufende Studie die alten Belegungen wiederherzustellen.
3D, Tiefe und Robotik
spatial_annotationfür Punktwolken in PCD, PLY, LAS, KITTI.binund.xyz, mit 3D-Quadern, Punkten, Polylinien und Segmenten pro Punkt, Octree-Detailstufen und orthografischen Schichtansichten. Die Rotation wird als Quaternion gespeichert, sodass die Montageneigung, die ein reines Gierwinkel-Feld stillschweigend verwerfen würde, einen KITTI-Round-Trip übersteht.- Tiefenkarten in 16-Bit-PNG/TIFF, NPY, PFM und EXR, mit Fensterung, Farbskalen, einer Meteranzeige unter dem Cursor und Rückprojektion in denselben 3D-Viewer.
- Kalibrierungsbewusste Projektion, sodass ein in 3D gezeichneter Quader in jedem Kamerabild erscheint und in 2D überprüft werden kann.
episode_annotationlegt N synchronisierte Videostreams und M Zeitreihen-Spuren des Roboters auf eine gemeinsame Zeitachse, mit Phasensegmentierung, Ergebnissen pro Phase und dichten Belohnungskurven. Importiert LeRobot v2, RLDS/TFDS und HDF5. Das Downsampling der Spuren erhält Minima und Maxima, sodass eine Kraftspitze von einem einzigen Frame den Weg in eine 300 Pixel breite Spur übersteht.
Evaluation
rollout_evaluationzeigt 2 bis N generierte Videos auf einer gemeinsamen Uhr und bittet die annotierende Person, das Frame zu markieren, ab dem die Welt keinen Sinn mehr ergibt, und dann anzugeben, welche physikalische oder kausale Eigenschaft verletzt wurde. Panels lassen sich verblinden und pro Annotator stabil mischen.grounding_evalundregion_captionbewerten Grounding über IoU bei vier Schwellenwerten und Pointing über den Anteil der Punkte, die in der Region liegen, weil ein Punkt keine Fläche hat und der IoU gegen einen Punkt immer null ist. Fehlendes Grounding wird separat gezählt.
Alles andere
- Verzweigte Konversationen. Die Anzeige
dialoguestellt die Antwortstruktur aus demreply_tojedes Turns dar.potato convokitimportiert jedes ConvoKit-Korpus, und--format convokitexportiert zurück, ohne Abhängigkeit vonconvokit. - Zeichen-Telemetrie, also Zeit pro Form, Strichdynamik, Anzahl der Überarbeitungen und Latenz bis zur Annahme von KI-Vorschlägen. Pauschal übernommene Vorlabels lassen die Übereinstimmung steigen, ohne dass die Genauigkeit steigt, weil Annotatoren, die denselben Vorschlag übernehmen, per Konstruktion einstimmig sind. Das Timing ist ein Prozesssignal, das echtes Prüfen von bloßem Abnicken unterscheidet, wo die Labels das nicht können.
- Live-Aufnahme aus Datenbanken. Zeilen, die nach dem Start angelegt werden, sind innerhalb von
poll_interval_secondsohne Neustart annotierbar (#166). - Maschinenlesbare Spezifikationen, nämlich ein JSON Schema für 159 Konfigurationsschlüssel, 61 Annotationstypen und 24 Anzeigetypen sowie ein OpenAPI-Dokument mit 419 Pfaden. Beide werden aus dem Code erzeugt, und die CI schlägt fehl, wenn eines davon abweicht, sodass ein Editor oder ein Coding-Agent eine Konfiguration prüfen kann, ohne Optionen zu erfinden.
- Keine ausgehenden Anfragen. Alle Stylesheets, Skripte, Schriften und Icons werden jetzt in allen 14 Templates aus der Installation ausgeliefert.
styles.cssbegann mit einem@importvon Google Fonts, das beim Laden der Seite die IP-Adresse jeder annotierenden Person an einen Dritten schickte, und die Login-Seite enthielt ein Favicon eines Drittanbieters. Beides ist entfernt. - Der Admin-Tab Instances arbeitet jetzt linear statt quadratisch. Bei 2000 Elementen sank die Zeit von 15,1 s auf 23 ms.
Potato 2.7.2
Veröffentlicht im August 2026
Tastenanschlag-Logging für Freitextfelder. Potato zeichnet das Timing hinter einer Antwort auf und nie die Zeichen selbst, und das reicht offenbar aus, um Tippen von Einfügen zu unterscheiden.
- Tastenanschlag-Logging. Inhaltsblinde Erfassung von Pausen, Schreibschüben, Überarbeitungen und Einfügungen in jedem Freitextfeld, mit etwa vierzig zusammenfassenden Merkmalen pro Antwort. Standardmäßig aus.
- Schreibprozess-Erkennung. Sechs benannte Regeln mit expliziten Schwellenwerten, die die Merkmalswerte hinter jeder Markierung ausweisen. Die Schwellenwerte lassen sich auf das eigene Projekt neu anpassen, und wer Labels hat, kann einen überwachten Weg gehen.
- Ethik-Hinweise. Musterformulierungen für die Einwilligung, Aufbewahrung und Löschung, das Grundratenproblem und warum eine Markierung ein Anlass zum Nachsehen ist und kein Befund.
- Opt-in-Exporte.
export_include_typing_dynamicsschreibt eine zusammenfassende Sidecar-Datei, und--format keystrokesschreibt die Rohströme nach Parquet. Beides ist standardmäßig aus, damit Verhaltensdaten nie versehentlich in einer Datensatzveröffentlichung landen.
Die Offenlegung gegenüber Annotatoren ist standardmäßig aktiv, und wer sie abschaltet, bekommt beim Start eine Warnung ins Log.
Potato 2.7.1
Veröffentlicht im Juli 2026
Transkript-Import, ausgehend davon, dass das Transkript bereits existiert. Jemand hat Whisper laufen lassen, Untertitel heruntergeladen oder ein Korpus übergeben bekommen, und der nächste Schritt sollte nicht das Schreiben eines Konvertierungsskripts sein.
- 21 Transkript- und Untertitelformate, vorher 6. Whisper, WhisperX, whisper.cpp, AWS Transcribe, Deepgram, AssemblyAI, Rev.ai, SPoRC, SubRip, WebVTT, SubStation Alpha, TTML/DFXP, YouTube
json3undsrv1/srv2/srv3, NIST CTM, Praat TextGrid und ELAN EAF. Die Erkennung erfolgt anhand des Dateiinhalts, nicht der Endung. - Transkripte als Sidecar-Dateien. Eine Datendatei kann auf
media/int_001.srtauf der Festplatte verweisen, statt das Transkript einzubetten. Pfade werden untertask_dirüber die übliche Pfad-Sicherheitsprüfung aufgelöst, sodass Ihre Transkripte Dateien bleiben, die Sie diffen und erneut exportieren können. potato transcripts, ein Konverter, der einen Ordner voller ASR-Ausgaben in eine annotationsfertige Datendatei verwandelt und Transkripte den Mediendateien über den Basisnamen zuordnet.--dry-runmeldet das Erkannte, bevor irgendetwas geschrieben wird, und--emit-configgibt eine passende Konfiguration aus.- Ein Formatvokabular für vier Schemata.
speech_transcript,voice_interactionundtiered_annotationakzeptieren jetzt alles, was auch dieaudio_dialogue-Anzeige akzeptiert. Vorher konnte das nur die Anzeige. - Whisper-Transkripte annotieren und YouTube-Untertitel annotieren führen beide Ausgangspunkte von Anfang bis Ende durch.
In 2.7.1 laufen ASR und Diarisierung vorgelagert, und Potato liest deren Ausgabe. Potato 2.9 hat lokale Transkription und Diarisierung über potato transcripts --transcribe --diarize hinzugefügt, und der Think-Aloud-Modus transkribiert die Sprache der Annotatoren bereits seit 2.7.0 lokal.
Potato 2.7.0
Veröffentlicht im Juli 2026
Potato 2.7 beruht auf einem Gedanken: Ein Annotationswerkzeug sollte messen, wie Urteile zustande kommen, und nicht nur festhalten, welche es waren. Das gilt für beide Arten von Urteilenden, also für die Menschen, die annotieren, und für die KI-Modelle, die bewertet werden.
Messen, wie Menschen labeln
Sieben optionale Funktionen, von denen keine ein LLM voraussetzt.
- Psychometrie-Engine. Eine Live-Schicht auf Basis der Item-Response-Theorie, die jedem Label eine Posteriorwahrscheinlichkeit und ein Sensitivitätsintervall gibt (
p = 0.94 [0.88–0.97]) statt eines bloßen Mehrheitsvotums. Sie schätzt Annotatorfähigkeit und Itemschwierigkeit allein aus den Übereinstimmungsmustern, leitet Elemente an die Person weiter, deren Urteil am meisten Information trägt, und markiert wahrscheinliche Fehler im Codebuch. - Multiplayer-Räume. Das Kalibrierungstreffen, das Ihr Team ohnehin per Bildschirmfreigabe abhält, im Werkzeug abgebildet und messbar gemacht: Blindabstimmung, Auflösung durch die Moderation, Diskussion, erneute Abstimmung, mit einer Live-Anzeige von Krippendorffs α, die zeigt, was die Sitzung gebracht hat.
- Boundary Lab. Kontrafaktische Nachfragen nach jedem Label ("würde das immer noch gelten?"), die aus gewöhnlicher Annotation Kontrastmengen machen und inkonsistente Annotatoren auffallen lassen, ohne dass Gold-Items eingestreut werden.
- Truth Serum. Peer-Prediction-Bewertung nach dem Surprisingly-Popular-Prinzip, die bei schwierigen Annotationen besser abschneidet als das Mehrheitsvotum, und das ohne Gold-Labels.
- Think-Aloud-Modus. Annotatoren sprechen, während sie arbeiten; die Spracherkennung läuft vollständig lokal, und das wörtliche Transkript wird zur Begründung.
- Paper-Modus. Ein Befehl macht aus einem Projekt einen kompilierbaren LaTeX-Datensatzbericht, samt Übereinstimmungsstatistiken und Zitationen.
- Pocket-Modus. Vollwertige mobile Annotation mit wischbarem Kartenstapel, Offline-Synchronisierung und PWA-Installation.
KI-Agenten bewerten
Die Suite zur Agentenbewertung deckt jetzt auch Teamstruktur und multimodale Agenten ab: einen anklickbaren Agenten-Interaktionsgraphen, agentenübergreifende Fehlerzuordnung, Übergabeprüfung, Scorecards pro Agent und pro Team, Zeitleisten für Werkzeugkonflikte und das Auszeichnen emergenten Verhaltens, dazu GUI-/Computer-Use-Trajektorien, Vollduplex-Sprachzeitleisten, zeitliche Verankerung in Video und Dokument-Tabellenstruktur.
Überall sonst
Dokumentübergreifende Ereignisannotation, Annotation auf Turn-Ebene, ein Codebuch als lebendes Dokument mit Vollseiten-Editor, seitenübergreifende PDF-Verknüpfung mit optionalem OCR, RBAC-Rollen mit Schemata pro Kohorte, Admin- und Annotator-Dashboards in 10 Sprachen und eine deutlich schlankere Installation. KI-SDKs werden jetzt verzögert geladen, was die Startzeit von rund 2,0 s auf 0,7 s senkt.
Potato 2.6.0
Veröffentlicht im Juni 2026
Potato 2.6 erschließt die qualitative Datenanalyse und baut das Werkzeugset zur Agentenbewertung aus. Hinzu kommen der QDA-Modus, ein Workflow zur Kalibrierung und Ausrichtung von LLM-as-Judge mit signalbasierter Triage-Warteschlange sowie Schemata zur Trajektorienbearbeitung, die SFT- und DPO-Trainingsdaten erzeugen. Potato ist außerdem neu unter GPL-3.0-or-later lizenziert (vorher PolyForm Shield).
QDA-Modus
Ein optionaler qda_mode macht Potato zu einem kollaborativen Arbeitsbereich für qualitative Codierung. Beim Aktivieren entstehen ein lebendes Codebuch, In-vivo-Codierung, Analysememos, Fälle und Volltextsuche, mit Voreinstellungen für den Fall, dass eine einzelne Person ein ganzes Korpus codiert.
qda_mode:
enabled: true # codebook + memos + cases + search
codebook_invivo_key: i # mint a code from a text selection
search:
enabled: true
annotator_claim: trueMehr über den QDA-Modus erfahren →
Kalibrierung und Ausrichtung von LLM-as-Judge
Daten mit einem oder mehreren LLM-Judges automatisch labeln, dann in einem blinden menschlichen Kalibrierungsdurchgang Genauigkeit, Übereinstimmung und Kalibrierungsfehler messen. Ein separater Alignment-Workflow für einen einzelnen Judge verfolgt Cohens Kappa gegen Ihre menschlichen Gold-Labels, während Sie das Bewertungsraster verfeinern, wahlweise mit einem Inline-Urteil während der Annotation.
Mehr über Judge-Kalibrierung erfahren → · Judge-Alignment →
Signalbasierte Triage-Warteschlange
Die Annotationswarteschlange nach einem Qualitätssignal pro Element priorisieren (ein Agentenfehler, ein Daumen-runter aus der Produktion, ein niedriger Score oder ein beliebiges eigenes Feld), damit Prüfende die verdächtigsten Elemente zuerst sehen statt in Eingangsreihenfolge.
triage:
enabled: true
signal_field: quality_score
invert_signal: true
assignment_strategy: priorityMehr über die Triage-Warteschlange erfahren →
Trajektorienbearbeitung für SFT/DPO
Mit den neuen Schemata trajectory_edit und trajectory_correction können Annotatoren Schritte in Agenten-Traces umschreiben. Der Exporter macht aus jedem Paar aus Original und Korrektur Ziele für überwachtes Fine-Tuning (trajectory_sft.jsonl) und DPO-Präferenzpaare (trajectory_dpo.jsonl).
Mehr über Trajektorienbearbeitung erfahren →
eval_trace-Anzeige
Eine dreigeteilte Agenten-Trace-Anzeige (Reasoning, Function Calls und Final Answer) für laufende Evaluation, bei der Traces über einen Webhook, einen Langfuse-Poller oder ein überwachtes Verzeichnis eintreffen und beurteilt werden, sobald sie da sind.
Mehr über eval_trace erfahren →
Workflow und Zuweisung
- Heterogene Abdeckung. Obergrenzen für Annotatoren pro Element, Berichte zur Inter-Annotator-Übereinstimmung und Adjudikations-Routing für Aufgaben, bei denen Elemente unterschiedlich viele Annotatoren brauchen.
- Liegen gebliebene Zuweisungen zurückholen. Zuweisungen wiederherstellen, die von Prolific-Workern oder per QC gesperrten Workern zurückgelassen wurden, mit konfigurierbarer Aufbewahrung und idempotentem Zurückholen.
- Zuweisungsstrategie Custom Batch. Vordefinierte Element-Batches an bestimmte Annotatoren vergeben.
- URL-Präfixe für Reverse-Proxys. Potato hinter einem Reverse-Proxy unter einem Unterpfad ausliefern.
Lizenzierung
Potato erscheint jetzt unter GPL-3.0-or-later, umlizenziert von PolyForm Shield. Sie dürfen es nutzen, verändern und weitergeben, auch kommerziell, solange abgeleitete Werke unter der GPL bleiben. Einzelheiten auf der Über-Seite.
Leistung und Stabilität
- Etwa 3× schnellerer Start. Der ML-Stack wird beim Start nicht mehr vorab geladen. Die Importzeit sank von rund 6,5 s auf 2 s, der Start mit 50k Elementen von rund 10 s auf 5,7 s und der residente Speicher von rund 750 MB auf 365 MB.
- Schema umbenannt. Aus
annotation_type: highlightwirdspan, mit vorhandener Migration. Alte Konfigurationen aktualisieren Sie, indem Sie den Typ umbenennen; bestehendespan-Konfigurationen sind nicht betroffen. - Eine breite QA-Härtungswelle betraf Routenregistrierung, Trainingsphasen, Prolific, Persistenz, Export- und Umfragebehandlung, Webhooks, Solo-Modus und Active Learning.
Potato 2.5.0
Veröffentlicht 2026
Eine Welle rund um qualitative Codierung, die Potato neben seiner Oberfläche für NLP- und ML-Annotation auch für qualitative Forschungsabläufe brauchbar macht.
- Inter-Annotator-Übereinstimmung. Cohens Kappa (paarweise) und Fleiss' Kappa (N Bewertende) zusätzlich zu Krippendorffs Alpha, bereitgestellt über die Admin-Übereinstimmungs-API. Siehe den Leitfaden zur Inter-Annotator-Übereinstimmung.
- Neue Exporter.
codebook(CSV pro Schema mit Code-Hierarchie, Farbe, Beschreibung und Verwendungszahl) undquotation_report(CSV pro Span mit Text, Offsets, Quelldokument und codierender Person). - Code-Analytik. Admin-Endpunkte für paarweise Code-Kookkurrenz und eine Kreuztabelle von Codes nach Attribut über bestehende Instanz-Metadaten.
Potato 2.4.5
Veröffentlicht 2026
Ein Release für Stabilität und Werkzeuge.
- Validierte Verfeinerung. Ein modulares Framework, um Annotationsrichtlinien im Solo-Modus schrittweise zu verbessern, mit Schutzmechanismen gegen widersprüchliche Richtlinien und das Durchsickern von Metadaten.
- Konfigurationsvalidator. Ein neues CLI
python -m potato.validate_cli, das Konfigurationsschlüssel gegen das bekannte Konfigurationsschema prüft. - Sicherheit. Behebung einer Umgehung der Pfadprüfung über Geschwister-Präfixe (Path Traversal) (GHSA-q9m2-fhv9-3jcf).
- Korrekturen bei der Zustandssynchronisierung von Speichern und Navigation, der Prolific-Integration, der mehrphasigen Navigation und beim Feedback der Qualitätskontrolle.
Potato 2.3.0
Veröffentlicht am 9. März 2026
Potato 2.3 ist das größte Release in der Geschichte von Potato und führt agentische Annotation, Solo-Modus, Best-Worst Scaling, SSO/OAuth-Authentifizierung, Parquet-Export, 15 neue Demo-Projekte und Sicherheitshärtung ein.
Agentische Annotation
Ein vollständiges System zur Bewertung von KI-Agenten durch menschliche Annotation. Enthält 12 Trace-Format-Konverter, 3 spezialisierte Anzeigetypen und 9 vorgefertigte Annotationsschemata.
12 Trace-Format-Konverter. Import von Agenten-Traces aus OpenAI, Anthropic, SWE-bench, OpenTelemetry, MCP, CrewAI/AutoGen/LangGraph, LangChain, LangFuse, ReAct, WebArena/VisualWebArena, ATIF und rohen Browser-Aufzeichnungen. Automatische Erkennung verfügbar.
Die Konvertierung läuft als CLI-Schritt, bevor der Server startet:
python -m potato.trace_converter \
--input traces.json \
--input-format react \
--output data/traces.jsonlDie konvertierte Datei ist danach eine gewöhnliche Datendatei, die von einem der Agenten-Anzeigetypen dargestellt wird:
data_files:
- "data/traces.jsonl"
instance_display:
fields:
- key: steps
type: agent_trace
label: "Agent trajectory"3 Anzeigetypen:
- Agenten-Trace-Anzeige. Farbcodierte Schrittkarten mit zusammenklappbaren Beobachtungen, JSON-Formatierung und Timeline-Seitenleiste für werkzeugnutzende Agenten
- Web-Agenten-Trace-Anzeige. Vollständige Screenshots mit SVG-Überlagerungen, die Klickziele, Texteingaben und Scroll-Aktionen zeigen, und Filmstreifen-Navigation für Browsing-Agenten
- Interaktive Chat-Anzeige. Live-Chat-Modus (die annotierende Person interagiert über einen Proxy mit dem Agenten) und Trace-Überprüfungsmodus für konversationelle Agenten
Bewertungen pro Schritt. Einzelne Schritte zusätzlich zum Gesamttrace bewerten, für eine feinkörnige Evaluation.
9 vorgefertigte Schemata. agent_task_success, agent_step_correctness, agent_error_taxonomy, agent_safety, agent_efficiency, agent_instruction_following, agent_explanation_quality, agent_web_action_correctness, agent_conversation_quality.
Agenten-Proxy-System. OpenAI-, HTTP- und Echo-Proxies für die Live-Agentenbewertung.
Mehr über agentische Annotation →
Solo-Modus
Ein Workflow, in dem eine einzelne annotierende Person mit einem LLM zusammenarbeitet, um einen ganzen Datensatz zu labeln. Er erreicht über 95 % Übereinstimmung mit Multi-Annotator-Pipelines und braucht dafür nur 10–15 % der menschlichen Labels.
Der Solo-Modus läuft als Zustandsautomat mit Phasen statt als feste Abfolge. Er durchläuft Setup, Prompt-Prüfung, eine optionale Schleife für Randfälle, parallele Annotation, Auflösung von Meinungsverschiedenheiten, aktive Annotation mit periodischer Prüfung und Regelprüfung, autonomes Labeln und eine abschließende Validierung. Fünf dieser Phasen können zur Prompt-Prüfung zurückkehren, wenn sich der Prompt als das Problem herausstellt, und die abschließende Validierung fällt auf die aktive Annotation zurück, wenn die Stichprobe den Schwellenwert nicht erreicht.
solo_mode:
enabled: true
labeling_models:
- endpoint_type: openai
model: "gpt-4o"
api_key: ${OPENAI_API_KEY}
thresholds:
end_human_annotation_agreement: 0.92
minimum_validation_sample: 50
state_dir: "solo_state"Multi-Signal-Priorisierung von Instanzen. instance_selection gewichtet sieben Signale (niedrige Konfidenz, Diversität, LLM-Vorhersage, Meinungsverschiedenheit, Zufall, Cartography, Randfallregel), um auszuwählen, was die Person als Nächstes sieht.
Best-Worst Scaling
Effiziente vergleichende Annotation, bei der Annotatoren die besten und schlechtesten Elemente aus Tupeln auswählen. Automatische Tupelgenerierung mit ausgeglichenen unvollständigen Blockdesigns und drei Bewertungsmethoden (Counting, Bradley-Terry, Plackett-Luce).
annotation_schemes:
- annotation_type: bws
name: fluency
description: "Which sentence reads most fluently?"
tuple_size: 4
best_description: "Most Fluent"
worst_description: "Least Fluent"Mehr über Best-Worst Scaling →
SSO & OAuth-Authentifizierung
Produktionsreife Authentifizierung mit Google OAuth (Domäneneinschränkung), GitHub OAuth (Organisationseinschränkung) und generischem OIDC (Okta, Azure AD, Auth0, Keycloak). Unterstützt automatische Registrierung, gemischten Modus und Sitzungsverwaltung.
authentication:
method: "oauth"
providers:
google:
client_id: ${GOOGLE_CLIENT_ID}
client_secret: ${GOOGLE_CLIENT_SECRET}
allowed_domain: "umich.edu"
user_identity_field: "email"
auto_register: true
secret_key: ${POTATO_SECRET_KEY}Parquet-Export
Annotationen in das Apache-Parquet-Format exportieren, wobei drei strukturierte Dateien entstehen: annotations.parquet, spans.parquet und items.parquet. Unterstützt die Komprimierung mit snappy, gzip, zstd, lz4 und brotli, inkrementellen Export sowie Partitionierung nach Datum und Annotator. Kompatibel mit pandas, DuckDB, PyArrow, Polars und Hugging Face Datasets.
export_annotation_format:
- parquetMehr über den Parquet-Export →
15 neue Demo-Projekte
Neue Demos in project-hub/ zu agentischer Annotation (5 Demos), Solo-Modus (3 Demos), Best-Worst Scaling (3 Demos), Authentifizierung (2 Demos) und Export-Workflows (2 Demos). Jede Demo startet mit potato start config.yaml.
Sicherheitshärtung
- Kryptografisch sichere Sitzungstoken mit konfigurierbarem Ablauf
- CSRF-Schutz standardmäßig aktiviert
- Rate-Limiting auf Authentifizierungs-Endpunkten
- Bereinigung von Eingaben aus nutzergelieferten Inhalten
- Abhängigkeitsaudit mit aktualisierten Paketen
- Content-Security-Policy-Header
Weitere Verbesserungen
- Benutzerdefinierte Trace-Konverter für nicht unterstützte Agenten-Frameworks
- Hybrider Solo-Modus mit Multi-Annotator-Verifikations-Sampling
- BWS-Tab im Admin-Dashboard mit Diagrammen zur Score-Konvergenz
- Inkrementeller Parquet-Export mit Datumspartitionierung
Vergleich v2.2 vs. v2.3
| Funktion | v2.2 | v2.3 |
|---|---|---|
| Agentische Annotation | Nicht verfügbar | 12 Konverter, 3 Anzeigen, 9 Schemata |
| Solo-Modus | Nicht verfügbar | Mensch-LLM-Workflow, gesteuert durch einen Zustandsautomaten mit Phasen |
| Best-Worst Scaling | Nicht verfügbar | BWS mit 3 Bewertungsmethoden |
| Authentifizierung | Nur Benutzername | + Google OAuth, GitHub OAuth, OIDC |
| Parquet-Export | Nicht verfügbar | 3-Datei-Parquet mit 6 Komprimierungsoptionen |
| Demo-Projekte | 125+ | 140+ (15 neue) |
| Sicherheit | Grundlegend | CSRF, Rate-Limiting, CSP, sichere Sitzungen |
Potato 2.2.0
Veröffentlicht am 20. Februar 2026
Potato 2.2 ist ein großes Feature-Release mit 9 neuen Annotationsschemata, einem modularen Export-System, MACE-Kompetenzschätzung, 55 validierten Survey-Instrumenten und Remote-Datenquellen.
Neue Annotationsschemata (9)
Ereignisannotation. N-äre Ereignisstrukturen mit Trigger-Spans und typisierten Argumentrollen. Annotieren Sie Ereignisse wie ATTACK, HIRE und TRAVEL mit eingeschränkten Entitätsargumenten und einer sternförmigen Bogendarstellung (Hub and Spoke).
annotation_schemes:
- annotation_type: event_annotation
name: events
description: "Mark the event triggers and their arguments"
span_schema: entities
event_types:
- type: "ATTACK"
trigger_labels: ["EVENT_TRIGGER"]
arguments:
- role: "attacker"
entity_types: ["PERSON", "ORGANIZATION"]
required: trueMehr über Ereignisannotation →
Entitätsverknüpfung. Span-Annotationen mit externen Wissensdatenbanken verknüpfen (Wikidata, UMLS, benutzerdefinierte REST-APIs). Fügen Sie einem Span-Schema einen entity_linking:-Block hinzu, um KB-Suche und -Verknüpfung zu aktivieren.
Mehr über Entitätsverknüpfung →
Triage. Akzeptieren/Ablehnen/Überspringen-Oberfläche im Stil von Prodigy für schnelles Daten-Screening. Anpassbare Labels, Tastaturkürzel und automatisches Weiterschalten für Annotation mit hohem Durchsatz.
Paarweiser Vergleich. Zwei Elemente im Binärmodus (Klick auf die bevorzugte Kachel) oder im Skalenmodus (Schieberegler) vergleichen. Unterstützt items_key, allow_tie und einen scale:-Block mit konfigurierbarem Bereich.
Mehr über paarweisen Vergleich →
Gesprächsbäume. Hierarchische Gesprächsstrukturen mit Bewertungen pro Knoten, Pfadauswahl und Zweigvergleich annotieren.
Koreferenzketten. Koreferente Erwähnungen im Text mit visuellen Markierungen zu Ketten gruppieren. Unterstützt Entitätstypen, Singleton-Kontrolle und mehrere Hervorhebungsmodi.
Segmentierungsmasken. Neue Werkzeuge fill, eraser und brush für pixelgenaue Bildsegmentierung.
Begrenzungsrahmen für PDF/Dokumente. Boxen auf PDF-Seiten für Aufgaben der Dokumentannotation zeichnen.
Diskontinuierliche Spans. allow_discontinuous: true ermöglicht die Auswahl nicht zusammenhängender Textsegmente als einzelnen Span.
Intelligente Annotation
MACE-Kompetenzschätzung. Variational-Bayes-EM-Algorithmus, der gemeinsam die wahren Labels und Kompetenzwerte der Annotatoren (0,0–1,0) schätzt. Funktioniert mit radio-, likert-, select- und multiselect-Schemata.
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 3Options-Hervorhebung. LLM-basierte Hervorhebung wahrscheinlich korrekter Optionen für diskrete Annotationsaufgaben. Hebt die Top-k-Optionen mit einem Stern hervor und blendet weniger wahrscheinliche Optionen abgeschwächt ein.
ai_support:
option_highlighting:
enabled: true
top_k: 3
dim_opacity: 0.4Mehr über Options-Hervorhebung →
Diversitätssortierung. Embedding-basiertes Clustering und Round-Robin-Sampling, damit Annotatoren abwechslungsreiche Inhalte sehen und nicht ähnliche Elemente hintereinander.
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100Mehr über Diversitätssortierung →
Export-System
Eine neue modulare Export-CLI (python -m potato.export) konvertiert Annotationen in 6 branchenübliche Formate: COCO, YOLO, Pascal VOC, CoNLL-2003, CoNLL-U und Segmentierungsmasken.
python -m potato.export --config config.yaml --format coco --output ./export/Remote-Datenquellen
Annotationsdaten von URLs, S3, Google Drive, Dropbox, Hugging Face, Google Sheets und SQL-Datenbanken über den neuen Konfigurationsblock data_sources: laden. Enthält partielles Laden, Caching und Verwaltung von Zugangsdaten.
Mehr über Remote-Datenquellen →
Survey-Instrumente
55 validierte Fragebögen in 8 Kategorien (Persönlichkeit, psychische Gesundheit, Affekt, Selbstkonzept, soziale Einstellungen, Antwortstil, Kurzform, Demografie). Verwendbar in Prestudy- und Poststudy-Phasen mit instrument: "tipi".
Mehr über Survey-Instrumente →
Weitere Verbesserungen
- Video-Objektverfolgung mit Keyframe-Interpolation
- Unterstützung externer KI-Konfigurationsdateien
- Verbesserungen am Raster für Formularlayouts
- Format-Handler für PDF, Word, Code und Tabellenkalkulationen
Potato 2.1.0
Veröffentlicht am 5. Februar 2026
Potato 2.1 führt das Instanzanzeigesystem, visuelle KI-Unterstützung, Span-Verknüpfung, Mehrfeld-Span-Annotation und Layout-Anpassung ein.
Instanzanzeigesystem
Ein neuer Konfigurationsblock instance_display, der die Anzeige der Inhalte von der Annotation trennt. Beliebige Kombinationen von Bildern, Videos, Audio, Text und Dialogen neben beliebigen Annotationsschemata anzeigen.
instance_display:
fields:
- key: image_url
type: image
display_options:
max_width: 600
zoomable: true
- key: description
type: text
annotation_schemes:
- annotation_type: radio
name: category
description: "What category best describes this image?"
labels: [nature, urban, people]Unterstützt 24 Anzeigetypen, darunter text, html, image, video, audio, depth_map, dialogue, conversation_tree, pairwise, code, spreadsheet, document, pdf, gallery und fünf Agenten-Trace-Anzeigen.
Mehrfeld-Span-Annotation
Span-Annotationsschemata unterstützen jetzt eine Option target_field, um mehrere Textfelder derselben Instanz zu annotieren.
annotation_schemes:
- annotation_type: span
name: source_entities
description: "Label the entities in the source document"
labels: [PERSON, ORGANIZATION]
- annotation_type: span
name: summary_entities
description: "Label the entities in the summary"
labels: [PERSON, ORGANIZATION]Span-Verknüpfung
Ein neuer Annotationstyp span_link zum Erstellen typisierter Beziehungen zwischen annotierten Spans. Unterstützt gerichtete und ungerichtete Links, n-äre Beziehungen, eine visuelle Bogendarstellung und Einschränkungen nach Label.
annotation_schemes:
- annotation_type: span
name: entities
description: "Highlight the named entities in the text"
labels:
- name: "PERSON"
color: "#3b82f6"
- name: "ORGANIZATION"
color: "#22c55e"
- annotation_type: span_link
name: relations
description: "Link the entities that stand in a relation"
span_schema: entities
link_types:
- name: "WORKS_FOR"
directed: true
allowed_source_labels: ["PERSON"]
allowed_target_labels: ["ORGANIZATION"]
color: "#dc2626"Visuelle KI-Unterstützung
Vier neue Vision-Endpunkte für KI-gestützte Unterstützung bei der Bild- und Videoannotation:
- YOLO für schnelle lokale Objekterkennung
- Ollama Vision für lokale Vision-Language-Modelle (LLaVA, Qwen-VL)
- OpenAI Vision für GPT-4o-Vision in der Cloud
- Anthropic Vision für Claude mit Vision
Zu den Funktionen gehören Objekterkennung, Vorannotation, Klassifikation, Hinweise, Szenenerkennung, Keyframe-Erkennung und Objektverfolgung.
Mehr über visuelle KI-Unterstützung →
Layout-Anpassung
Eigene visuelle Layouts mit HTML-Vorlagen und CSS erstellen. Potato erzeugt eine bearbeitbare Layout-Datei, oder Sie stellen eine vollständig eigene Vorlage mit Grid-Layouts, farbcodierten Optionen und gestalteten Abschnitten bereit.
task_layout: layouts/custom_task_layout.htmlDrei Beispiel-Layouts sind enthalten: Content-Moderation, Dialog-QA und medizinische Überprüfung.
Label-Begründungen
Eine vierte KI-Funktion, die ausgewogene Erklärungen dafür erzeugt, warum jedes Label zutreffen könnte, und Annotatoren so hilft, verschiedene Sichtweisen auf die Klassifikation zu verstehen.
ai_support:
features:
rationales:
enabled: trueWeitere Verbesserungen
- 50+ neue Tests für höhere Zuverlässigkeit
- Verbesserungen am responsiven Design
- Bessere Organisation von project-hub mit Layout-Beispielen
- Fehlerbehebungen bei verschiedenen Annotationstypen
Vergleich v2.0 vs. v2.1
| Funktion | v2.0 | v2.1 |
|---|---|---|
| Instanzanzeige | Über Annotations-Workarounds | Eigener instance_display-Block |
| Span-Ziele | Einzelnes Textfeld | Mehrere Felder mit target_field |
| Span-Verknüpfung | Nicht verfügbar | Vollständiger span_link-Typ |
| Visuelle KI | Nicht verfügbar | YOLO, Ollama Vision, OpenAI Vision, Anthropic Vision |
| Layout-Anpassung | Einfach, automatisch generiert | Automatisch generiert + eigene Vorlagen |
| KI-Funktionen | 3 (Hinweise, Schlüsselwörter, Vorschläge) | 4 (+ Begründungen) |
Potato 2.0
Potato 2.0 ist ein Hauptrelease, das KI-Unterstützung, aktives Lernen, Trainingsphasen, mehrphasige Workflows und ein MySQL-Backend hinzufügt.
KI-Unterstützung
Binden Sie Large Language Models ein, um Annotatoren mit intelligenten Hinweisen, Hervorhebung von Schlüsselwörtern und Label-Vorschlägen zu unterstützen.
Unterstützte Anbieter:
- OpenAI (GPT-4, GPT-3.5)
- Anthropic (Claude 3, Claude 3.5)
- Google (Gemini)
- Ollama (lokale Modelle)
- vLLM (selbst gehostet)
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
hints:
enabled: true
label_suggestions:
enabled: trueAudio-Annotation
Vollwertige Audio-Annotation mit Wellenformvisualisierung auf Basis von Peaks.js. Segmente erstellen, Zeitbereiche labeln und Sprache mit Tastaturkürzeln annotieren.
Hauptfunktionen:
- Wellenformvisualisierung
- Erstellen und Labeln von Segmenten
- Annotationsfragen pro Segment
- 15+ Tastaturkürzel
- Serverseitiges Caching der Wellenformen
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark each speaker turn in the audio"
mode: label
labels:
- Speaker A
- Speaker BAktives Lernen
Annotationsinstanzen automatisch nach Modellunsicherheit priorisieren. Klassifikatoren auf vorhandenen Annotationen trainieren und Annotatoren auf die informativsten Beispiele lenken.
Funktionen:
- Mehrere Klassifikatoren zur Auswahl (LogisticRegression, RandomForest, SVC, MultinomialNB)
- Verschiedene Vektorisierer (TF-IDF, Count, Hashing)
- Modellpersistenz über Neustarts hinweg
- LLM-gestützte Auswahl
- Unterstützung mehrerer Schemata
active_learning:
enabled: true
schema_names:
- sentiment
min_instances_for_training: 30
update_frequency: 50
classifier:
type: LogisticRegressionTrainingsphase
Annotatoren vor der Hauptaufgabe mit Übungsfragen qualifizieren. Sofortiges Feedback geben und die Qualität durch konfigurierbare Bestehenskriterien sichern.
Funktionen:
- Übungsfragen mit bekannten Antworten
- Sofortiges Feedback und Erklärungen
- Konfigurierbare Bestehenskriterien
- Wiederholungsoptionen
- Fortschrittsverfolgung im Admin-Dashboard
phases:
training:
enabled: true
data_file: "data/training.json"
passing_criteria:
min_correct: 8
total_questions: 10Mehr über die Trainingsphase →
Erweitertes Admin-Dashboard
Umfassende Oberfläche zur Überwachung und Verwaltung von Annotationsaufgaben.
Dashboard-Tabs:
- Übersicht: Übergeordnete Kennzahlen und Abschlussraten
- Annotatoren: Leistungsverfolgung, Zeitanalyse
- Instanzen: Daten mit Werten zur Uneinigkeit durchsuchen
- Konfiguration: Einstellungen in Echtzeit anpassen
admin_api_key: ${ADMIN_API_KEY}Mehr über das Admin-Dashboard →
Datenbank-Backend
MySQL-Unterstützung für groß angelegte Deployments mit Connection-Pooling und Transaktionsunterstützung.
database:
type: mysql
host: localhost
database: potato_db
username: ${DB_USER}
password: ${DB_PASSWORD}Potato erstellt beim ersten Start automatisch die erforderlichen Tabellen.
Annotationsverlauf
Vollständige Protokollierung aller Annotationsänderungen mit Zeitstempeln, Benutzer-IDs und Aktionstypen. Ermöglicht Audits und Verhaltensanalysen.
{
"history": [
{
"timestamp": "2024-01-15T10:30:00Z",
"user": "annotator_1",
"action": "create",
"schema": "sentiment",
"value": "Positive"
}
]
}Mehrphasige Workflows
Komplexe Annotations-Workflows mit mehreren aufeinanderfolgenden Phasen aufbauen:
- Einwilligung - Einholen der informierten Einwilligung
- Vorstudie - Demografie und Screening
- Anweisungen - Aufgabenrichtlinien
- Training - Übungsfragen
- Annotation - Hauptaufgabe
- Nachstudie - Feedback-Umfragen
phases:
consent:
enabled: true
data_file: "data/consent.json"
prestudy:
enabled: true
data_file: "data/demographics.json"
training:
enabled: true
data_file: "data/training.json"
poststudy:
enabled: true
data_file: "data/feedback.json"Mehr über mehrphasige Workflows →
Konfigurationsänderungen in v2.0
Neue Konfigurationsstruktur
Potato 2.0 verwendet ein übersichtlicheres Konfigurationsformat:
v1 (alt):
data_files:
- data.json
id_key: id
text_key: text
output_file: annotations.jsonv2 (neu):
data_files:
- "data/data.json"
item_properties:
id_key: id
text_key: text
output_annotation_dir: "output/"
export_annotation_format: "jsonl"Sicherheitsanforderung
Konfigurationsdateien müssen jetzt innerhalb des task_dir liegen.
Liegt die Konfiguration neben den Daten, ist das Aufgabenverzeichnis das aktuelle Verzeichnis:
task_dir: "."Liegt die Konfiguration in einem Unterverzeichnis, geben Sie das Projektverzeichnis an, zu dem sie gehört:
task_dir: "my_project/"Schnellvergleich
| Funktion | v1 | v2.0 | v2.1 | v2.2 | v2.3 |
|---|---|---|---|---|---|
| KI/LLM-Unterstützung | Nein | Ja | Ja + Visuelle KI + Begründungen | + Options-Hervorhebung | + Solo-Modus |
| Agentische Annotation | Nein | Nein | Nein | Nein | 12 Konverter, 3 Anzeigen |
| Best-Worst Scaling | Nein | Nein | Nein | Nein | Ja (3 Bewertungsmethoden) |
| Audio-Annotation | Grundlegend | Vollständige Wellenform | Vollständige Wellenform | Vollständige Wellenform | Vollständige Wellenform |
| Aktives Lernen | Nein | Ja | Ja | Ja + Diversitätssortierung | + Integration in den Solo-Modus |
| Instanzanzeige | Nein | Nein | Ja | Ja | Ja |
| Span-Verknüpfung | Nein | Nein | Ja | Ja | Ja |
| Ereignisannotation | Nein | Nein | Nein | Ja | Ja |
| Entitätsverknüpfung | Nein | Nein | Nein | Ja | Ja |
| Paarweise/Triage/Koreferenz/Bäume | Nein | Nein | Nein | Ja | Ja |
| Layout-Anpassung | Nein | Automatisch generiert | Automatisch + eigene Vorlagen | Automatisch + eigene Vorlagen | Automatisch + eigene Vorlagen |
| Trainingsphase | Nein | Ja | Ja | Ja | Ja |
| Admin-Dashboard | Grundlegend | Erweitert | Erweitert | Erweitert + MACE | + BWS-Tab, Solo-Modus |
| Datenbank-Backend | Nur Datei | Datei + MySQL | Datei + MySQL | Datei + MySQL | Datei + MySQL |
| Export-CLI | Nein | Nein | Nein | Ja (COCO, YOLO, CoNLL usw.) | + Parquet |
| Authentifizierung | Benutzername | Benutzername | Benutzername | Benutzername | + Google/GitHub OAuth, OIDC |
| Survey-Instrumente | Nein | Nein | Nein | 55 validierte Fragebögen | 55 validierte Fragebögen |
| Remote-Datenquellen | Nein | Nein | Nein | S3, GDrive, HuggingFace usw. | S3, GDrive, HuggingFace usw. |
Migrationsleitfaden
Konfiguration aktualisieren (v1 auf v2)
-
Datenkonfiguration
yaml# Old id_key: id text_key: text # New item_properties: id_key: id text_key: text -
Ausgabekonfiguration
yaml# Old output_file: annotations.json # New output_annotation_dir: "output/" export_annotation_format: "jsonl" -
Speicherort der Konfigurationsdatei Stellen Sie sicher, dass Ihre Konfigurationsdatei im Projektverzeichnis liegt.
Server starten
# v2 command
python -m potato start config.yaml -p 8000
# Or shorthand
potato start config.yamlEinstieg
Möchten Sie Potato ausprobieren? Beginnen Sie mit der Schnellstart-Anleitung oder sehen Sie sich einzelne Funktionen an:
Funktionen in v2.3:
- Agentische Annotation - KI-Agenten mit Trace-Konvertern und Anzeigen auf Schrittebene bewerten
- Solo-Modus - Labeln in Zusammenarbeit von Mensch und LLM
- Best-Worst Scaling - Vergleichende Annotation mit Bewertung
- SSO & OAuth - Authentifizierung über Google, GitHub und OIDC
- Parquet-Export - Spaltenbasierter Datenexport
Funktionen in v2.2:
- Ereignisannotation - N-äre Ereignisstrukturen
- Entitätsverknüpfung - Verknüpfung mit Wissensdatenbanken
- Triage - Schnelles Daten-Screening
- Koreferenzketten - Koreferenz von Entitäten
- Gesprächsbäume - Hierarchische Dialog-Annotation
- MACE - Schätzung der Annotator-Kompetenz
- Options-Hervorhebung - KI-gestützte Orientierung bei den Optionen
- Diversitätssortierung - Embedding-basierte Sortierung der Elemente
- Export-Formate - Export-CLI mit 6 Formaten
- Remote-Datenquellen - Laden von Daten aus der Cloud
- Survey-Instrumente - 55 validierte Fragebögen
Funktionen in v2.1:
- Instanzanzeige - Anzeige multimodaler Inhalte
- Visuelle KI-Unterstützung - KI für Bild- und Videoannotation
- Span-Verknüpfung - Annotation von Beziehungen zwischen Entitäten
Kernfunktionen:
- KI-Unterstützung - Intelligente Unterstützung bei der Annotation
- Aktives Lernen - Intelligente Priorisierung von Instanzen
- Audio-Annotation - Annotation auf der Wellenform
- Trainingsphase - Qualifikation von Annotatoren
- Admin-Dashboard - Überwachung und Verwaltung