Что нового
Potato v2.x: в 2.8 появились компьютерное зрение, 3D-облака точек, карты глубины, эпизоды роботов, оценка моделей мира и согласованность по геометрии и времени.
На этой странице собраны новые функции и улучшения выпусков Potato v2.x.
Potato 2.11.1
Выпущено в октябре 2026 года
В Potato 2.11.1 команда potato start config.yaml --debug снова запускается на адресе по умолчанию, обучение моделей научилось строить классификаторы изображений, а предварительные метки больше не теряются при каждом перезапуске.
pip install --upgrade potato-annotationРежим отладки
С 2.8.2 по 2.11.0 отладочный сервер на адресе по умолчанию 0.0.0.0 отказывался запускаться, если не был указан --host 127.0.0.1. В 2.11.1 он запускается на любом адресе, и другие машины в сети могут к нему подключиться. Что теперь делает режим отладки, описано в руководстве по отладке:
- Страница входа остаётся, пока вы не добавите
--debug-phase. С--debug-phaseкаждый посетитель входит как общий пользовательdebug_user, поэтому не используйте этот флаг в настоящем исследовании. - Админ-страницы открываются без ключа только для запросов с машины самого сервера, то есть с loopback-адреса без заголовков
X-Forwarded-For,X-Real-IPиForwarded. Это правило действует и при привязке к127.0.0.1, где 2.11.0 пропускала любой запрос: прокси или туннель на той же машине пересылает на127.0.0.1запросы с других машин. - Интерактивный отладчик Werkzeug работает только при привязке к
127.0.0.1, потому что он выполняет код, набранный в браузере.
POTATO_ALLOW_REMOTE_DEBUG больше не читается. Команда отладки с --host 127.0.0.1 по-прежнему работает и по-прежнему даёт интерактивный отладчик.
Классификация изображений и предварительные метки
- Обучение моделей строит классификаторы изображений. Схема radio или multiselect, объекты которой указывают на файлы изображений, обучается на эмбеддингах CLIP. Раньше на путях к файлам обучался TF-IDF. Удалённые или отсутствующие изображения пропускаются с предупреждением.
- Активное обучение на изображениях работает так, как описано в документации.
vectorizer: {name: image}создаёт векторизатор CLIP. Раньше менеджер не умел создавать векторизатор с таким именем, и такое исследование ранжировалось по TF-IDF над путями к файлам. - Движок разметки дистиллирует классификаторы изображений в исследовании изображений (
labeling_engine.distill.modality). - Предварительные метки для неразмеченных объектов.
model_training.writeback.include_unlabeled: trueделает предсказания для объектов, которые ещё никто не разметил. Раньше запуск предсказывал только отложенные объекты, уже получившие метки, поэтому обратная запись так и не доходила до объектов, ради которых нужна предварительная метка.
Запуски обучения, обратная запись и очередь проверки описаны в документации по обучению моделей.
Исправления, которые затрагивают прежние исследования
- Предварительные метки не переживали перезапуск. Повторное применение сохранённых предсказаний при запуске выполнялось до загрузки объектов, поэтому очередь проверки модели опустошалась при каждом перезапуске. Теперь оно выполняется после загрузки объектов и применяет те же проверки, что и обратная запись.
- Текстовая модель обучалась на URL. Для объектов с полем
url,pathилиfile_nameобучающий модуль получал значение этого поля вместо текста. - Сброс пароля не работал при SSO. С
method: oauthиallow_local_loginкаждый сброс завершался исключением. Теперь пароли локальных учётных записей можно сбросить. ai_supportотклонял OpenRouter. Теперьendpoint_type: openrouterпринимается.
Полный список приведён в заметках о выпуске.
Potato 2.11.0
Выпущено в октябре 2026 года
В Potato 2.11.0 появился движок разметки. Он размечает набор данных моделями и по слепой случайной выборке человеческих меток измеряет, как часто модели ошибаются. Вы указываете, каким условиям должны удовлетворять готовые метки, например «не более 5% принятых машинных меток ошибочны, с доверием 90%». Движок принимает машинные метки, которые подтверждает статистический тест, отправляет остальное людям и пишет сертификат, где записано, что проверялось и на скольких человеческих метках. Настройка описана на странице Движок разметки.
Неактивные сессии теперь завершаются, по умолчанию через 8 часов. До 2.11.0 session_timeout_minutes не действовал в запущенном приложении: проверка регистрировалась на объекте приложения, который potato start отбрасывает. Теперь сессия, простаивающая дольше заданного значения (по умолчанию 480 минут), очищается, и её следующий запрос попадает на страницу входа. На киосках и общих лабораторных машинах, которые остаются в системе на ночь, начнутся выходы из системы, поэтому увеличьте session_timeout_minutes там, где это важно.
pip install --upgrade potato-annotationДвижок разметки
Движок включают блок labeling_engine и assignment_strategy: engine. Его источники представляют собой модели, которые опрашиваются в порядке каскада, а после последнего источника объект уходит к людям. Каждый контракт относится к одной схеме разметки и проверяется по человеческим меткам, которые движок запрашивает случайно и показывает вслепую: на странице нет ни предразметки, ни вердикта судьи, ни помощи ИИ.
- Источники. LLM, визуально-языковые модели, модели принятия решений (Laya и любой сервер
/v1/systemone), детекторы YOLO, LLM-судьи с перестановкой порядка меток, жюри, модели, обученные на метках самого исследования, и метки, которые у вас уже есть. - Контракты.
selective_riskограничивает долю ошибочных среди принятых машинных меток при заданном доверии.ppiдаёт интервалы для распространённости или среднего, которые остаются корректными при любом качестве модели.no_worse_than_humanзапускает тест альтернативного разметчика,budget_firstпрогнозирует, что даст бюджет человеческих меток, аdistributionalсравнивает метки модели с тем, как расходятся люди на субъективных объектах. - Модальности. Схемы с выбором одного из N, порядковые, числовые и многометочные схемы, области изображений, аудио, видео, сегменты временной привязки и многоуровневой разметки, 3D-объекты и метки шагов в трассах агентов. Области, сегменты, 3D-объекты и трассы оцениваются теми же мерами, что и в отчёте о согласованности.
- Аудиты. Часть принятых машинных меток вслепую возвращается людям. Когда аудиты показывают долю ошибок выше целевой, движок перестаёт принимать машинные метки по этой схеме (при
features.drift, который включён по умолчанию), а повторная сертификация восстанавливает приём. - Интерфейсы.
potato label run|status|certify|certificate|export|calls|distill|optimize|migrate-config, REST API по адресу/api/engine/v1, пять MCP-инструментовengine_*, Python SDK и админ-страница/admin/labeling-engine.
Выполненный контракт является статистическим утверждением о согласии с людьми, которые разметили выборку. Движок не проверяет, правы ли эти люди, поэтому контракт, проверенный на ненадёжных разметчиках, сертифицирует согласие с ненадёжными разметчиками. Что проверяет каждый контракт и когда он не выполняется, описано на странице Контракты движка разметки.
icl_labeling, judge_calibration и pre_annotation продолжают работать, и каждый при запуске выводит примечание, где назван его эквивалент в движке. potato label migrate-config пишет эквивалентный блок labeling_engine. Solo Mode и согласование судьи не объявлены устаревшими. Таблица соответствия приведена на странице Переход на движок разметки.
Согласованность
/admin/iaaохватывает больше схем.spatial_annotation,temporal_grounding,tiered_annotationи схемы для трасс агентов (process_reward,trajectory_eval,tool_call_review,failure_attribution,gui_trajectory) раньше пропускались как неподдерживаемые, а теперь оцениваются./admin/api/agreementбольше не сообщает структурированные схемы. После сведения к названиям меток трассы агентов, сегменты, области и 3D-объекты показывали полное согласие у любой пары разметчиков. Теперь маршрут отсылает к/admin/iaa, который сравнивает сами структуры.- Два одинаковых сегмента нулевой длины теперь согласуются. Раньше они оценивались как полное несогласие.
- Машинные оценщики не попадают в публикуемые показатели. Publishing и Paper Mode исключают машинных оценщиков из золотых меток и показателей согласованности.
Solo Mode
- Слепые подсказки.
solo_mode.suggestionsскрывает метку LLM на всех объектах или на выборке, и при передаче решения согласие считывается по слепым объектам, потому что подсказка на экране тянет к себе ответ проверяющего. - Лимит расходов и кэш ответов.
ai_budget.cap_usdпроверяется перед началом разметки и перед каждым пакетом, аsolo_mode.cacheповторно использует ответ на повторяющийся вызов. - Модели принятия решений. Эндпоинты
systemoneиlayaразмечают схемы с фиксированным выбором за один прямой проход и служат быстрым первым уровнем. Конфигурация есть на странице Solo Mode. - Золотой набор, жюри и учебная программа.
solo_mode.goldоценивает промпт на известных метках до полного запуска,solo_mode.juryзаставляет несколько моделей голосовать по каждому объекту, аinstance_selection.curriculumначинает с объектов, которые LLM сочла самыми лёгкими. Также появилась проверка чувствительности к промпту.
Исправления, которые затрагивают исследования на 2.10
- Страница с изображением сама сохраняла предзаполненный ответ. В схеме
image_annotationсpre_annotationхолст сохранял предзаполненные фигуры как ответ разметчика, когда перестраивал раскладку после загрузки, и нетронутый объект считался отвеченным. Теперь сохраняет только правка. В исследовании изображений на 2.10 с предразметкой часть объектов, засчитанных как отвеченные, могла остаться нетронутой. - Изображения с хостов без заголовков CORS не загружались. Хост, который не отправляет заголовок
Access-Control-Allow-Origin, например cocodataset.org, отклонял запрос холста, и страница показывала «Failed to load image». Теперь страница загружает такое изображение без CORS. Рисование работает, а заливка области, SAM и сегментация по текстовому запросу, которым нужны пиксели изображения, сообщают, почему не могут работать. - Фигура из предразметки без
colorотбрасывалась. Объект показывал «Annotations: 0» без какого-либо предупреждения. Теперь фигура берёт цвет своей метки. - Кнопка «Generate prompt» в Solo Mode никогда не вызывала модель. Теперь она просит модель ревизии написать первый промпт. Без модели ревизии она берёт описание задачи и сообщает об этом.
- Отказы через
potato mcp connectвыглядели как успешные вызовы. Отклонённый вызов инструмента возвращался сisError: false, а теперь возвращается как ошибка инструмента с сообщением сервера. - В примере каркаса полного исследования был мёртвый ключ. Potato не читает
training.feedback.enabled, поэтому теперь пример задаётfeedback.show_explanations. - Неактивные сессии никогда не завершались, как описано в начале этого раздела.
- Арбитраж учитывал машинных оценщиков. Машинные разметчики могли отправить объект на арбитраж,
min_human_annotationsигнорировался, а отсутствующий показатель согласованности приводил к сбою форматирования. - Автомасштабирование Prolific учитывало машинную разметку и игнорировало лимиты на объект. Теперь число открываемых мест считает только человеческую разметку относительно лимита каждого объекта.
- Поиск пограничных случаев ничего не делал на vLLM. Управляемое декодирование на vLLM никогда не возвращало поля пограничных случаев, а теперь они входят в схему ответа.
Полный список приведён в заметках о выпуске.
Potato 2.10.3
Выпущено в октябре 2026 года
Potato 2.10.3 исправляет три ошибки, найденные в 2.10.2 после её публикации.
pip install --upgrade potato-annotation- Согласованность на единодушных данных. Когда все разметчики давали одинаковый ответ на каждом объекте,
/admin/api/agreementвозвращал схему как{"error": "float division by zero"}. В таком случае случайное согласие равно 1, поэтому альфа и обе каппы не определены. Теперь маршрут сообщает их какnull, сpercent_agreement, равным 1,0, и тем же примечанием, что даёт/admin/iaa, а общее среднее не учитывает эту схему. potato deploy button --dry-runостаётся офлайн. Без--hf-backup-repoпробный запуск спрашивал у HuggingFace, кому принадлежит токен, и неверный токен заканчивался трассировкой стека. Теперь пробный запуск использует заглушку<hf-account>/<name>-annotations, как иpotato deploy up --dry-run, а настоящий запуск сообщает об отклонённом токене сообщением об ошибке.- Импорт Potato больше не хеширует пароль. Potato вычислял хеш PBKDF2 при импорте, поэтому каждый процесс, включая инструменты командной строки, тратил при запуске 100 000 итераций. Теперь хеш вычисляется, когда неизвестное имя пользователя впервые пытается войти. Импорт также снова работает под Pyodide, в
hashlibкоторого нетpbkdf2_hmac.
Полный список приведён в заметках о выпуске.
Potato 2.10.2
Выпущено в октябре 2026 года
Potato 2.10.2 чинит функции, которые не работали при установке через pip или из образа Docker, закрывает способы войти под чужой учётной записью, делает рабочим бэкенд MySQL и исправляет статистику согласованности. Если вы публиковали показатели согласованности, полученные в более ранней версии, пересчитайте их.
pip install --upgrade potato-annotation- Учётные записи SSO принимали любой пароль. В задаче с OAuth форма пароля впускала кого угодно в учётную запись, зарегистрированную провайдером. Теперь личности SSO не проходят аутентификацию по паролю, а в исследовании на MySQL посторонний больше не может зарегистрировать имя существующего разметчика и унаследовать его работу.
ai_supportи опросные инструменты не работали после установки через pip. В wheel не попали промпты ИИ и опросные инструменты, поэтому исследование, использующее одно из них, останавливалось при запуске. Контейнеры и целиpotato deployтакже пропускали десять подсистем, в том числе поддержку чата.- Бэкенд MySQL так и не включался. Конфигурация, в которой он был указан, хранила разметку на диске. Установите драйвер командой
pip install 'potato-annotation[mysql]'. Экспорт, резервные копии иpotato deploy pullтеперь читают базу данных. - 59 исправлений статистики согласованности, каждое проверено по эталонной реализации, например scipy, sklearn или пакету
krippendorff. Неопределённый коэффициент сообщается как неопределённый, а не как 1,0, порядковая альфа использует порядковую метрику Криппендорфа, MACE оценивает компетентность чистых спамеров примерно в 0,01 вместо 0,35, результаты больше не меняются после перезапуска, аplackett_luceподгоняет правдоподобие best-worst вместо повторения Брэдли-Терри. - Облака точек в картографических координатах сохраняют точность. LAS-файл в координатах UTM отрисовывался на сетке с шагом до 0,5 м. Теперь Potato отдаёт его относительно локального начала координат и сохраняет разметку в собственных координатах файла.
Полный список приведён в заметках о выпуске.
Potato 2.10.1
Выпущено в октябре 2026 года
Potato 2.10.1 исправляет пять проблем в potato deploy и резервном копировании, найденных после 2.10.0. Обновитесь, прежде чем полагаться на пробный запуск.
pip install --upgrade potato-annotation- Пробный запуск проходил для развёртываний, от которых
upзатем отказывался. Heroku или ECS Express без--backup, Render или Railway без хранилища резервных копий, куда загружается проект, и Fly со слишком большим для встроенной передачи проектом печатали чистый план. Теперь план иupвыполняют одну и ту же проверку, и оба печатаютREFUSED: <reason>и завершаются с кодом 2. --demoпредлагался там, где он не может работать. Render, Railway и ECS Express загружают проект в хранилище резервных копий, поэтому им нужен--backup hfили--backup s3даже для одноразового исследования. Теперь предварительное предупреждение предлагает--demoтолько для Heroku и HuggingFace.--cloud jetstream2планировал не тот тип инстанса. Пробный запуск показывалm1.small, аupсоздавалm3.small.- Две цены были неверными.
potato deploy providersсообщал около $16 в месяц дляaws-ec2и около $7 дляfly. Планы вычисляют $18.31 и $5.85, и теперь в сводках указано около $18 и около $6. backup: {enabled: false}не отключал резервное копирование, если в конфигурации оставался блокhuggingface_backup. Теперь приоритет у нового блока.
Полный список приведён в заметках о выпуске.
Potato 2.10.0
Выпущено в октябре 2026 года
Potato 2.10.0 добавляет в potato deploy восемь хостинговых платформ, создаёт резервные копии разметки на хостах, диск которых не переживает перезапуск, и вводит text_as_image: текст каждого объекта показывается картинкой, чтобы разметчики не могли вставить его в чат-бот. Какой хост подходит для какого исследования, показано на странице Запуск Potato локально или в облаке.
Теперь объявлена зависимость от Python 3.9 или новее. Этого уже требовала одна из основных зависимостей, поэтому и более ранние выпуски нельзя было установить на 3.7 или 3.8, а теперь pip сообщает об этом до начала установки.
pip install --upgrade potato-annotationРазвёртывание
- AWS тремя способами.
--provider awsсоздаёт инстанс Lightsail по фиксированной цене $12 в месяц, которому нужны только праваlightsail:*.aws-ec2предназначен для учётных записей, где Lightsail отключён, аaws-ecsзапускает контейнер в ECS Express Mode за HTTPS-адресом, которым управляет AWS. Это обходится дороже и требует резервного копирования. - Heroku, на одном dyno уровня Basic. Heroku ежедневно стирает диск, поэтому Potato отказывается развёртывать там без
--backupили--demo. - Fly и Railway, каждый с постоянным томом.
- Hetzner, Vultr и Linode в виде виртуальных машин, настроенных так же, как DigitalOcean, с сертификатом Let's Encrypt для IP-адреса.
- OpenStack с пресетом для Jetstream2. Jetstream2 даёт каждому инстансу DNS-имя, поэтому задача получает обычный сертификат. Университетские облака OpenStack и EGI тоже подходят.
- Кнопки развёртывания.
potato deploy button config.yaml --target heroku|render|aws|railwayзаписывает в ваш репозиторий файлы для кнопки «Deploy to Heroku», «Deploy to Render» или AWS «Launch Stack», чтобы другие люди могли запустить задачу в своих учётных записях.
Новые extras deploy-aws и deploy-openstack устанавливают клиенты AWS и OpenStack.
Резервное копирование и восстановление
Новый блок backup каждые пять минут копирует выходные данные разметки и снимки баз SQLite в набор данных HuggingFace, в S3-совместимый бакет или в оба. Когда сервер запускается с пустым каталогом задачи, а в резервной копии есть данные, Potato восстанавливает их до загрузки чего-либо ещё, и после перезапуска разметчики продолжают с того места, где остановились. Передайте potato deploy up флаг --backup hf, --backup s3 или --backup hf,s3. Старый блок huggingface_backup читается как блок backup с одним приёмником и выключенным восстановлением, поэтому существующие развёртывания ведут себя как прежде.
Текст как изображение
text_as_image: true отрисовывает текст каждого объекта в PNG на сервере и убирает слова со страницы, из встроенной записи объекта и из JSON-эндпоинтов, так что разметчику нечего выделить, скопировать или вставить. Функция делает вставку объекта в чат-бот дороже, но разметчик по-прежнему может перепечатать текст или прогнать снимок экрана через OCR. Программа экранного доступа ничего не получает из картинки, поэтому функция не подходит для исследования, где разметчики ею пользуются. Potato отказывается запускаться, если text_as_image сочетается со схемой спанов, со схемой, которая читает текстовое поле объекта, с Pocket Mode или с Rooms. Автор: @Eyecatch3r, PR #169.
Исправления, которые затрагивают собранные данные
- Перезапуск на хосте без постоянного диска терял прежнюю работу. Сервер запускался пустым, и новое состояние вернувшегося разметчика перезаписывало резервную копию. Восстановление при запуске это исправляет.
- DigitalOcean с
--volume-gbхранил разметку на корневом диске, а не на томе. Теперь выходные данные и базы SQLite лежат в/data. - Резервное копирование в HuggingFace ничего не делало в опубликованном образе, где не было
huggingface_hub, а на Render и DigitalOcean--hf-tokenзадавал переменную, которую никто не читал. Теперь образ устанавливает новый extrahosting. - Развёртывания на Render запускались без проекта, и контейнер завершался с ошибкой «config file not found». Теперь контейнер скачивает проект при запуске и проверяет его sha256.
Полный список приведён в заметках о выпуске.
Potato с 2.9.2 по 2.9.4
Выпущено в сентябре 2026 года
Обновитесь до 2.9.4 или новее, если к вашему серверу могут обратиться люди, которым вы не доверяете. До 2.9.4 форма /forgot-password создавала токен сброса для любого отправленного имени пользователя и показывала ссылку для сброса прямо на странице, поэтому любой, кто мог обратиться к серверу, мог захватить любую учётную запись с паролем, включая администраторские (GHSA-43v4-43pw-4rp2). Теперь форма не создаёт токенов. Ссылки для сброса выдают только POST /admin/create_reset_token и команда potato reset-password. Сообщил об уязвимости и прислал исправление HDEF.
- Телефоны (2.9.4). На сенсорных экранах элементы управления имеют высоту не менее 44 px, заголовок занимает две строки вместо трёх, multirate превращается в список подписанных строк, а выделение спанов работает по долгому нажатию.
- Машинные разметчики (2.9.4). Блок
machine_annotatorsобъявляет оценщиков, которые являются программами, например детекторы или LLM. Тогда/admin/iaaсообщает согласованность человек-человек, машина-машина и общую, с итоговыми цифрами только по людям, а экспорт в csv, tsv и parquet получает столбецannotator_origin, если хотя бы одна запись поступила от машины. - Cookie сессии за префиксом URL (2.9.4). Два исследования, обслуживаемые на одном хосте под
/app1и/app2, делили одну cookie сессии, поэтому вход в одно выводил из другого. Теперь cookie ограничена префиксом. Исправил @Eyecatch3r в PR #172. - Более быстрая навигация (2.9.2). Скрипты и таблицы стилей остаются в кэше между объектами, а Next требует меньше обменов с сервером. На соединении с задержкой 80 мс на обмен переход Next в задаче с радиокнопками сократился примерно с 2,6 с до примерно 0,8 с.
- Правки текста прямо перед Next (2.9.2). Если очистить текстовое поле и нажать Next в течение секунды, сохранялся старый текст. Теперь каждое сохранение сначала применяет ожидающие правки.
Potato 2.9.0
Выпущено в сентябре 2026 года
Potato импортирует проекты из brat, doccano, Prodigy, CoNLL и REFI-QDA, а также локально транскрибирует и диаризует аудио. Экспорт записывает, нарисовал ли фигуру на изображении человек, предложила ли её модель или она была импортирована, и в какой комнате был отдан голос. Большая часть выпуска состоит из исправлений ошибок.
Перед обновлением запустите potato validate --strict на каждой конфигурации. Из-за нескольких изменений работающее исследование на 2.8.2 может отказаться запускаться или начать вести себя иначе: повторяющиеся имена схем в одной фазе отклоняются, min_annotators_per_instance стал псевдонимом лимита на объект, require_fully_annotated: true соблюдается, фаза, которая не загрузилась, прерывает запуск, а смещения спанов считаются в кодовых точках, а не в единицах UTF-16. Значения согласованности для схем со значениями-множествами, значениями-порядками, матричных схем и порядковых схем с подписями меняются, и их нужно пересчитать. Полный список приведён в заметках о выпуске.
pip install --upgrade potato-annotationИмпорт и экспорт
- Импорт из brat, doccano, Prodigy, CoNLL-2003/CoNLL-U и REFI-QDA
.qdpx, а также экспорт в.qdpx. См. Импорт проекта. - Происхождение в экспорте. Каждая фигура на изображении записывает, нарисовал ли её человек или предложила модель (
source,ai_model,confidence,edited,carried_over,import_format). Голоса, отданные в многопользовательской комнате, несут комнату, роль, первоначальный голос, изменился ли он после раскрытия и число голосующих. - Экспорт спанов в csv, jsonl и parquet включает покрытый текст.
- Появился
python -m potato.export --format adjudication, и у каждого типа схемы теперь есть элемент арбитража «принять ответ» (раньше он был только у radio и likert).
Аудио, видео и транскрипты
- Локальная транскрипция и диаризация говорящих с помощью faster-whisper и sherpa-onnx, без PyTorch и без токена Hugging Face: установите
potato-annotation[transcribe], затем запуститеpotato transcripts <dir> --transcribe --diarize --num-speakers N -o out.json. См. Форматы транскриптов. segment_schemesотрисовывает любой тип разметки внутри аудио- или видеосегмента. Раньше этот ключ принимался и игнорировался.
Согласованность, качество и ИИ
- Согласованность во времени, сопоставленная с ревизиями кодбука, с триггером повторной калибровки на
/admin/iaa. - Режим проверки выходов модели, который включает срез пустых предсказаний, чтобы можно было посчитать полноту.
ai_budget.cap_usdотказывается начинать запуск, который не укладывается в бюджет, аai_budget.pricesзадаёт тарифы для каждой модели в конфигурации.ai_supportзаписываетfinal_annotationиpre_annotation_seeds, поэтому долю принятых подсказок можно измерить на ваших собственных данных.
Развёртывание и интерфейс
- Поддержка обратного прокси и префикса пути на каждой странице (#168, Aldo Costa). См. Обратный прокси.
card_sortработает без мыши, а перемещения объявляются программам экранного доступа.resizable,max_heightиmin_heightработают в каждом типе отображения.
Исправления, которые влияют на результаты
/admin/api/agreementникогда не выдавал число и сравнивал хранимые значения, а не названия меток, поэтому каждая категориальная схема показывала полное согласие.- Второго разметчика в исследовании с двумя разметчиками на объект отправляло на страницу завершения, и все ответы, которые он затем давал, терялись.
- Подсказки ИИ относились не к тому объекту при любой стратегии распределения, кроме
fixed_order. - В конфигурации по умолчанию с хранением в памяти регистрации не сохранялись, поэтому после перезапуска кто угодно мог занять существующее имя пользователя.
Спасибо Aldo Costa (@Eyecatch3r) за #168 и #171, а также @ruthenian8 за сообщение о проблеме #170 и её диагностику.
Potato 2.8.2
Выпущено в августе 2026 года
В 2.8.1 не вошли два из пяти исправлений безопасности, описанных в её заметках о выпуске: исправление SSRF в медиаэндпоинтах (GHSA-9394-85jj-2mhj) и усиление защиты режима отладки (GHSA-r4ww-vc5h-35qf). В 2.8.2 есть оба. Если вы обновились до 2.8.1 ради одной из этих проблем, обновитесь ещё раз. См. заметки о выпуске 2.8.2.
Potato 2.8.1
Выпущено в августе 2026 года
Выпуск безопасности. Он исправил удалённое выполнение кода через live coding agent (GHSA-cm4p-5rfv-x252), конфигурацию администратора, которую можно было прочитать без ключа администратора, и вебхук приёма трасс, принимавший любой запрос. Обновитесь, если Potato у вас работает где-либо, кроме localhost, и переходите сразу на 2.8.2, где есть два исправления, которых не хватало в 2.8.1.
Potato 2.8.0
Выпущено в августе 2026 года
Potato был платформой для разметки текста с режимом для изображений. Теперь он охватывает изображения, видео, гигапиксельные сканы, 3D-облака точек, карты глубины, эпизоды роботов, прогоны генеративного видео и визуально-языковую привязку. Для каждого из них он сообщает согласованность с поправкой на случайность.
Обновитесь, если устанавливали Potato из PyPI. Wheel-пакеты вплоть до 2.7.1 объявляли данные пакета одноуровневым glob-шаблоном, поэтому 27 шаблонов в подкаталогах отсутствовали в каждом wheel. Маршруты настройки Solo Mode, админ-страницы, калибровка судьи и карта корпуса не работали у всех, кто выполнил pip install; те, кто запускал Potato из git-клона, проблемы не видели. Исправлено в PR #164 автором @0x6362.
pip install --upgrade potato-annotationСогласованность по геометрии и времени
- Согласованность с поправкой на случайность для пространственных меток, разложенная на обнаружение (нашли ли разметчики одни и те же объекты), классификацию (назвали ли они их одинаково) и локализацию (поместили ли они их в одно и то же место; она сообщается как σ относительно эмпирического случайного уровня вместе с тестом Колмогорова-Смирнова).
- STAPLE для консенсуса масок. Он оценивает скрытую границу, а также чувствительность и специфичность каждого оценщика. На корпусе, где двое аккуратных разметчиков в меньшинстве против трёх небрежных, голосование большинством даёт Dice 0,846 относительно истины, а STAPLE даёт 1,000.
- Точный IoU для повёрнутых 3D-объектов, поэтому согласованность кубоидов корректна для данных с дронов, ручных устройств и из помещений, а не только для горизонтально выровненных боксов.
- Временная согласованность сообщается как развёртка по допускам сопоставления, потому что согласие при 0,25 с и согласие при 2 с означают разное.
- Неопределённые значения объясняют сами себя. На единодушном корпусе α действительно не определена, а голое
NaNвыглядит как сломанное вычисление.
Это также исправляет ошибку: арбитраж сравнивал ключи разметки, а схемы изображений хранят всё под одним ключом _data. Поэтому каждая пара по изображениям получала согласованность 1,0: два разметчика, ни в чём не согласные, выглядели единодушными, и ни одно изображение не отправлялось на проверку.
Зрение
- Геометрические примитивы: ломаные, эллипсы, 2D-кубоиды, наборы ключевых точек с топологией скелета и флагами видимости COCO, а также маски кистью с привязкой к экземплярам.
- Сегментация по щелчку в браузере: MobileSAM под ONNX Runtime Web, около 132 мс на щелчок, без GPU и без сетевого вызова на каждый щелчок.
- Подсказки текстом с открытым словарём: введите фразу, и каждое совпадение получит бокс. Grounding DINO, Apache-2.0, тоже в браузере.
- Распространение масок по видео с модулями памяти SAM 2, измеренный IoU на кадр от 0,974 до 0,979 без деградации по ходу последовательности. Эта функция намеренно работает на сервере; в браузере есть отдельный, более лёгкий путь переноса масок вперёд.
- Глубокое масштабирование для гигапиксельных изображений, которые отдаются и как DZI, и через IIIF Image API 3.0, с масками кистью в полном разрешении источника.
- Приём медиа: многостраничный 16-битный TIFF, HEIC, RAW с камер и ProRes/MKV/MOV через кэширующий серверный прокси.
- 15 форматов импорта и 29 форматов экспорта, 11 из них работают в обе стороны без потерь. Darwin работает в обоих направлениях.
Горячие клавиши разметки изображений теперь по умолчанию следуют соглашениям V7: b кисть, r прямоугольник, f заливка, k ключевая точка, v выделение. Задайте в схеме keybinding_profile: legacy, чтобы вернуть старые привязки для исследования, которое уже идёт.
3D, глубина и робототехника
spatial_annotationдля облаков PCD, PLY, LAS, KITTI.binи.xyz: 3D-кубоиды, точки, ломаные и сегменты по точкам, уровни детализации на октодереве и ортографические панели-срезы. Поворот хранится как кватернион, поэтому наклон крепления, который поле только с рысканием молча отбросило бы, переживает цикл через KITTI.- Карты глубины в 16-битных PNG/TIFF, NPY, PFM и EXR: окна значений, цветовые карты, показ расстояния в метрах под курсором и обратная проекция в тот же 3D-просмотрщик.
- Проекция с учётом калибровки, так что кубоид, нарисованный в 3D, появляется на изображении каждой камеры и его можно проверить в 2D.
episode_annotationразмещает N синхронизированных видеопотоков и M дорожек временных рядов робота на одной временной шкале, с сегментацией по фазам, исходами для каждой фазы и плотными кривыми награды. Импортирует LeRobot v2, RLDS/TFDS и HDF5. Прореживание дорожек сохраняет минимумы и максимумы, поэтому всплеск силы длиной в один кадр не теряется на дорожке шириной 300 пикселей.
Оценка
rollout_evaluationпоказывает от 2 до N сгенерированных видео на общих часах и просит разметчика отметить кадр, на котором мир перестаёт быть осмысленным, а затем указать, какое физическое или причинное свойство нарушилось. Панели можно скрыть от разметчика и стабильно перемешивать для каждого разметчика.grounding_evalиregion_captionоценивают привязку по IoU при четырёх порогах, а указание точкой по доле попаданий точки в область, потому что у точки нет площади и IoU с ней всегда равен нулю. Непривязанность считается отдельно.
Всё остальное
- Ветвящиеся беседы: отображение
dialogueстроит структуру ответов из поляreply_toкаждой реплики.potato convokitимпортирует любой корпус ConvoKit, а--format convokitэкспортирует обратно, без зависимости отconvokit. - Телеметрия рисования: время на фигуру, динамика штрихов, число правок и задержка перед принятием подсказки ИИ. Предварительные метки, принятые целиком, повышают согласованность, но не точность, потому что разметчики, принявшие одну и ту же подсказку, единодушны по построению. Время является сигналом процесса, который отличает проверку от механического одобрения там, где метки этого не могут.
- Живой приём из базы данных: строки, созданные после запуска, становятся доступны для разметки в пределах
poll_interval_secondsбез перезапуска (#166). - Машиночитаемые спецификации: JSON Schema, охватывающая 159 ключей конфигурации, 61 тип разметки и 24 типа отображения, а также документ OpenAPI с 419 путями. Оба генерируются из кода, и CI падает, если какой-либо из них расходится с кодом, так что редактор или агент для программирования может проверить конфигурацию, не выдумывая опций.
- Никаких исходящих запросов: все таблицы стилей, скрипты, шрифты и иконки теперь отдаются из установки во всех 14 шаблонах.
styles.cssначинался с@importиз Google Fonts, который при загрузке страницы отправлял IP-адрес каждого разметчика третьей стороне, а на странице входа была сторонняя иконка сайта. Ни того, ни другого больше нет. - Вкладка Instances в админ-панели перешла с квадратичной сложности на линейную: 2 000 объектов теперь загружаются за 23 мс вместо 15,1 с.
Potato 2.7.2
Выпущено в августе 2026 года
Запись нажатий клавиш для полей свободного текста. Potato записывает временную структуру ответа, но никогда не сами символы, и этого оказывается достаточно, чтобы отличить набор текста от вставки.
- Запись нажатий клавиш: запись пауз, серий, правок и вставок без учёта содержимого в каждом поле свободного текста, около сорока сводных признаков на каждый ответ. По умолчанию выключена.
- Обнаружение особенностей процесса письма: шесть именованных правил с явными порогами, которые сообщают значения признаков за каждым флагом. Пороги можно подогнать под ваш проект, а при наличии меток есть путь с обучением с учителем.
- Этические рекомендации: образец формулировки согласия, хранение и удаление, проблема базовой частоты и почему флаг является поводом посмотреть, а не выводом.
- Экспорт по явному включению:
export_include_typing_dynamicsпишет сводный файл-спутник, а--format keystrokesпишет исходные потоки в Parquet. Ни то, ни другое не включено по умолчанию, поэтому поведенческие данные никогда не попадут в публикуемый набор данных случайно.
Уведомление разметчиков по умолчанию включено, а его отключение записывает предупреждение в журнал при запуске.
Potato 2.7.1
Выпущено в июле 2026 года
Приём транскриптов исходя из того, что транскрипт уже существует. Кто-то запустил Whisper, скачал субтитры или получил готовый корпус, и следующим шагом не должно быть написание скрипта конвертации.
- 21 формат транскриптов и субтитров вместо 6. Whisper, WhisperX, whisper.cpp, AWS Transcribe, Deepgram, AssemblyAI, Rev.ai, SPoRC, SubRip, WebVTT, SubStation Alpha, TTML/DFXP, YouTube
json3иsrv1/srv2/srv3, NIST CTM, Praat TextGrid и ELAN EAF. Формат определяется по содержимому файла, а не по расширению. - Файлы транскриптов рядом с данными: файл данных может указывать на
media/int_001.srtна диске вместо встраивания транскрипта. Пути разрешаются внутриtask_dirчерез стандартную проверку безопасности путей, поэтому ваши транскрипты остаются файлами, которые можно сравнивать и экспортировать заново. potato transcripts: конвертер, который превращает папку с выходными данными ASR в готовый к разметке файл данных и сопоставляет каждый транскрипт с медиафайлом по базовому имени.--dry-runсообщает, что было распознано, прежде чем что-либо записать, а--emit-configпечатает подходящую конфигурацию.- Один словарь форматов для четырёх схем:
speech_transcript,voice_interactionиtiered_annotationтеперь принимают всё, что принимает отображениеaudio_dialogue. Раньше это умело только отображение. - Разметка транскриптов Whisper и Разметка субтитров YouTube проводят через оба варианта от начала до конца.
В 2.7.1 шаги ASR и диаризации выполняются до Potato, а Potato читает их результат. В Potato 2.9 появились локальные транскрипция и диаризация через potato transcripts --transcribe --diarize, а Think-Aloud Mode локально транскрибирует речь самих разметчиков начиная с 2.7.0.
Potato 2.7.0
Выпущено в июле 2026 года
Potato 2.7 измеряет, как выносятся суждения, а не только записывает, какими они были, и для людей, которые размечают, и для оцениваемых моделей ИИ.
Как размечают люди
Семь функций, включаемых по желанию, и ни одной из них не нужна LLM.
- Психометрический движок: работающий в реальном времени слой теории ответов на задания, который даёт каждой метке апостериорную вероятность и интервал чувствительности (
p = 0.94 [0.88–0.97]) вместо голого голосования большинством. Он оценивает способности разметчиков и сложность объектов только по картине согласия, направляет объекты разметчику, чьё суждение несёт больше всего информации, и помечает вероятные ошибки в кодбуке. - Multiplayer Rooms: калибровочная встреча, которую ваша команда уже проводит с демонстрацией экрана, встроенная в инструмент и снабжённая измерениями: слепое голосование, раскрытие ведущим, обсуждение, повторное голосование и живой индикатор альфы Криппендорфа, показывающий, что дала сессия.
- Boundary Lab: контрфактические вопросы после каждой метки («осталось бы это верным?»), которые превращают обычную разметку в контрастные наборы и выявляют непоследовательных разметчиков без подброшенных золотых объектов.
- Truth Serum: оценивание методом peer prediction по принципу «неожиданно популярного» ответа, которое там, где разметка трудна, превосходит голосование большинством и не требует золотых меток.
- Think-Aloud Mode: разметчики говорят во время работы, распознавание речи выполняется полностью локально, и дословный транскрипт становится обоснованием.
- Paper Mode: одна команда превращает проект в компилируемый отчёт о наборе данных на LaTeX, включая статистику согласованности и ссылки на литературу.
- Pocket Mode: полноценная мобильная разметка со стопкой карточек, которые листаются свайпом, синхронизацией в офлайн-режиме и установкой как PWA.
Оценка ИИ-агентов
Набор инструментов для оценки агентов теперь охватывает структуру команды и мультимодальных агентов: кликабельный граф взаимодействия агентов, атрибуция сбоев между агентами, проверка передачи задач, оценочные карты для каждого агента и для команды, временные шкалы конкуренции за инструменты и разметка эмерджентного поведения, а также траектории GUI и computer use, временные шкалы полнодуплексного голоса, временная привязка в видео и структура таблиц в документах.
Всё остальное
Разметка событий между документами, разметка на уровне реплик, кодбук как живой документ с полностраничным редактором, связи между страницами PDF с необязательным OCR, роли RBAC со схемами для каждой когорты, панели администратора и разметчика на 10 языках и гораздо более лёгкая установка: SDK для ИИ теперь загружаются лениво, и время запуска сократилось примерно с 2,0 с до 0,7 с.
Potato 2.6.0
Выпущено в июне 2026 года
Potato 2.6 выходит в качественный анализ данных и расширяет набор инструментов для оценки агентов. В нём появились QDA Mode, процесс калибровки и согласования LLM-судьи с очередью сортировки по сигналам и схемы редактирования траекторий, из которых получаются обучающие данные для SFT и DPO. Кроме того, Potato перелицензирован под GPL-3.0-or-later (вместо PolyForm Shield).
QDA Mode
Включаемый по желанию qda_mode превращает Potato в рабочее пространство для совместного качественного кодирования. Его включение собирает вместе живой кодбук, кодирование in vivo, аналитические заметки, кейсы и полнотекстовый поиск, а значения по умолчанию рассчитаны на одного аналитика, кодирующего весь корпус.
qda_mode:
enabled: true # codebook + memos + cases + search
codebook_invivo_key: i # mint a code from a text selection
search:
enabled: true
annotator_claim: trueКалибровка и согласование LLM-судьи
Автоматически размечайте данные одним или несколькими LLM-судьями, а затем проведите слепой калибровочный проход людьми, чтобы измерить точность, согласованность и ошибку калибровки. Отдельный процесс согласования одного судьи отслеживает каппу Коэна относительно ваших золотых человеческих меток по мере уточнения рубрики, а во время разметки можно по желанию показывать вердикт прямо на странице.
Подробнее о калибровке судьи → · Согласование судьи →
Очередь сортировки по сигналам
Упорядочивайте очередь разметки по сигналу качества каждого объекта (ошибка агента, отрицательная оценка в продакшене, низкий балл или любое пользовательское поле), чтобы проверяющие видели самые подозрительные объекты первыми, а не в порядке поступления.
triage:
enabled: true
signal_field: quality_score
invert_signal: true
assignment_strategy: priorityПодробнее об очереди сортировки →
Редактирование траекторий для SFT/DPO
Новые схемы trajectory_edit и trajectory_correction позволяют разметчикам переписывать шаги трасс агентов. Экспортёр превращает каждую пару «исходный/исправленный» в цели для обучения с учителем (trajectory_sft.jsonl) и пары предпочтений для DPO (trajectory_dpo.jsonl).
Подробнее о редактировании траекторий →
Отображение eval_trace
Трёхпанельное отображение трасс агентов (рассуждения, вызовы функций и итоговый ответ), созданное для непрерывной оценки, когда трассы приходят через вебхук, опрос Langfuse или отслеживаемый каталог и оцениваются по мере поступления.
Процесс работы и распределение
- Неоднородное покрытие: лимиты разметчиков на объект, отчёт о согласованности между разметчиками и направление на арбитраж для задач, где объектам нужно разное число разметчиков.
- Возврат брошенных назначений: возвращение назначений, оставленных работниками Prolific или заблокированными контролем качества, с настраиваемым сроком хранения и идемпотентным возвратом.
- Стратегия распределения Custom Batch: назначение заранее определённых пакетов объектов конкретным разметчикам.
- Префиксы URL для обратного прокси: Potato можно обслуживать по подпути за обратным прокси.
Лицензирование
Теперь Potato распространяется под GPL-3.0-or-later вместо PolyForm Shield. Его можно использовать, изменять и распространять, в том числе в коммерческих целях, если производные работы остаются под GPL. Подробности на странице «О проекте».
Производительность и стабильность
- Запуск примерно в 3 раза быстрее. Стек машинного обучения больше не загружается сразу при запуске: время импорта сократилось примерно с 6,5 с до 2 с, запуск с 50 тыс. объектов примерно с 10 с до 5,7 с, а резидентная память примерно с 750 МБ до 365 МБ.
- Переименование схемы.
annotation_type: highlightтеперь называетсяspan, миграция предусмотрена. Обновите старые конфигурации, переименовав тип; существующие конфигурации соspanне затронуты. - Широкая волна укрепления по итогам QA затронула регистрацию маршрутов, обучающие фазы, Prolific, сохранение данных, экспорт и обработку опросов, вебхуки, Solo Mode и активное обучение.
Potato 2.5.0
Выпущено в 2026 году
Волна функций для качественного кодирования, благодаря которой Potato можно всерьёз использовать в процессах качественных исследований наряду с разметкой для NLP и ML.
- Согласованность между разметчиками: каппа Коэна (попарная) и каппа Флейса (N оценщиков) в дополнение к альфе Криппендорфа, доступные через админский API согласованности. См. руководство по согласованности между разметчиками.
- Новые экспортёры:
codebook(CSV для каждой схемы с иерархией кодов, цветом, описанием и числом использований) иquotation_report(CSV для каждого спана с текстом, смещениями, исходным документом и кодировщиком). - Аналитика кодов: админские эндпоинты для попарной совместной встречаемости кодов и перекрёстной таблицы кодов по атрибутам на основе существующих метаданных объектов.
Potato 2.4.5
Выпущено в 2026 году
Выпуск, посвящённый стабильности и инструментам.
- Проверяемое уточнение: подключаемый фреймворк для итеративного улучшения инструкций по разметке в Solo Mode, с защитой от противоречий в инструкциях и утечки метаданных.
- Валидатор конфигурации: новая CLI-команда
python -m potato.validate_cli, которая проверяет ключи конфигурации по схеме известных ключей. - Безопасность: исправлен обход проверки путей через соседний каталог с общим префиксом (GHSA-q9m2-fhv9-3jcf).
- Исправления синхронизации состояния при сохранении и навигации, интеграции с Prolific, навигации между несколькими фазами и обратной связи контроля качества.
Potato 2.3.0
Выпущено 9 марта 2026 года
Potato 2.3 стал крупнейшим выпуском в истории Potato: в нём появились агентная разметка, Solo Mode, Best-Worst Scaling, аутентификация через SSO/OAuth, экспорт в Parquet, 15 новых демонстрационных проектов и усиление безопасности.
Агентная разметка
Полноценная система для оценки ИИ-агентов с помощью человеческой разметки. Включает 12 конвертеров форматов трасс, 3 специализированных типа отображения и 9 готовых схем разметки.
12 конвертеров форматов трасс: импорт трасс агентов из OpenAI, Anthropic, SWE-bench, OpenTelemetry, MCP, CrewAI/AutoGen/LangGraph, LangChain, LangFuse, ReAct, WebArena/VisualWebArena, ATIF и необработанных записей браузера. Доступно автоопределение формата.
Конвертация выполняется в командной строке до запуска сервера:
python -m potato.trace_converter \
--input traces.json \
--input-format react \
--output data/traces.jsonlПосле этого сконвертированный файл становится обычным файлом данных, который отрисовывает один из типов отображения для агентов:
data_files:
- "data/traces.jsonl"
instance_display:
fields:
- key: steps
type: agent_trace
label: "Agent trajectory"3 типа отображения:
- Agent Trace Display: карточки шагов с цветовой кодировкой, сворачиваемые наблюдения, форматированный вывод JSON и боковая временная шкала для агентов, использующих инструменты
- Web Agent Trace Display: полные снимки экрана с SVG-наложениями, которые показывают цели щелчков, ввод текста и прокрутку; навигация по ленте кадров для браузерных агентов
- Interactive Chat Display: режим живого чата (разметчик общается с агентом через прокси) и режим просмотра трасс для диалоговых агентов
Оценки по шагам: оценивайте отдельные шаги наряду с трассой в целом для детальной оценки.
9 готовых схем: 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.
Система прокси для агентов: прокси OpenAI, HTTP и echo для оценки агентов в реальном времени.
Подробнее об агентной разметке →
Solo Mode
Процесс, в котором один разметчик вместе с LLM размечает весь набор данных, достигая согласия более 95% с конвейерами из нескольких разметчиков и требуя лишь от 10 до 15% человеческих меток от общего числа.
Solo Mode работает как конечный автомат фаз, а не как фиксированная последовательность. Он проходит через настройку, проверку промпта, необязательный цикл пограничных случаев, параллельную разметку, разрешение разногласий, активную разметку с периодической проверкой и проверкой правил, автономную разметку и итоговую валидацию. Пять из этих фаз могут вернуться к проверке промпта, если проблема оказывается в промпте, а итоговая валидация возвращается к активной разметке, если выборка не проходит порог.
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"Приоритизация объектов по нескольким сигналам: instance_selection взвешивает семь сигналов (низкая уверенность, разнообразие, предсказание LLM, разногласие, случайность, картография, правило пограничных случаев), чтобы выбрать, что человек увидит следующим.
Best-Worst Scaling
Эффективная сравнительная разметка, в которой разметчики выбирают лучший и худший элементы из кортежей. Автоматическая генерация кортежей по сбалансированным неполным блочным планам и три метода подсчёта оценок (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"Подробнее о Best-Worst Scaling →
Аутентификация через SSO и OAuth
Готовая к продакшену аутентификация через Google OAuth (с ограничением по домену), GitHub OAuth (с ограничением по организации) и универсальный OIDC (Okta, Azure AD, Auth0, Keycloak). Поддерживаются автоматическая регистрация, смешанный режим и управление сессиями.
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
Экспорт разметки в формат Apache Parquet в виде трёх структурированных файлов: annotations.parquet, spans.parquet и items.parquet. Поддерживаются сжатие snappy, gzip, zstd, lz4 и brotli, инкрементальный экспорт и секционирование по дате и разметчику. Совместим с pandas, DuckDB, PyArrow, Polars и Hugging Face Datasets.
export_annotation_format:
- parquetПодробнее об экспорте в Parquet →
15 новых демонстрационных проектов
Новые демо в project-hub/ охватывают агентную разметку (5 демо), Solo Mode (3 демо), Best-Worst Scaling (3 демо), аутентификацию (2 демо) и процессы экспорта (2 демо). Любое демо запускается командой potato start config.yaml.
Усиление безопасности
- Криптографически стойкие токены сессий с настраиваемым сроком действия
- Защита от CSRF, включённая по умолчанию
- Ограничение частоты запросов к эндпоинтам аутентификации
- Очистка пользовательского ввода
- Аудит зависимостей с обновлением всех пакетов
- Заголовки Content Security Policy
Другие улучшения
- Пользовательские конвертеры трасс для неподдерживаемых фреймворков агентов
- Гибридный Solo Mode с выборочной проверкой несколькими разметчиками
- Вкладка BWS в админ-панели с графиками сходимости оценок
- Инкрементальный экспорт в Parquet с секционированием по дате
Сравнение v2.2 и v2.3
| Функция | v2.2 | v2.3 |
|---|---|---|
| Агентная разметка | Нет | 12 конвертеров, 3 отображения, 9 схем |
| Solo Mode | Нет | Совместная работа человека и LLM на основе конечного автомата фаз |
| Best-Worst Scaling | Нет | BWS с 3 методами подсчёта оценок |
| Аутентификация | Только имя пользователя | + Google OAuth, GitHub OAuth, OIDC |
| Экспорт в Parquet | Нет | Parquet из 3 файлов с 6 вариантами сжатия |
| Демонстрационные проекты | 125+ | 140+ (15 новых) |
| Безопасность | Базовая | CSRF, ограничение частоты запросов, CSP, защищённые сессии |
Potato 2.2.0
Выпущено 20 февраля 2026 года
Potato 2.2 стал крупным выпуском новых функций: 9 новых схем разметки, подключаемая система экспорта, оценка компетентности MACE, 55 валидированных опросных инструментов и удалённые источники данных.
Новые схемы разметки (9)
Разметка событий: n-арные структуры событий со спанами-триггерами и типизированными ролями аргументов. Размечайте такие события, как ATTACK, HIRE и TRAVEL, с ограничениями на аргументы-сущности и визуализацией дуг по схеме «звезда».
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: trueПодробнее о разметке событий →
Связывание сущностей: связывайте разметку спанов с внешними базами знаний (Wikidata, UMLS, пользовательские REST API). Добавьте блок entity_linking: в любую схему спанов, чтобы включить поиск по базе знаний и связывание.
Подробнее о связывании сущностей →
Сортировка (triage): интерфейс «принять/отклонить/пропустить» в стиле Prodigy для быстрого отбора данных. Настраиваемые метки, горячие клавиши и автоматический переход к следующему объекту для разметки с высокой пропускной способностью.
Попарное сравнение: сравнивайте два объекта в бинарном режиме (щелчок по предпочтительной плитке) или в режиме шкалы (ползунок). Поддерживаются items_key, allow_tie и блок scale: с настраиваемым диапазоном.
Подробнее о попарном сравнении →
Деревья бесед: размечайте иерархические структуры бесед с оценками для каждого узла, выбором пути и сравнением ветвей.
Цепочки кореференции: объединяйте кореферентные упоминания в тексте в цепочки с визуальными индикаторами. Поддерживаются типы сущностей, управление одиночными упоминаниями и несколько режимов выделения.
Подробнее о цепочках кореференции →
Маски сегментации: новые инструменты fill, eraser и brush для попиксельной сегментации изображений.
Ограничивающие рамки для PDF и документов: рисуйте рамки на страницах PDF в задачах разметки документов.
Разрывные спаны: allow_discontinuous: true позволяет выделять несмежные фрагменты текста как один спан.
Интеллектуальная разметка
Оценка компетентности MACE: вариационный байесовский EM-алгоритм, который совместно оценивает истинные метки и компетентность разметчиков (от 0,0 до 1,0). Работает со схемами radio, likert, select и multiselect.
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 3Подсветка вариантов: подсветка с помощью LLM вероятно правильных вариантов в задачах дискретной разметки. Отмечает звёздочкой top-k вариантов и приглушает менее вероятные.
ai_support:
option_highlighting:
enabled: true
top_k: 3
dim_opacity: 0.4Подробнее о подсветке вариантов →
Упорядочивание по разнообразию: кластеризация на эмбеддингах и выборка по кругу, чтобы разметчики видели разнообразный контент, а не похожие объекты подряд.
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100Подробнее об упорядочивании по разнообразию →
Система экспорта
Новый подключаемый CLI для экспорта (python -m potato.export) конвертирует разметку в 6 отраслевых форматов: COCO, YOLO, Pascal VOC, CoNLL-2003, CoNLL-U и маски сегментации.
python -m potato.export --config config.yaml --format coco --output ./export/Подробнее о форматах экспорта →
Удалённые источники данных
Загружайте данные для разметки по URL, из S3, Google Drive, Dropbox, Hugging Face, Google Sheets и баз данных SQL через новый блок конфигурации data_sources:. Поддерживаются частичная загрузка, кэширование и управление учётными данными.
Подробнее об удалённых источниках данных →
Опросные инструменты
55 валидированных опросников в 8 категориях (личность, психическое здоровье, аффект, Я-концепция, социальные установки, стиль ответов, краткие формы, демография). Используйте их в фазах до и после исследования с instrument: "tipi".
Подробнее об опросных инструментах →
Другие улучшения
- Отслеживание объектов в видео с интерполяцией по ключевым кадрам
- Поддержка внешнего файла конфигурации ИИ
- Улучшения сетки в раскладке форм
- Обработчики форматов для PDF, Word, кода и электронных таблиц
Potato 2.1.0
Выпущено 5 февраля 2026 года
В Potato 2.1 появились система отображения объектов, визуальная поддержка ИИ, связывание спанов, разметка спанов по нескольким полям и настройка раскладки.
Система отображения объектов
Новый блок конфигурации instance_display, который отделяет отображение контента от разметки. Показывайте любое сочетание изображений, видео, аудио, текста и диалогов рядом с любыми схемами разметки.
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]Поддерживаются 24 типа отображения, включая text, html, image, video, audio, depth_map, dialogue, conversation_tree, pairwise, code, spreadsheet, document, pdf, gallery и пять отображений трасс агентов.
Подробнее об отображении объектов →
Разметка спанов по нескольким полям
Схемы разметки спанов теперь поддерживают параметр target_field, позволяющий размечать несколько текстовых полей одного объекта.
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_link для создания типизированных отношений между размеченными спанами. Поддерживаются направленные и ненаправленные связи, n-арные отношения, визуальное отображение дуг и ограничения на метки.
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"Подробнее о связывании спанов →
Визуальная поддержка ИИ
Четыре новых эндпоинта для зрения, которые помогают ИИ в разметке изображений и видео:
- YOLO: быстрое локальное обнаружение объектов
- Ollama Vision: локальные визуально-языковые модели (LLaVA, Qwen-VL)
- OpenAI Vision: облачное зрение GPT-4o
- Anthropic Vision: Claude со зрением
Среди возможностей: обнаружение объектов, предразметка, классификация, подсказки, обнаружение сцен, обнаружение ключевых кадров и отслеживание объектов.
Подробнее о визуальной поддержке ИИ →
Настройка раскладки
Создавайте сложные пользовательские визуальные раскладки с помощью HTML-шаблонов и CSS. Potato генерирует редактируемый файл раскладки, или вы можете передать полностью собственный шаблон с сеточной раскладкой, вариантами с цветовой кодировкой и оформлением разделов.
task_layout: layouts/custom_task_layout.htmlВ комплекте три примера раскладок: модерация контента, проверка качества диалогов и медицинская проверка.
Подробнее о настройке раскладки →
Обоснования меток
Четвёртая возможность ИИ, которая генерирует взвешенные объяснения того, почему могла бы подойти каждая метка, и помогает разметчикам увидеть разные точки зрения на классификацию.
ai_support:
features:
rationales:
enabled: trueДругие улучшения
- Более 50 новых тестов для повышения надёжности
- Улучшения адаптивного дизайна
- Улучшенная организация project-hub с примерами раскладок
- Исправления ошибок в разных типах разметки
Сравнение v2.0 и v2.1
| Функция | v2.0 | v2.1 |
|---|---|---|
| Отображение объектов | Через обходные приёмы в разметке | Отдельный блок instance_display |
| Цели спанов | Одно текстовое поле | Несколько полей через target_field |
| Связывание спанов | Нет | Полноценный тип span_link |
| Визуальный ИИ | Нет | YOLO, Ollama Vision, OpenAI Vision, Anthropic Vision |
| Настройка раскладки | Базовая автогенерация | Автогенерация + пользовательские шаблоны |
| Возможности ИИ | 3 (подсказки, ключевые слова, предложения) | 4 (+ обоснования) |
Potato 2.0
Potato 2.0 стал крупным выпуском, в котором появились поддержка ИИ, активное обучение, обучающие фазы, многофазные процессы и бэкенд MySQL.
Поддержка ИИ
Подключайте большие языковые модели, которые помогают разметчикам осмысленными подсказками, подсветкой ключевых слов и предложениями меток.
Поддерживаемые провайдеры:
- OpenAI (GPT-4, GPT-3.5)
- Anthropic (Claude 3, Claude 3.5)
- Google (Gemini)
- Ollama (локальные модели)
- vLLM (на своих серверах)
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
hints:
enabled: true
label_suggestions:
enabled: trueРазметка аудио
Полнофункциональная разметка аудио с визуализацией формы волны на основе Peaks.js. Создавайте сегменты, размечайте временные интервалы и размечайте речь с помощью горячих клавиш.
Основные возможности:
- Визуализация формы волны
- Создание и разметка сегментов
- Вопросы разметки для каждого сегмента
- Более 15 горячих клавиш
- Кэширование формы волны на сервере
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark each speaker turn in the audio"
mode: label
labels:
- Speaker A
- Speaker BАктивное обучение
Автоматически приоритизируйте объекты разметки по неуверенности модели. Обучайте классификаторы на уже собранной разметке и направляйте разметчиков к самым информативным примерам.
Возможности:
- Несколько вариантов классификаторов (LogisticRegression, RandomForest, SVC, MultinomialNB)
- Различные векторизаторы (TF-IDF, Count, Hashing)
- Сохранение модели между перезапусками
- Отбор с помощью LLM
- Поддержка нескольких схем
active_learning:
enabled: true
schema_names:
- sentiment
min_instances_for_training: 30
update_frequency: 50
classifier:
type: LogisticRegressionПодробнее об активном обучении →
Обучающая фаза
Проверяйте квалификацию разметчиков на тренировочных вопросах перед основной задачей. Давайте немедленную обратную связь и обеспечивайте качество с помощью настраиваемых критериев прохождения.
Возможности:
- Тренировочные вопросы с известными ответами
- Немедленная обратная связь и объяснения
- Настраиваемые критерии прохождения
- Возможность повторных попыток
- Отслеживание прогресса в админ-панели
phases:
training:
enabled: true
data_file: "data/training.json"
passing_criteria:
min_correct: 8
total_questions: 10Расширенная админ-панель
Подробный интерфейс для мониторинга задач разметки и управления ими.
Вкладки панели:
- Overview: общие показатели и доля завершённых
- Annotators: отслеживание работы разметчиков, анализ времени
- Instances: просмотр данных с оценками разногласий
- Configuration: изменение настроек в реальном времени
admin_api_key: ${ADMIN_API_KEY}Бэкенд базы данных
Поддержка MySQL для крупномасштабных развёртываний с пулом соединений и поддержкой транзакций.
database:
type: mysql
host: localhost
database: potato_db
username: ${DB_USER}
password: ${DB_PASSWORD}Potato автоматически создаёт нужные таблицы при первом запуске.
История разметки
Полное отслеживание всех изменений разметки с метками времени, идентификаторами пользователей и типами действий. Позволяет проводить аудит и анализ поведения.
{
"history": [
{
"timestamp": "2024-01-15T10:30:00Z",
"user": "annotator_1",
"action": "create",
"schema": "sentiment",
"value": "Positive"
}
]
}Многофазные процессы
Стройте сложные процессы разметки из нескольких последовательных фаз:
- Согласие: сбор информированного согласия
- Предварительный опрос: демография и отбор
- Инструкции: правила выполнения задачи
- Обучение: тренировочные вопросы
- Разметка: основная задача
- Итоговый опрос: опросы для обратной связи
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"Подробнее о многофазных процессах →
Изменения конфигурации в v2.0
Новая структура конфигурации
Potato 2.0 использует более чистый формат конфигурации:
v1 (старый):
data_files:
- data.json
id_key: id
text_key: text
output_file: annotations.jsonv2 (новый):
data_files:
- "data/data.json"
item_properties:
id_key: id
text_key: text
output_annotation_dir: "output/"
export_annotation_format: "jsonl"Требование безопасности
Теперь файлы конфигурации должны находиться внутри task_dir:
Если конфигурация лежит рядом с данными, каталогом задачи будет текущий каталог:
task_dir: "."Если конфигурация лежит в подкаталоге, укажите каталог проекта, к которому она относится:
task_dir: "my_project/"Краткое сравнение
| Функция | v1 | v2.0 | v2.1 | v2.2 | v2.3 |
|---|---|---|---|---|---|
| Поддержка ИИ/LLM | Нет | Да | Да + визуальный ИИ + обоснования | + подсветка вариантов | + Solo Mode |
| Агентная разметка | Нет | Нет | Нет | Нет | 12 конвертеров, 3 отображения |
| Best-Worst Scaling | Нет | Нет | Нет | Нет | Да (3 метода подсчёта оценок) |
| Разметка аудио | Базовая | Полная форма волны | Полная форма волны | Полная форма волны | Полная форма волны |
| Активное обучение | Нет | Да | Да | Да + упорядочивание по разнообразию | + интеграция с Solo Mode |
| Отображение объектов | Нет | Нет | Да | Да | Да |
| Связывание спанов | Нет | Нет | Да | Да | Да |
| Разметка событий | Нет | Нет | Нет | Да | Да |
| Связывание сущностей | Нет | Нет | Нет | Да | Да |
| Попарное сравнение, сортировка, кореференция, деревья | Нет | Нет | Нет | Да | Да |
| Настройка раскладки | Нет | Автогенерация | Авто + пользовательские шаблоны | Авто + пользовательские шаблоны | Авто + пользовательские шаблоны |
| Обучающая фаза | Нет | Да | Да | Да | Да |
| Админ-панель | Базовая | Расширенная | Расширенная | Расширенная + MACE | + вкладка BWS, Solo Mode |
| Бэкенд базы данных | Только файлы | Файлы + MySQL | Файлы + MySQL | Файлы + MySQL | Файлы + MySQL |
| CLI для экспорта | Нет | Нет | Нет | Да (COCO, YOLO, CoNLL и др.) | + Parquet |
| Аутентификация | Имя пользователя | Имя пользователя | Имя пользователя | Имя пользователя | + Google/GitHub OAuth, OIDC |
| Опросные инструменты | Нет | Нет | Нет | 55 валидированных опросников | 55 валидированных опросников |
| Удалённые источники данных | Нет | Нет | Нет | S3, GDrive, HuggingFace и др. | S3, GDrive, HuggingFace и др. |
Руководство по миграции
Обновление конфигурации (с v1 на v2)
-
Конфигурация данных
yaml# Old id_key: id text_key: text # New item_properties: id_key: id text_key: text -
Конфигурация вывода
yaml# Old output_file: annotations.json # New output_annotation_dir: "output/" export_annotation_format: "jsonl" -
Расположение файла конфигурации Убедитесь, что файл конфигурации находится внутри каталога проекта.
Запуск сервера
# v2 command
python -m potato start config.yaml -p 8000
# Or shorthand
potato start config.yamlНачало работы
Готовы попробовать Potato? Начните с руководства по быстрому старту или изучите отдельные функции:
Функции v2.3:
- Агентная разметка: оценка ИИ-агентов с конвертерами трасс и отображениями на уровне шагов
- Solo Mode: совместная разметка человеком и LLM
- Best-Worst Scaling: сравнительная разметка с подсчётом оценок
- SSO и OAuth: аутентификация через Google, GitHub и OIDC
- Экспорт в Parquet: экспорт данных в колоночном формате
Функции v2.2:
- Разметка событий: n-арные структуры событий
- Связывание сущностей: связывание с базами знаний
- Сортировка: быстрый отбор данных
- Цепочки кореференции: кореференция сущностей
- Деревья бесед: иерархическая разметка диалогов
- MACE: оценка компетентности разметчиков
- Подсветка вариантов: подсказки по вариантам с помощью ИИ
- Упорядочивание по разнообразию: порядок объектов на основе эмбеддингов
- Форматы экспорта: CLI для экспорта с 6 форматами
- Удалённые источники данных: загрузка данных из облака
- Опросные инструменты: 55 валидированных опросников
Функции v2.1:
- Отображение объектов: отображение мультимодального контента
- Визуальная поддержка ИИ: ИИ для разметки изображений и видео
- Связывание спанов: разметка отношений между сущностями
Основные функции:
- Поддержка ИИ: интеллектуальная помощь в разметке
- Активное обучение: умная приоритизация объектов
- Разметка аудио: разметка по форме волны
- Обучающая фаза: квалификация разметчиков
- Админ-панель: мониторинг и управление