Skip to content

新功能

Potato v2.x 的新特性。2.8 版加入计算机视觉、3D 点云、深度图、机器人回合与世界模型评测,并对几何与时间提供机会校正后的一致性度量。61 种标注类型,24 种展示类型。

本页面介绍 Potato v2.x 各版本的新功能和改进。


Potato 2.8.0

2026 年 8 月发布

Potato 曾经是一个带图像模式的文本标注平台。如今它覆盖图像、视频、十亿像素级扫描件、3D 点云、深度图、机器人回合、生成式视频推演,以及视觉-语言定位。对其中每一项,它都会报告机会校正后的一致性。

如果你是从 PyPI 安装的,请升级。 2.7.1 之前的 wheel 包在声明包数据时只用了一层通配符,因此有 27 个位于子目录中的模板从未被打进任何 wheel。对所有执行 pip install 的人来说,solo 模式的初始化路由、管理页面、评审校准和语料地图都无法工作;而从 git 检出运行的人从未遇到这个问题。该问题已由 @0x6362PR #164 中修复。

bash
pip install --upgrade potato-annotation

几何与时间上的一致性

  • 空间标签的机会校正一致性,拆解为检测(标注者是否找到了同样的对象)、分类(他们是否给出了同样的名称)和定位(他们是否放在了同样的位置,以 σ 相对于经验机会基线报告,并附一个 KS 检验)。
  • STAPLE 用于掩码共识。它估计一条潜在边界,以及每位评分者的敏感度和特异度。在一个两位细致的标注者以三比二被噪声标注者压过的语料上,多数投票相对真值的 Dice 为 0.846,而 STAPLE 为 1.000。
  • 精确的旋转 3D IoU,因此长方体一致性在无人机、手持和室内数据上都是正确的,而不仅限于水平框。
  • 时间一致性以扫描的形式报告,覆盖多个匹配容差,因为 0.25 秒容差下的一致性与 2 秒容差下的一致性是两种不同的结论。
  • 未定义的值会自我说明。在完全一致的语料上 α 确实是未定义的,而一个光秃秃的 NaN 看上去像是计算出了故障。

这同时修复了一个缺陷:裁定流程比较的是标注的,而图像方案把一切都存在一个名为 _data 的键下。于是每一对图像标注的一致性都算成 1.0,两位其实毫无共识的标注者看起来完全一致,任何图像都不会被路由去复核。

视觉

  • 几何基元:折线、椭圆、2D 长方体、带骨架拓扑与 COCO 可见性标志的关键点集,以及按实例分键的画笔掩码。
  • 浏览器内点击分割——在 ONNX Runtime Web 下运行的 MobileSAM,每次点击约 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_evalregion_caption 用四个阈值下的 IoU 给定位打分,用点落在区域内的命中率给指点打分——因为点没有面积,对点计算 IoU 永远为零。无法定位的情况单独计数。

其余更新

  • 线索式对话dialogue 展示会根据每个话轮的 reply_to 渲染回复结构。potato convokit 可导入任意 ConvoKit 语料,--format convokit 可导出回去,且不依赖 convokit 包。
  • 绘制遥测——每个图形的耗时、笔画动态、修改次数,以及接受 AI 建议的延迟。整批照单全收的预标注会让所有质量指标都变好看,包括一致性,因为其几何形状与认真作业完全相同。耗时是唯一能显出差别的地方。
  • 实时数据库接入:启动之后新建的数据行会在 poll_interval_seconds 之内变为可标注,无需重启(#166)。
  • 机器可读的规格说明——一份覆盖 159 个配置键、61 种标注类型和 24 种展示类型的 JSON Schema,以及一份含 419 条路径的 OpenAPI 文档。两者都由代码生成,任一出现漂移时 CI 都会失败,因此编辑器或编码智能体可以在不臆造选项的情况下校验配置。
  • 不发出任何外部请求:全部 14 套模板中的每一份样式表、脚本、字体和图标现在都由本地安装提供。此前 styles.css 开头是一条指向 Google Fonts 的 @import,会在页面加载时把每位标注者的 IP 地址发给第三方,登录页还带着一个第三方 favicon。两者都已移除。
  • 管理端 Instances 标签页从二次复杂度降到线性:2,000 条数据的加载时间从 15.1 秒降到 23 毫秒。

Potato 2.7.2

发布于 2026 年 8 月

自由文本字段的击键记录。Potato 记录答案背后的时间信息,从不记录字符本身,而这已经足以把打字和粘贴区分开。

  • 击键记录 — 对每个自由文本字段的停顿、爆发、修改和粘贴做内容无关的采集,每份回答计算约四十项摘要特征。默认关闭。
  • 写作过程检测 — 六条具名规则,阈值明确,并会报告触发每个标记的特征值。阈值可以针对你自己的项目重新拟合;如果你有标签,还有一条有监督的路径。
  • 伦理指南 — 知情同意示例文本、留存与删除、基础率问题,以及为什么一个标记是提示你去查看,而不是一项结论。
  • 可选导出export_include_typing_dynamics 写出一个摘要附属文件,--format keystrokes 把原始事件流写入 Parquet。两者都不默认开启,行为数据不会意外进入数据集发布。

向标注者披露默认开启,关闭它会在启动时记录一条警告。


Potato 2.7.1

发布于 2026 年 7 月

转录稿导入,前提是转录稿已经存在。有人跑过 Whisper,或者下载了字幕,或者拿到了一份语料,而下一步不该是写转换脚本。

  • 21 种转录稿与字幕格式,此前是 6 种。Whisper、WhisperX、whisper.cpp、AWS Transcribe、Deepgram、AssemblyAI、Rev.ai、SPoRC、SubRip、WebVTT、SubStation Alpha、TTML/DFXP、YouTube json3srv1/srv2/srv3、NIST CTM、Praat TextGrid 以及 ELAN EAF。按文件内容识别,而不是按扩展名。
  • 附属转录稿文件 — 数据文件可以指向磁盘上的 media/int_001.srt,而不必把转录内容内联进来。路径经过标准的路径安全检查在 task_dir 下解析,所以转录稿仍然是你能 diff、能重新导出的文件。
  • potato transcripts — 一个转换器,把一整个文件夹的 ASR 输出变成可直接标注的数据文件,按文件基名把转录稿和媒体配对。--dry-run 在写入任何东西之前先报告它识别到了什么,--emit-config 打印一份对应的配置。
  • 四种 schema 共用同一套格式词汇speech_transcriptvoice_interactiontiered_annotation 现在都接受 audio_dialogue 显示类型接受的全部格式。此前只有显示类型支持。
  • 标注 Whisper 转录稿标注 YouTube 字幕 从这两种起点各完整走了一遍。

ASR 和说话人分离仍然在上游完成。Potato 读取它们的输出,自己不做转写。


Potato 2.7.0

发布于 2026 年 7 月

Potato 2.7 建立在一个想法上:标注工具应该测量判断是怎么做出的,而不只是记录判断的结果。这对两类判断者都适用——做标注的人,以及被评估的 AI 模型。

测量人类如何标注

七项可选功能,都不需要 LLM。

  • 心理测量学引擎 — 一个实时的项目反应理论层,给每个标签一个后验概率和置信区间(p = 0.94 [0.88–0.97]),而不是一个光秃秃的多数投票。它仅凭一致性模式估计标注者能力和项目难度,把项目分派给判断信息量最大的标注者,并标出可能的编码手册漏洞。
  • 多人协作房间 — 你的团队本来就在屏幕共享里开的校准会议,被搬进工具并加上了测量:盲投、主持人揭晓、讨论、复投,还有一个实时的 Krippendorff's α 仪表显示这场会议值多少。
  • 边界实验室 — 每次标注之后追加反事实探针(「换成这样还成立吗?」),把普通标注变成对比集,并且不用埋金标准项目就能发现前后不一致的标注者。
  • Truth Serum — 「意外地受欢迎」同伴预测计分法,在标注本身很难的场景里胜过多数投票,且不需要金标准标签。
  • Think-Aloud 模式 — 标注者一边工作一边说话;语音转文字完全在本地运行,逐字转录稿直接成为理由说明。
  • 论文模式 — 一条命令把项目变成可编译的 LaTeX 数据集报告,含一致性统计和引用。
  • 口袋模式 — 一等公民的移动端标注,带可滑动卡片堆、离线同步和 PWA 安装。

评估 AI 智能体

智能体评估套件扩展到了团队结构和多模态智能体:可点击的智能体交互图、跨智能体失败归因、交接审查、单个智能体和团队记分卡、工具争用时间线、涌现行为标注,以及 GUI/计算机操作轨迹、全双工语音时间线、视频时间定位和文档表格结构

其他各处

跨文档事件标注、轮次级标注、带全页编辑器的活文档式编码手册、可选 OCR 的 PDF 跨页链接、带按队列分组 schema 的 RBAC 角色、10 种语言的管理员和标注者仪表板,以及轻得多的安装——AI SDK 现在延迟加载,启动时间从约 2.0 秒降到 0.7 秒。


Potato 2.6.0

发布于 2026 年 6 月

Potato 2.6 进入定性数据分析领域,并加深了智能体评估工具集。它新增了 QDA 模式、带信号分诊队列的 LLM 评判校准与对齐工作流,以及能产出 SFT 和 DPO 训练数据的轨迹编辑 schema。Potato 同时改用 GPL-3.0-or-later 许可(此前为 PolyForm Shield)。

QDA 模式

可选的 qda_mode 把 Potato 变成协作式定性编码工作区。启用它会同时装配活文档式编码手册、原生编码(in-vivo)、分析备忘、案例和全文检索,默认值针对一位分析员编码整个语料的场景调优。

yaml
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

了解更多关于 QDA 模式 →

LLM 评判校准与对齐

先用一个或多个 LLM 评判者自动打标,然后跑一轮盲测的人工校准来衡量准确率、一致性和校准误差。另有一套单评判者对齐工作流,在你打磨评分标准的过程中追踪与人工金标准之间的 Cohen's kappa,并可在标注过程中内联显示评判结果。

了解更多关于评判校准 → · 评判对齐 →

基于信号的分诊队列

按每个项目的质量信号给标注队列排序——智能体报错、线上的点踩、低分,或任意自定义字段——让审查者先看到最可疑的项目,而不是按到达顺序看。

yaml
triage:
  enabled: true
  signal_field: quality_score
  invert_signal: true
assignment_strategy: priority

了解更多关于分诊队列 →

面向 SFT/DPO 的轨迹编辑

新增的 trajectory_edittrajectory_correction schema 让标注者可以改写智能体轨迹中的步骤。导出器把每一对原始/修正内容变成监督微调目标(trajectory_sft.jsonl)和 DPO 偏好对(trajectory_dpo.jsonl)。

了解更多关于轨迹编辑 →

eval_trace 显示类型

一个三栏的智能体轨迹显示类型——推理、函数调用和最终答案——为持续评估而设计:轨迹通过 webhook、Langfuse 轮询器或被监视的目录到达,并在到达时被评判。

了解更多关于 eval_trace →

工作流与分派

  • 异构覆盖 — 按项目设置标注者上限、标注者间一致性报告,以及针对不同项目需要不同标注人数的任务的裁决路由。
  • 回收被放弃的分派 — 找回被 Prolific 或质量控制拦截的工作者留下的分派,留存时间可配置,回收操作幂等。
  • 自定义批次分派策略 — 把预先定义好的项目批次分配给特定标注者。
  • 反向代理 URL 前缀 — 在反向代理后以子路径提供 Potato 服务。

许可

Potato 现在以 GPL-3.0-or-later 发布,从 PolyForm Shield 改换而来。你可以使用、修改和再分发它,包括商业用途,只要衍生作品仍然采用 GPL。详见关于页面

性能与稳定性

  • 启动大约快了 3 倍。 ML 栈不再在启动时被急切加载:导入时间从约 6.5 秒降到 2 秒,5 万项目的启动从约 10 秒降到 5.7 秒,常驻内存从约 750MB 降到 365MB。
  • Schema 更名。 annotation_type: highlight 现在叫 span,并提供了迁移。改名即可更新旧配置;已有的 span 配置不受影响。
  • 一轮范围很广的 QA 加固,涉及路由注册、培训阶段、Prolific、持久化、导出与问卷处理、webhook、单人模式和主动学习。

Potato 2.5.0

发布于 2026 年

一波定性编码功能,让 Potato 在原有的 NLP 与 ML 标注能力之外,也能胜任定性研究工作流。

  • 标注者间一致性 — 除 Krippendorff's alpha 外,新增 Cohen's kappa(两两)和 Fleiss' kappa(N 位评分者),通过管理员一致性 API 暴露。参见标注者间一致性指南
  • 新导出器codebook(按 schema 输出 CSV,含编码层级、颜色、描述和使用次数)和 quotation_report(按片段输出 CSV,含文本、偏移量、来源文档和编码者)。
  • 编码分析 — 用于编码两两共现,以及基于既有实例元数据的编码-属性交叉表的管理员端点。

Potato 2.4.5

发布于 2026 年

一个稳定性与工具版本。

  • 经验证的迭代改进 — 一个可插拔框架,用于迭代改进单人模式的标注指南,并对指南自相矛盾和元数据泄漏设有防护。
  • 配置校验器 — 新的 python -m potato.validate_cli 命令行工具,对照已知配置 schema 检查配置键。
  • 安全 — 修复了路径校验中的同级前缀路径穿越绕过(GHSA-q9m2-fhv9-3jcf)。
  • 修复涉及保存/导航状态同步、Prolific 集成、多阶段导航和质量控制反馈。

Potato 2.3.0

发布于 2026 年 3 月 9 日

Potato 2.3 是 Potato 历史上最大的一次发布,引入了智能体标注、单人模式、最优-最差量表、SSO/OAuth 认证、Parquet 导出、15 个新的演示项目和安全加固。

智能体标注

一套通过人工标注评估 AI 智能体的完整系统。包含 12 个轨迹格式转换器、3 种专用显示类型和 9 个预置标注 schema。

12 个轨迹格式转换器 — 从 OpenAI、Anthropic、SWE-bench、OpenTelemetry、MCP、CrewAI/AutoGen/LangGraph、LangChain、LangFuse、ReAct、WebArena/VisualWebArena、ATIF 以及原始浏览器录制导入智能体轨迹。支持自动识别。

yaml
agentic:
  enabled: true
  trace_converter: react       # or openai, anthropic, webarena, auto, etc.
  trace_file: "data/traces.jsonl"

3 种显示类型:

  • 智能体轨迹显示 — 彩色编码的步骤卡片,可折叠的观察内容、JSON 美化输出,以及面向工具调用型智能体的时间线侧栏
  • 网页智能体轨迹显示 — 完整截图配 SVG 叠加层,标出点击目标、文本输入和滚动操作;面向浏览型智能体的胶片条导航
  • 交互式聊天显示 — 实时聊天模式(标注者通过代理与智能体交互)和面向对话型智能体的轨迹审查模式

逐轮评分 — 在整体轨迹之外,对单个步骤单独评分,做更细粒度的评估。

9 个预置 schemaagent_task_successagent_step_correctnessagent_error_taxonomyagent_safetyagent_efficiencyagent_instruction_followingagent_explanation_qualityagent_web_action_correctnessagent_conversation_quality

智能体代理系统 — OpenAI、HTTP 和 echo 代理,用于实时智能体评估。

了解更多关于智能体标注 →


单人模式

一个 12 阶段的智能工作流,由一位人类标注者与 LLM 协作标注整个数据集,在只需 10-15% 人工标签的情况下,与多标注者流水线达到 95% 以上的一致性。

12 个阶段:

  1. 种子标注 — 人类标注 50 个多样化实例
  2. 初始 LLM 校准 — LLM 参照种子示例进行标注
  3. 混淆分析 — 识别系统性的分歧模式
  4. 指南改进 — LLM 提出修改,人类批准更新后的指南
  5. 标注函数生成 — 受 ALCHEmist 启发的程序化规则
  6. 主动标注 — 人类标注信息量最大的实例
  7. 自动改进循环 — 用改进后的指南迭代重新标注
  8. 分歧探查 — 人类解决 LLM 与标注函数之间的冲突
  9. 边缘案例合成 — LLM 生成有歧义的示例交由人类标注
  10. 级联置信度上报 — 人类审查置信度最低的标签
  11. 提示词优化 — 受 DSPy 启发的自动提示词搜索
  12. 最终验证 — 随机抽样审查
yaml
solo_mode:
  enabled: true
  llm:
    endpoint_type: openai
    model: "gpt-4o"
    api_key: ${OPENAI_API_KEY}
  seed_count: 50
  accuracy_threshold: 0.92

多信号实例优先级排序 — 6 个加权池(uncertain、disagreement、boundary、novel、error_pattern、random),用于挑选最有价值的实例。

了解更多关于单人模式 →


最优-最差量表

一种高效的比较式标注方式,标注者从一组元组中选出最好和最差的项目。自动生成元组,采用平衡不完全区组设计,并提供三种计分方法(计数法、Bradley-Terry、Plackett-Luce)。

yaml
annotation_schemes:
  - annotation_type: bws
    name: fluency
    tuple_size: 4
    best_description: "Most Fluent"
    worst_description: "Least Fluent"

了解更多关于最优-最差量表 →


SSO 与 OAuth 认证

可用于生产环境的认证方案,支持 Google OAuth(限制域名)、GitHub OAuth(限制组织)和通用 OIDC(Okta、Azure AD、Auth0、Keycloak)。支持自动注册、混合模式和会话管理。

yaml
authentication:
  method: google_oauth
  google_oauth:
    client_id: ${GOOGLE_CLIENT_ID}
    client_secret: ${GOOGLE_CLIENT_SECRET}
    allowed_domains:
      - "umich.edu"
    auto_register: true

了解更多关于 SSO 与 OAuth →


Parquet 导出

把标注导出为 Apache Parquet 格式,生成三个结构化文件:annotations.parquetspans.parquetitems.parquet。支持 snappy、gzip、zstd、lz4 和 brotli 压缩、增量导出,以及按日期/标注者分区。可配合 pandas、DuckDB、PyArrow、Polars 和 Hugging Face Datasets 使用。

yaml
parquet_export:
  enabled: true
  output_dir: "output/parquet/"
  compression: zstd
  auto_export: true

了解更多关于 Parquet 导出 →


15 个新的演示项目

project-hub/ 中新增的演示涵盖智能体标注(5 个)、单人模式(3 个)、最优-最差量表(3 个)、认证(2 个)和导出工作流(2 个)。用 potato start config.yaml 启动任意演示。


安全加固

  • 加密安全的会话令牌,过期时间可配置
  • 默认启用 CSRF 防护
  • 认证端点限流
  • 对用户提供内容做输入清理
  • 依赖审计,所有包已更新
  • 内容安全策略(CSP)响应头

其他改进

  • 为不受支持的智能体框架编写自定义轨迹转换器
  • 带多标注者抽样验证的混合单人模式
  • BWS 管理员仪表板标签页,含分数收敛图表
  • 支持按日期分区的增量 Parquet 导出

v2.2 与 v2.3 对比

功能v2.2v2.3
智能体标注不可用12 个转换器、3 种显示类型、9 个 schema
单人模式不可用12 阶段人类-LLM 工作流
最优-最差量表不可用BWS,含 3 种计分方法
认证仅用户名增加 Google OAuth、GitHub OAuth、OIDC
Parquet 导出不可用3 文件 Parquet,6 种压缩选项
演示项目125+140+(15 个新增)
安全基础CSRF、限流、CSP、安全会话

Potato 2.2.0

发布于 2026 年 2 月 20 日

Potato 2.2 是一个重要的功能版本,包含 9 种新的标注方案、可插拔的导出系统、MACE 能力评估、55 个经过验证的调查问卷以及远程数据源。

新增标注方案(9 种)

事件标注 — N 元事件结构,包含触发词片段和类型化参数角色。标注 ATTACK、HIRE 和 TRAVEL 等事件,支持受约束的实体参数和辐射状弧形可视化。

yaml
annotation_schemes:
  - annotation_type: event_annotation
    name: events
    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: 块即可启用知识库搜索和链接。

了解更多关于实体链接 →

分诊 — Prodigy 风格的接受/拒绝/跳过界面,用于快速数据筛选。可自定义标签、键盘快捷键和自动推进,实现高吞吐量标注。

了解更多关于分诊 →

成对比较 — 以二元(点击偏好选项)或量表(滑块)模式比较两个项目。支持 items_keyallow_tiescale: 块及可配置范围。

了解更多关于成对比较 →

对话树 — 标注层次化对话结构,支持逐节点评分、路径选择和分支比较。

了解更多关于对话树 →

共指链 — 将共指文本提及分组为链,带有可视化指示器。支持实体类型、单例控制和多种高亮模式。

了解更多关于共指链 →

分割掩码 — 新增 filleraserbrush 工具,用于像素级图像分割。

PDF/文档的边界框 — 在 PDF 页面上绘制框,用于文档标注任务。

不连续片段allow_discontinuous: true 允许选择不连续的文本段落作为单个片段。


智能标注

MACE 能力评估 — 变分贝叶斯 EM 算法,联合估计真实标签和标注者能力得分(0.0-1.0)。适用于 radio、likert、select 和 multiselect 方案。

yaml
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 3

了解更多关于 MACE →

选项高亮 — 基于 LLM 的可能正确选项高亮,用于离散标注任务。用星标指示器高亮前 k 个选项,同时降低不太可能选项的透明度。

yaml
ai_support:
  option_highlighting:
    enabled: true
    top_k: 3
    dim_opacity: 0.4

了解更多关于选项高亮 →

多样性排序 — 基于嵌入的聚类和轮询采样,确保标注者看到多样化的内容,而不是连续看到相似的项目。

yaml
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 和分割掩码。

bash
python -m potato.export --config config.yaml --format coco --output ./export/

了解更多关于导出格式 →


远程数据源

通过新的 data_sources: 配置块,从 URL、S3、Google Drive、Dropbox、Hugging Face、Google Sheets 和 SQL 数据库加载标注数据。包括部分加载、缓存和凭证管理。

了解更多关于远程数据源 →


调查问卷

55 个经过验证的问卷,涵盖 8 个类别(人格、心理健康、情感、自我概念、社会态度、回应风格、简短表单、人口统计)。在预研究/后研究阶段使用 instrument: "tipi"

了解更多关于调查问卷 →


其他改进

  • 带有关键帧插值的视频对象跟踪
  • 外部 AI 配置文件支持
  • 表单布局网格改进
  • PDF、Word、代码和电子表格的格式处理器

Potato 2.1.0

发布于 2026 年 2 月 5 日

Potato 2.1 引入了实例显示系统、视觉 AI 支持、片段链接、多字段片段标注和布局自定义。

实例显示系统

新的 instance_display 配置块将内容显示与标注分离。在任何标注方案旁边显示图像、视频、音频、文本和对话的任意组合。

yaml
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
    labels: [nature, urban, people]

支持 11 种显示类型,包括 texthtmlimagevideoaudiodialoguepairwisecodespreadsheetdocumentpdf

了解更多关于实例显示 →


多字段片段标注

片段标注方案现在支持 target_field 选项,可在同一实例中跨多个文本字段进行标注。

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

了解更多关于片段标注 →


片段链接

新的 span_link 标注类型,用于在已标注的片段之间创建类型化关系。支持有向和无向链接、N 元关系、可视化弧形显示和标签约束。

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

了解更多关于片段链接 →


视觉 AI 支持

四个新的视觉端点,用于 AI 辅助的图像和视频标注:

  • YOLO — 快速本地目标检测
  • Ollama Vision — 本地视觉语言模型(LLaVA、Qwen-VL)
  • OpenAI Vision — GPT-4o 云端视觉
  • Anthropic Vision — 带视觉功能的 Claude

功能包括目标检测、预标注、分类、提示、场景检测、关键帧检测和对象跟踪。

了解更多关于视觉 AI 支持 →


布局自定义

使用 HTML 模板和 CSS 创建复杂的自定义视觉布局。Potato 生成可编辑的布局文件,或者您可以提供完全自定义的模板,包括网格布局、颜色编码选项和部分样式。

yaml
task_layout: layouts/custom_task_layout.html

包含三个示例布局:内容审核、对话问答和医学审查。

了解更多关于布局自定义 →


标签理据

第四项 AI 功能,生成关于每个标签为何可能适用的平衡解释,帮助标注者理解不同的分类视角。

yaml
ai_support:
  features:
    rationales:
      enabled: true

了解更多关于 AI 支持 →


其他改进

  • 50 多个新测试以提高可靠性
  • 响应式设计改进
  • 增强的项目中心组织,包含布局示例
  • 多种标注类型的错误修复

v2.0 与 v2.1 对比

功能v2.0v2.1
实例显示通过标注方案变通实现专用 instance_display
片段目标单个文本字段通过 target_field 支持多字段
片段链接不可用完整的 span_link 类型
视觉 AI不可用YOLO、Ollama Vision、OpenAI Vision、Anthropic Vision
布局自定义基本自动生成自动生成 + 自定义模板
AI 功能3 种(提示、关键词、建议)4 种(+ 理据)

Potato 2.0

Potato 2.0 是一个重要版本,引入了强大的智能、可扩展标注新功能。本节重点介绍主要新增功能和改进。

AI 支持

集成大语言模型,通过智能提示、关键词高亮和标签建议来辅助标注者。

支持的提供商:

  • OpenAI (GPT-4, GPT-3.5)
  • Anthropic (Claude 3, Claude 3.5)
  • Google (Gemini)
  • Ollama(本地模型)
  • vLLM(自托管)
yaml
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

了解更多关于 AI 支持 →


音频标注

功能齐全的音频标注,基于 Peaks.js 提供波形可视化。创建片段、标记时间区域,并使用键盘快捷键标注语音。

主要功能:

  • 波形可视化
  • 片段创建和标记
  • 逐片段标注问题
  • 15 个以上键盘快捷键
  • 服务端波形缓存
yaml
annotation_schemes:
  - annotation_type: audio_annotation
    name: speakers
    mode: label
    labels:
      - Speaker A
      - Speaker B

了解更多关于音频标注 →


主动学习

根据模型不确定性自动优先排序标注实例。在现有标注上训练分类器,并将标注者集中在最有信息量的样本上。

功能:

  • 多种分类器选项(LogisticRegression、RandomForest、SVC、MultinomialNB)
  • 多种向量化方法(TF-IDF、Count、Hashing)
  • 跨重启的模型持久化
  • LLM 增强选择
  • 多方案支持
yaml
active_learning:
  enabled: true
  schema_names:
    - sentiment
  min_instances_for_training: 30
  update_frequency: 50
  classifier:
    type: LogisticRegression

了解更多关于主动学习 →


训练阶段

在主任务之前通过练习题对标注者进行资格认证。提供即时反馈,并通过可配置的通过标准确保质量。

功能:

  • 带已知答案的练习题
  • 即时反馈和解释
  • 可配置的通过标准
  • 重试选项
  • 管理仪表板中的进度跟踪
yaml
phases:
  training:
    enabled: true
    data_file: "data/training.json"
    passing_criteria:
      min_correct: 8
      total_questions: 10

了解更多关于训练阶段 →


增强的管理仪表板

用于标注任务的综合监控和管理界面。

仪表板标签页:

  • 概览:高层指标和完成率
  • 标注者:性能跟踪、时间分析
  • 实例:浏览数据及分歧评分
  • 配置:实时设置调整
yaml
admin_api_key: ${ADMIN_API_KEY}

了解更多关于管理仪表板 →


数据库后端

MySQL 支持大规模部署,提供连接池和事务支持。

yaml
database:
  type: mysql
  host: localhost
  database: potato_db
  user: ${DB_USER}
  password: ${DB_PASSWORD}

Potato 在首次启动时自动创建所需的表。


标注历史

完整跟踪所有标注更改,包括时间戳、用户 ID 和操作类型。支持审计和行为分析。

json
{
  "history": [
    {
      "timestamp": "2024-01-15T10:30:00Z",
      "user": "annotator_1",
      "action": "create",
      "schema": "sentiment",
      "value": "Positive"
    }
  ]
}

多阶段工作流

构建包含多个连续阶段的复杂标注工作流:

  1. 知情同意 - 知情同意收集
  2. 预研究 - 人口统计和筛选
  3. 说明 - 任务指南
  4. 训练 - 练习题
  5. 标注 - 主任务
  6. 后研究 - 反馈调查
yaml
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(旧版):

yaml
data_files:
  - data.json
id_key: id
text_key: text
output_file: annotations.json

v2(新版):

yaml
data_files:
  - "data/data.json"
 
item_properties:
  id_key: id
  text_key: text
 
output_annotation_dir: "output/"
output_annotation_format: "json"

安全要求

配置文件现在必须位于 task_dir 内:

yaml
# Valid - config.yaml is in the project directory
task_dir: "."
 
# Valid - config in configs/ subdirectory
task_dir: "my_project/"

快速对比

功能v1v2.0v2.1v2.2v2.3
AI/LLM 支持是 + 视觉 AI + 理据+ 选项高亮+ 单人模式
智能体标注12 个转换器、3 种显示类型
最优-最差量表是(3 种计分方法)
音频标注基础完整波形完整波形完整波形完整波形
主动学习是 + 多样性排序+ 单人模式集成
实例显示
片段链接
事件标注
实体链接
成对比较/分诊/共指/对话树
布局自定义自动生成自动 + 自定义模板自动 + 自定义模板自动 + 自定义模板
训练阶段
管理仪表板基础增强增强增强 + MACE+ BWS 标签页、单人模式
数据库后端仅文件文件 + MySQL文件 + MySQL文件 + MySQL文件 + MySQL
导出 CLI是(COCO、YOLO、CoNLL 等)+ Parquet
认证用户名用户名用户名用户名+ Google/GitHub OAuth、OIDC
调查问卷55 个经验证的问卷55 个经验证的问卷
远程数据源S3、GDrive、HuggingFace 等S3、GDrive、HuggingFace 等

迁移指南

更新配置(v1 到 v2)

  1. 数据配置

    yaml
    # Old
    id_key: id
    text_key: text
     
    # New
    item_properties:
      id_key: id
      text_key: text
  2. 输出配置

    yaml
    # Old
    output_file: annotations.json
     
    # New
    output_annotation_dir: "output/"
    output_annotation_format: "json"
  3. 配置文件位置 确保配置文件位于项目目录内。

启动服务器

bash
# v2 command
python -m potato start config.yaml -p 8000
 
# Or shorthand
potato start config.yaml

开始使用

准备好试用 Potato 了吗?从快速入门指南开始,或探索特定功能:

v2.3 功能:

v2.2 功能:

v2.1 功能:

核心功能: