新功能
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 检出运行的人从未遇到这个问题。该问题已由 @0x6362 在 PR #164 中修复。
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_eval和region_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
json3与srv1/srv2/srv3、NIST CTM、Praat TextGrid 以及 ELAN EAF。按文件内容识别,而不是按扩展名。 - 附属转录稿文件 — 数据文件可以指向磁盘上的
media/int_001.srt,而不必把转录内容内联进来。路径经过标准的路径安全检查在task_dir下解析,所以转录稿仍然是你能 diff、能重新导出的文件。 potato transcripts— 一个转换器,把一整个文件夹的 ASR 输出变成可直接标注的数据文件,按文件基名把转录稿和媒体配对。--dry-run在写入任何东西之前先报告它识别到了什么,--emit-config打印一份对应的配置。- 四种 schema 共用同一套格式词汇 —
speech_transcript、voice_interaction和tiered_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)、分析备忘、案例和全文检索,默认值针对一位分析员编码整个语料的场景调优。
qda_mode:
enabled: true # codebook + memos + cases + search
codebook_invivo_key: i # mint a code from a text selection
search:
enabled: true
annotator_claim: trueLLM 评判校准与对齐
先用一个或多个 LLM 评判者自动打标,然后跑一轮盲测的人工校准来衡量准确率、一致性和校准误差。另有一套单评判者对齐工作流,在你打磨评分标准的过程中追踪与人工金标准之间的 Cohen's kappa,并可在标注过程中内联显示评判结果。
基于信号的分诊队列
按每个项目的质量信号给标注队列排序——智能体报错、线上的点踩、低分,或任意自定义字段——让审查者先看到最可疑的项目,而不是按到达顺序看。
triage:
enabled: true
signal_field: quality_score
invert_signal: true
assignment_strategy: priority面向 SFT/DPO 的轨迹编辑
新增的 trajectory_edit 和 trajectory_correction schema 让标注者可以改写智能体轨迹中的步骤。导出器把每一对原始/修正内容变成监督微调目标(trajectory_sft.jsonl)和 DPO 偏好对(trajectory_dpo.jsonl)。
eval_trace 显示类型
一个三栏的智能体轨迹显示类型——推理、函数调用和最终答案——为持续评估而设计:轨迹通过 webhook、Langfuse 轮询器或被监视的目录到达,并在到达时被评判。
工作流与分派
- 异构覆盖 — 按项目设置标注者上限、标注者间一致性报告,以及针对不同项目需要不同标注人数的任务的裁决路由。
- 回收被放弃的分派 — 找回被 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 以及原始浏览器录制导入智能体轨迹。支持自动识别。
agentic:
enabled: true
trace_converter: react # or openai, anthropic, webarena, auto, etc.
trace_file: "data/traces.jsonl"3 种显示类型:
- 智能体轨迹显示 — 彩色编码的步骤卡片,可折叠的观察内容、JSON 美化输出,以及面向工具调用型智能体的时间线侧栏
- 网页智能体轨迹显示 — 完整截图配 SVG 叠加层,标出点击目标、文本输入和滚动操作;面向浏览型智能体的胶片条导航
- 交互式聊天显示 — 实时聊天模式(标注者通过代理与智能体交互)和面向对话型智能体的轨迹审查模式
逐轮评分 — 在整体轨迹之外,对单个步骤单独评分,做更细粒度的评估。
9 个预置 schema — 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 代理,用于实时智能体评估。
单人模式
一个 12 阶段的智能工作流,由一位人类标注者与 LLM 协作标注整个数据集,在只需 10-15% 人工标签的情况下,与多标注者流水线达到 95% 以上的一致性。
12 个阶段:
- 种子标注 — 人类标注 50 个多样化实例
- 初始 LLM 校准 — LLM 参照种子示例进行标注
- 混淆分析 — 识别系统性的分歧模式
- 指南改进 — LLM 提出修改,人类批准更新后的指南
- 标注函数生成 — 受 ALCHEmist 启发的程序化规则
- 主动标注 — 人类标注信息量最大的实例
- 自动改进循环 — 用改进后的指南迭代重新标注
- 分歧探查 — 人类解决 LLM 与标注函数之间的冲突
- 边缘案例合成 — LLM 生成有歧义的示例交由人类标注
- 级联置信度上报 — 人类审查置信度最低的标签
- 提示词优化 — 受 DSPy 启发的自动提示词搜索
- 最终验证 — 随机抽样审查
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)。
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)。支持自动注册、混合模式和会话管理。
authentication:
method: google_oauth
google_oauth:
client_id: ${GOOGLE_CLIENT_ID}
client_secret: ${GOOGLE_CLIENT_SECRET}
allowed_domains:
- "umich.edu"
auto_register: trueParquet 导出
把标注导出为 Apache Parquet 格式,生成三个结构化文件:annotations.parquet、spans.parquet 和 items.parquet。支持 snappy、gzip、zstd、lz4 和 brotli 压缩、增量导出,以及按日期/标注者分区。可配合 pandas、DuckDB、PyArrow、Polars 和 Hugging Face Datasets 使用。
parquet_export:
enabled: true
output_dir: "output/parquet/"
compression: zstd
auto_export: true15 个新的演示项目
project-hub/ 中新增的演示涵盖智能体标注(5 个)、单人模式(3 个)、最优-最差量表(3 个)、认证(2 个)和导出工作流(2 个)。用 potato start config.yaml 启动任意演示。
安全加固
- 加密安全的会话令牌,过期时间可配置
- 默认启用 CSRF 防护
- 认证端点限流
- 对用户提供内容做输入清理
- 依赖审计,所有包已更新
- 内容安全策略(CSP)响应头
其他改进
- 为不受支持的智能体框架编写自定义轨迹转换器
- 带多标注者抽样验证的混合单人模式
- BWS 管理员仪表板标签页,含分数收敛图表
- 支持按日期分区的增量 Parquet 导出
v2.2 与 v2.3 对比
| 功能 | v2.2 | v2.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 等事件,支持受约束的实体参数和辐射状弧形可视化。
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_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 的可能正确选项高亮,用于离散标注任务。用星标指示器高亮前 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/远程数据源
通过新的 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 配置块将内容显示与标注分离。在任何标注方案旁边显示图像、视频、音频、文本和对话的任意组合。
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 种显示类型,包括 text、html、image、video、audio、dialogue、pairwise、code、spreadsheet、document 和 pdf。
多字段片段标注
片段标注方案现在支持 target_field 选项,可在同一实例中跨多个文本字段进行标注。
annotation_schemes:
- annotation_type: span
name: source_entities
labels: [PERSON, ORGANIZATION]
- annotation_type: span
name: summary_entities
labels: [PERSON, ORGANIZATION]片段链接
新的 span_link 标注类型,用于在已标注的片段之间创建类型化关系。支持有向和无向链接、N 元关系、可视化弧形显示和标签约束。
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
功能包括目标检测、预标注、分类、提示、场景检测、关键帧检测和对象跟踪。
布局自定义
使用 HTML 模板和 CSS 创建复杂的自定义视觉布局。Potato 生成可编辑的布局文件,或者您可以提供完全自定义的模板,包括网格布局、颜色编码选项和部分样式。
task_layout: layouts/custom_task_layout.html包含三个示例布局:内容审核、对话问答和医学审查。
标签理据
第四项 AI 功能,生成关于每个标签为何可能适用的平衡解释,帮助标注者理解不同的分类视角。
ai_support:
features:
rationales:
enabled: true其他改进
- 50 多个新测试以提高可靠性
- 响应式设计改进
- 增强的项目中心组织,包含布局示例
- 多种标注类型的错误修复
v2.0 与 v2.1 对比
| 功能 | v2.0 | v2.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(自托管)
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
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增强的管理仪表板
用于标注任务的综合监控和管理界面。
仪表板标签页:
- 概览:高层指标和完成率
- 标注者:性能跟踪、时间分析
- 实例:浏览数据及分歧评分
- 配置:实时设置调整
admin_api_key: ${ADMIN_API_KEY}数据库后端
MySQL 支持大规模部署,提供连接池和事务支持。
database:
type: mysql
host: localhost
database: potato_db
user: ${DB_USER}
password: ${DB_PASSWORD}Potato 在首次启动时自动创建所需的表。
标注历史
完整跟踪所有标注更改,包括时间戳、用户 ID 和操作类型。支持审计和行为分析。
{
"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/"
output_annotation_format: "json"安全要求
配置文件现在必须位于 task_dir 内:
# Valid - config.yaml is in the project directory
task_dir: "."
# Valid - config in configs/ subdirectory
task_dir: "my_project/"快速对比
| 功能 | v1 | v2.0 | v2.1 | v2.2 | v2.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)
-
数据配置
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/" output_annotation_format: "json" -
配置文件位置 确保配置文件位于项目目录内。
启动服务器
# v2 command
python -m potato start config.yaml -p 8000
# Or shorthand
potato start config.yaml开始使用
准备好试用 Potato 了吗?从快速入门指南开始,或探索特定功能:
v2.3 功能:
- 智能体标注 - 使用 12 种转换器和 3 种显示类型评估 AI 智能体
- 单人模式 - 人机协同标注
- 最优-最差量表 - 带评分的比较式标注
- SSO 与 OAuth - Google、GitHub 和 OIDC 身份验证
- Parquet 导出 - 列式数据导出
v2.2 功能:
- 事件标注 - N 元事件结构
- 实体链接 - 知识库链接
- 分诊 - 快速数据筛选
- 共指链 - 实体共指
- 对话树 - 层次化对话标注
- MACE - 标注者能力评估
- 选项高亮 - AI 辅助选项引导
- 多样性排序 - 基于嵌入的项目排序
- 导出格式 - 支持 6 种格式的导出 CLI
- 远程数据源 - 云端数据加载
- 调查问卷 - 55 个经验证的问卷
v2.1 功能:
核心功能: