新功能
Potato v2.x 的新特性。2.8 版加入計算機視覺、3D 點雲、深度圖、機器人回合與世界模型評測,並對幾何與時間提供機會校正後的一致性度量。61 種標註類型,24 種展示類型。
本頁介紹 Potato v2.x 各版本的新功能與改進。
Potato 2.11.1
2026 年 10 月釋出
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身份登入,所以不要把它用於真實研究。 - 只有來自伺服器本機的請求才能不用金鑰開啟管理頁面,即來自迴環地址、且不帶
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會對還沒有人標註的條目做預測。此前一次執行只對已經標註過的留出條目做預測,所以寫回(write-back)從未到達預標籤本該服務的那些條目。
模型訓練文件介紹了訓練執行、寫回和稽核佇列。
影響早期研究的修復
- 預標籤在重啟後丟失。 啟動時重放已儲存預測的步驟在任何條目載入之前就已執行,所以每次重啟都會清空模型稽核佇列。現在它在條目載入之後執行,並執行與寫回相同的檢查。
- 文本模型在 URL 上訓練。 帶有
url、path或file_name欄位的條目會把該欄位的值交給訓練器,而不是文本。 - SSO 下重置密碼會失敗。 在
method: oauth且啟用allow_local_login時,每次重置都會報錯。現在可以重置本地賬戶了。 ai_support拒絕 OpenRouter。 現在接受endpoint_type: openrouter。
釋出說明裡有完整清單。
Potato 2.11.0
2026 年 10 月釋出
Potato 2.11.0 新增了標註引擎(labeling engine)。它用模型為資料集打標籤,再用一份盲態隨機抽取的人工標籤樣本來衡量模型出錯的頻率。你先宣告最終標籤必須滿足的條件,例如“被接受的機器標籤中至多 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 即可開啟引擎。引擎的來源(sources)是模型,按級聯順序依次嘗試,最後一個來源之後,條目交給人來標註。每份契約(contract)對應一個標註方案,並用引擎隨機請求、盲態提供的人工標籤來檢驗:頁面上不顯示預標註、評審模型的判定或 AI 輔助。
- 來源。 LLM、視覺語言模型、決策模型(Laya 以及任何
/v1/systemone伺服器)、YOLO 檢測器、帶標籤順序互換的 LLM 評審、評審團、用本研究自身標籤訓練的模型,以及你已有的標籤。 - 契約。
selective_risk以給定置信度限定被接受的機器標籤中出錯的比例。ppi給出流行率或均值的區間,無論機器品質如何,該區間都有效。no_worse_than_human執行替代標註者檢驗,budget_first預估一筆人工標註預算能換來什麼,distributional則在主觀條目上把機器標籤與人們的意見分佈進行比較。 - 模態。 單選、有序、數值和多標籤方案,影像區域,音訊、影片、時間定位和分層片段,3D 物體,以及智慧體軌跡的步驟標籤。區域、片段、3D 物體和軌跡用一致性報告所用的度量來評分。
- 抽查。 一部分已被接受的機器標籤會以盲態送回給人。當抽查顯示錯誤率高於目標時,引擎在該方案上停止接受機器標籤(需開啟
features.drift,預設開啟),重新認證後恢復接受。 - 介面。
potato label run|status|certify|certificate|export|calls|distill|optimize|migrate-config、位於/api/engine/v1下的 REST API、五個engine_*MCP 工具、一個 Python SDK,以及位於/admin/labeling-engine的管理頁面。
一份已滿足的契約,是關於機器與標註樣本的那些人之間一致程度的統計陳述。引擎不會檢查這些人是否標得對,所以用不可靠的標註者檢驗的契約,證明的是與不可靠標註者的一致。標註引擎契約說明了每種契約檢驗什麼、何時不成立。
icl_labeling、judge_calibration 和 pre_annotation 仍然可用,各自會在啟動時列印一條說明,指出對應的引擎寫法。potato label migrate-config 會寫出等價的 labeling_engine 塊。單人模式 和評審對齊(judge alignment)沒有被棄用。遷移到標註引擎裡有對照表。
一致性
/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,後者會比較這些結構本身。- 兩個相同的零長度片段現在算作一致。 它們過去被算作完全不一致。
- 機器評分者不進入釋出的資料。 釋出和 Paper Mode 會把機器評分者排除在金標準標籤和一致性資料之外。
單人模式
- 盲態建議。
solo_mode.suggestions在全部條目或一部分抽樣條目上隱藏 LLM 的標籤,交接時讀取的是盲態條目上的一致性,因為螢幕上顯示的建議會給核對它的人造成錨定。 - 花費上限和響應快取。
ai_budget.cap_usd會在標註開始前和每個批次之前檢查,solo_mode.cache會複用對重複呼叫的回覆。 - 決策模型。
systemone和laya端點用一次前向計算為固定選項的方案打標籤,可作為快速的第一層。單人模式 裡有一份配置。 - 金標準集、評審團和課程式排序。
solo_mode.gold在完整執行之前用已知標籤給提示詞打分,solo_mode.jury讓多個模型對每個條目投票,instance_selection.curriculum讓你從 LLM 認為最容易的條目開始。另外還新增了提示詞敏感性檢查。
影響 2.10 研究的修復
- 影像頁面會自行儲存預填的答案。 在帶
pre_annotation的image_annotation方案上,畫布載入後重新排版時,會把預填的形狀儲存為標註者的答案,所以一個沒被碰過的條目也算作已回答。現在只有編輯才會儲存。在使用了預標註的 2.10 影像研究裡,部分算作已回答的條目可能從未被碰過。 - 不帶 CORS 頭的主機上的影像無法載入。 不傳送
Access-Control-Allow-Origin頭的主機(例如 cocodataset.org)會拒絕畫布的請求,頁面顯示 "Failed to load image"。現在頁面會不經 CORS 再載入這類影像。繪製照常可用,而需要讀取影像畫素的區域填充、SAM 和文本提示分割會說明它們為何無法執行。 - 沒有
color的預標註形狀會被丟棄。 條目顯示 "Annotations: 0",沒有任何警告。現在該形狀會使用其標籤的顏色。 - 單人模式 的 "Generate prompt" 從未呼叫模型。 現在它會請修訂模型寫出第一版提示詞。沒有修訂模型時,它退回到任務描述,並說明這一點。
- 通過
potato mcp connect被拒絕的呼叫看起來像成功。 被拒絕的工具呼叫過去返回isError: false,現在會作為工具錯誤返回,並帶上伺服器的訊息。 - 完整研究骨架示例裡有一個失效的鍵。 Potato 不讀取
training.feedback.enabled,所以示例現在設定feedback.show_explanations。 - 空閒會話從未被登出,詳見本節開頭。
- 仲裁把機器評分者也算了進去。 機器標註者可能把一個條目送去仲裁,
min_human_annotations被忽略,缺少一致性分數時格式化會崩潰。 - Prolific 自動擴容把機器標註也算了進去,並且忽略了每個條目的上限。現在要開放的名額數只把人工標註計入每個條目的上限。
- 邊緣案例發現在 vLLM 上不起作用。 vLLM 上的引導解碼從不返回邊緣案例欄位,現在這些欄位已成為響應模式的一部分。
釋出說明裡有完整清單。
Potato 2.10.3
2026 年 10 月釋出
Potato 2.10.3 修復了 2.10.2 釋出後發現的三個錯誤。
pip install --upgrade potato-annotation- 全體一致的資料上的一致性。 當每位標註者在每個條目上都給出相同答案時,
/admin/api/agreement會把該方案返回為{"error": "float division by zero"}。這種情況下偶然一致為 1,所以 alpha 和兩個 kappa 都沒有定義。該路由現在把它們報告為null,percent_agreement為 1.0,並給出與/admin/iaa相同的說明,總體平均值也不再計入該方案。 potato deploy button --dry-run不再聯網。 不帶--hf-backup-repo時,試執行會向 HuggingFace 查詢令牌屬於誰,令牌無效時會以 traceback 結束。現在試執行使用佔位名<hf-account>/<name>-annotations,與potato deploy up --dry-run一致;正式執行則把被拒絕的令牌報告為錯誤資訊。- 匯入 Potato 時不再計算密碼雜湊。 Potato 過去在匯入時計算一個 PBKDF2 雜湊,所以每個程序啟動時都要花費 100,000 次迭代,命令列工具也不例外。現在,這個雜湊在第一次有未知使用者名稱嘗試登入時才生成。匯入在 Pyodide 下也重新可用了,Pyodide 的
hashlib沒有pbkdf2_hmac。
釋出說明裡有完整清單。
Potato 2.10.2
2026 年 10 月釋出
Potato 2.10.2 修復了通過 pip 安裝或在 Docker 映像中無法使用的功能,堵上了以他人身份登入的途徑,讓 MySQL 後端真正工作起來,並更正了一致性統計。如果你發表過用早期版本算出的一致性數字,請重新計算。
pip install --upgrade potato-annotation- SSO 賬戶接受任何密碼。 在啟用 OAuth 的任務中,密碼錶單會讓任何人登入由身份提供方註冊的賬戶。現在 SSO 身份不再通過密碼認證;在使用 MySQL 的研究中,陌生人也不能再註冊現有標註者的使用者名稱並繼承其工作。
- 通過 pip 安裝時,
ai_support和調查問卷無法使用。 wheel 漏掉了 AI 提示詞和調查問卷,所以用到其中任何一項的研究都會在啟動時停止。容器和potato deploy的部署目標還漏掉了十個子系統,聊天支援就是其中之一。 - MySQL 後端從未真正啟用。 指定了它的配置會把標註存到磁碟上。用
pip install 'potato-annotation[mysql]'安裝驅動;匯出、備份和potato deploy pull現在會讀取資料庫。 - 59 項一致性統計修復,每一項都對照了 scipy、sklearn 或
krippendorff包等參考實現。未定義的係數現在報告為未定義,而不是 1.0;序數 alpha 使用 Krippendorff 的序數度量;MACE 對純粹的垃圾標註者估計的能力約為 0.01,而不是 0.35;重啟後結果不再變化;plackett_luce擬合的是最優-最差似然,而不是重複 Bradley-Terry。 - 使用地圖座標的點雲保留了精度。 採用 UTM 座標的 LAS 檔案過去被繪製在間距可達 0.5 m 的粗網格上。Potato 現在相對於一個本地原點提供該檔案,並以檔案自身的座標儲存標註。
釋出說明裡有完整清單。
Potato 2.10.1
2026 年 10 月釋出
Potato 2.10.1 修復了 2.10.0 釋出後在 potato deploy 和備份中發現的五個問題。在依賴試執行(dry run)的結果之前,請先升級。
pip install --upgrade potato-annotation- 試執行對
up隨後會拒絕的部署給出了通過。 沒有--backup的 Heroku 或 ECS Express、沒有備份儲存可用來上傳項目的 Render 或 Railway,以及項目太大、無法內聯傳送的 Fly,都會列印一份沒有問題的計劃。現在計劃和up執行同一項檢查,兩者都會列印REFUSED: <reason>並以狀態碼 2 退出。 - 在無法生效的地方提供了
--demo。 Render、Railway 和 ECS Express 會把你的項目上傳到備份所用的儲存,所以即使是標註可以丟棄的研究,它們也需要--backup hf或--backup s3。現在預檢警告只對 Heroku 和 HuggingFace 提供--demo。 --cloud jetstream2規劃了錯誤的實例規格(flavor)。 試執行顯示的是m1.small,而up建立的是m3.small。- 有兩個價格是錯的。
potato deploy providers顯示aws-ec2每月約 $16,fly約 $7。計劃算出的是 $18.31 和 $5.85,現在摘要顯示約 $18 和約 $6。 backup: {enabled: false}關不掉備份,前提是配置中仍有huggingface_backup塊。現在以新的塊為準。
釋出說明裡有完整清單。
Potato 2.10.0
2026 年 10 月釋出
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建立一個每月固定 $12 的 Lightsail 實例,只需要lightsail:*許可權。aws-ec2用於關閉了 Lightsail 的賬號;aws-ecs在 ECS Express Mode 上執行容器,前面是一個由 AWS 管理的 HTTPS 地址,費用更高,並且必須配置備份。 - Heroku,使用一個 Basic dyno。Heroku 每天清空磁碟,所以沒有
--backup或--demo時 Potato 會拒絕部署到那裡。 - Fly 和 Railway,各帶一個持久卷。
- Hetzner、Vultr 和 Linode,作為虛擬機器,設定方式與 DigitalOcean 相同,併為 IP 地址簽發 Let's Encrypt 證書。
- 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”按鈕所需的檔案寫入你的倉庫,讓其他人可以在自己的賬號裡執行這個任務。
新的 deploy-aws 和 deploy-openstack extra 會安裝 AWS 和 OpenStack 客戶端。
備份與恢復
新的 backup 塊每五分鐘把標註輸出和 SQLite 資料庫的快照複製到一個 HuggingFace 資料集、一個相容 S3 的儲存桶,或同時複製到兩者。當伺服器以空的任務目錄啟動而備份中有資料時,Potato 會在載入任何內容之前先恢復資料,因此重啟之後標註者可以從中斷的地方繼續。向 potato deploy up 傳入 --backup hf、--backup s3 或 --backup hf,s3 即可啟用。舊的 huggingface_backup 塊會被讀作只有一個 sink、且關閉了恢復的 backup 塊,所以現有部署的行為保持不變。
文本顯示為圖片
text_as_image: true 在伺服器上把每個條目的文本渲染成 PNG,並從頁面、嵌入的條目記錄和 JSON 端點中移除這些文字,使標註者沒有任何可以選中、複製或貼上的內容。這個功能提高了把條目貼上進聊天機器人的成本,但標註者仍然可以重新輸入文本,或者對截圖做 OCR。螢幕閱讀器無法從圖片中讀出任何內容,所以如果研究中有使用螢幕閱讀器的標註者,這個功能並不適用。當 text_as_image 與片段方案、讀取條目文本欄位的方案、Pocket Mode 或多人房間(Rooms)同時使用時,Potato 會拒絕啟動。由 @Eyecatch3r 在 PR #169 中貢獻。
影響已收集資料的修復
- 在沒有持久磁碟的主機上,重啟會丟失之前的工作。 伺服器以空狀態啟動,回來的標註者的新狀態會覆蓋已備份的副本。啟動時恢復修復了這個問題。
- 使用
--volume-gb的 DigitalOcean 把標註儲存在根磁碟上,而不是捲上。輸出和 SQLite 資料庫現在位於/data。 - HuggingFace 備份在官方釋出的映像中不起作用,因為映像裡沒有
huggingface_hub;在 Render 和 DigitalOcean 上,--hf-token設定的變數沒有任何地方讀取。現在映像會安裝新的hostingextra。 - Render 部署啟動時沒有項目,容器以“config file not found”退出。現在容器會在啟動時下載項目並校驗其 sha256。
釋出說明裡有完整清單。
Potato 2.9.2 至 2.9.4
2026 年 9 月釋出
如果你不信任的人能訪問你的伺服器,請升級到 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列。 - URL 字首下的會話 cookie(2.9.4)。 同一主機上以
/app1和/app2提供的兩個研究共用一個會話 cookie,所以登入其中一個就會退出另一個。現在 cookie 的作用域限定在各自的字首內。已在 PR #172 中由 @Eyecatch3r 修復。 - 更快的翻頁(2.9.2)。 指令碼和樣式表在條目之間保持快取,Next 需要的往返次數更少。在往返時間為 80 ms 的鏈路上,單選按鈕任務中的 Next 從約 2.6 s 降到約 0.8 s。
- 緊接著 Next 的文本編輯(2.9.2)。 清空文本框後在一秒內按下 Next,舊文本會被保留下來。現在每次儲存都會先應用尚未提交的編輯。
Potato 2.9.0
2026 年 9 月釋出
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可以在音訊或影片片段內渲染任意標註類型。它此前會被接受,但會被忽略。
一致性、品質與 AI
- 隨時間變化的一致性,與編碼本的修訂版本對齊,並在
/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之外的每種分派策略下,AI 建議針對的都是錯誤的條目。 - 在預設的記憶體配置下,註冊資訊從未被儲存,因此重啟之後任何人都可以佔用一個已有的使用者名稱。
感謝 Aldo Costa(@Eyecatch3r)貢獻 #168 和 #171,感謝 @ruthenian8 報告並診斷 #170。
Potato 2.8.2
2026 年 8 月釋出
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 年 8 月釋出
一次安全釋出。它修復了通過即時編碼智慧體實現的遠端程式碼執行(GHSA-cm4p-5rfv-x252)、無需管理員金鑰即可讀取的管理配置,以及一個接受所有請求的軌跡攝取 webhook。如果你在 localhost 以外的任何地方執行 Potato,請升級,並直接升到 2.8.2,它帶有 2.8.1 缺失的那兩項修復。
Potato 2.8.0
2026 年 8 月釋出
Potato 過去是一個帶影像模式的文本標註平臺。現在它覆蓋影像、影片、十億畫素掃描件、3D 點雲、深度圖、機器人回合、生成式影片推演以及視覺—語言接地。對其中每一項,它都會報告機會校正後的一致性。
如果你是從 PyPI 安裝的,請升級。 2.7.1 及之前的 wheel 用單層萬用字元宣告包資料,因此有 27 個位於子目錄中的模板在每個 wheel 裡都缺失。對於執行 pip install 的人來說,單人模式的設定路由、管理頁面、評判校準和語料地圖全都是壞的;從 git 檢出執行的人則從未遇到過。已在 PR #164 中由 @0x6362 修復。
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此前開頭會@importGoogle Fonts,這會在頁面載入時把每位標註者的 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會列印一份匹配的配置。- 四個方案共用一套格式詞彙——
speech_transcript、voice_interaction和tiered_annotation現在接受audio_dialogue展示類型接受的一切。此前只有展示類型接受。 - **標註 Whisper 轉寫稿和標註 YouTube 字幕**把這兩個起點從頭到尾走了一遍。
在 2.7.1 中,ASR 和說話人分離這兩步在上游執行,Potato 讀取它們的輸出。Potato 2.9 通過 potato transcripts --transcribe --diarize 增加了本地轉寫和說話人分離,而出聲思考模式自 2.7.0 起就已經在本地轉寫標註者自己的語音。
Potato 2.7.0
2026 年 7 月釋出
Potato 2.7 建立在一個想法之上:標註工具應當測量判斷是如何做出的,而不只是記錄判斷的結果。這對兩類判斷者都適用——做標註的人,以及被評測的 AI 模型。
測量人類如何標註
七項需要顯式開啟的功能,沒有一項需要 LLM。
- 心理測量引擎——一個即時的項目反應理論層,給每個標籤一個後驗機率和一個敏感性區間(
p = 0.94 [0.88–0.97]),而不是一個光禿禿的多數投票。它僅憑一致性模式就能估計標註者能力和條目難度,把條目路由給判斷資訊量最大的標註者,並標出可能的編碼本缺陷。 - 多人房間——把你的團隊已經在共享螢幕上開的校準會內建到工具裡並加上測量:盲投、主持人揭曉、討論、重投,配一個即時的 Krippendorff α 儀表,顯示這場會議值多少。
- 邊界實驗室——在每個標籤之後提出反事實探針(“這還成立嗎?”),把普通標註變成對比集,並且不用埋設黃金條目就能發現前後不一致的標註者。
- 吐真劑——“出人意料地流行”式的同伴預測打分,在標註困難的地方勝過多數投票,而且不需要黃金標籤。
- 出聲思考模式——標註者一邊工作一邊說話;語音轉文字完全在本地執行,逐字轉寫稿成為理由說明。
- 論文模式——一條命令把項目變成一份可編譯的 LaTeX 資料集報告,含一致性統計和引用。
- 口袋模式——一等公民級別的移動端標註,帶可滑動的卡片堆、離線同步和 PWA 安裝。
評估 AI 智慧體
智慧體評測套件擴充套件到了團隊結構和多模態智慧體:可點選的智慧體互動圖、跨智慧體的失敗歸因、交接審閱、單個智慧體和團隊的記分卡、工具爭用時間線、湧現行為標註,以及 GUI/計算機操作軌跡、全雙工語音時間線、影片時間接地和文件表格結構。
其他各處
跨文件事件標註、輪次級標註、帶整頁編輯器的活文件編碼本、可選 OCR 的 PDF 跨頁連結、帶分組方案的 RBAC 角色、10 種語言的管理端和標註端儀表板,以及輕得多的安裝——AI SDK 現在按需載入,啟動時間從約 2.0 秒降到 0.7 秒。
Potato 2.6.0
2026 年 6 月釋出
Potato 2.6 進入定性資料分析領域,並深化了智慧體評測工具集。它新增了 QDA 模式、一套帶基於訊號的分診佇列的 LLM 評判校準與對齊工作流,以及能產出 SFT 和 DPO 訓練資料的軌跡編輯方案。Potato 同時改用 GPL-3.0-or-later 許可(原為 PolyForm Shield)。
QDA 模式
需要顯式開啟的 qda_mode 把 Potato 變成一個協作式的定性編碼工作區。啟用它會組合出活文件編碼本、原生碼編碼、分析者備忘、個案和全文搜尋,預設值針對一位分析者編碼整個語料的場景做了調整。
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 kappa,並可在標註過程中內聯顯示評判結果。
基於訊號的分診佇列
按每個條目的品質訊號給標註佇列排序——智慧體的一次報錯、生產環境的一次點踩、一個低分,或者任何自定義欄位——讓審閱者先看到最可疑的條目,而不是按到達順序來看。
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 顯示類型
一個三欄的智慧體軌跡展示類型——推理、函式呼叫和最終答案——為持續評測而建,軌跡通過 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。
- 方案重新命名。
annotation_type: highlight現在是span,並已提供遷移。更新舊配置只需改掉類型名;已有的span配置不受影響。 - 一輪廣泛的 QA 加固涉及路由註冊、訓練階段、Prolific、持久化、匯出與問卷處理、webhook、單人模式和主動學習。
Potato 2.5.0
2026 年釋出
一波定性編碼方面的改進,讓 Potato 在 NLP 和 ML 標註之外,對定性研究的工作流也站得住腳。
- 標註者間一致性——除 Krippendorff alpha 之外,還有 Cohen kappa(兩兩)和 Fleiss kappa(N 位評分者),通過管理端一致性 API 提供。參見標註者間一致性指南。
- 新的匯出器——
codebook(按方案匯出的 CSV,含編碼層級、顏色、描述和使用次數)和quotation_report(按片段匯出的 CSV,含文本、偏移量、源文件和編碼者)。 - 編碼分析——用於編碼兩兩共現的管理端點,以及基於已有實例後設資料的編碼—屬性交叉表。
Potato 2.4.5
2026 年釋出
一次穩定性與工具鏈釋出。
- 帶驗證的迭代改進——一個可插拔框架,用於迭代改進單人模式的標註指南,並設有防止指南自相矛盾和後設資料洩漏的護欄。
- 配置校驗器——新的
python -m potato.validate_cli命令列工具,對照已知配置模式檢查配置鍵。 - 安全——修復了路徑校驗中一個通過同級目錄字首繞過的路徑穿越問題(GHSA-q9m2-fhv9-3jcf)。
- 在儲存/導航狀態同步、Prolific 整合、多階段導航和品質控制反饋方面的修復。
Potato 2.3.0
2026 年 3 月 9 日釋出
Potato 2.3 是 Potato 歷史上最大的一次釋出,帶來了智慧體標註、單人模式、最優—最差量表、SSO/OAuth 認證、Parquet 匯出、15 個新的演示項目和安全加固。
智慧體標註
一套通過人工標註來評測 AI 智慧體的完整系統。包含 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 種展示類型:
- 智慧體軌跡展示——彩色編碼的步驟卡片,帶可摺疊的觀察結果、JSON 美化輸出和時間線側欄,面向使用工具的智慧體
- 網頁智慧體軌跡展示——完整截圖配 SVG 疊加層,顯示點選目標、文本輸入和滾動操作;膠片條導航,面向瀏覽網頁的智慧體
- 互動式聊天展示——即時聊天模式(標註者通過代理與智慧體互動)和軌跡審閱模式,面向對話式智慧體
逐輪評分——在整體軌跡之外對單個步驟評分,用於細粒度評測。
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 代理。
單人模式
一種由單個人類標註者與 LLM 協作標註整個資料集的工作流,與多標註者流水線的一致性達到 95% 以上,而所需的人工標籤總量只有 10-15%。
單人模式以階段狀態機的方式執行,而不是一個固定序列。它依次經過設定、提示詞審閱、可選的邊緣案例迴圈、並行標註、分歧消解、帶定期審閱和規則審閱的主動標註、自主標註和最終驗證。其中五個階段在發現問題出在提示詞上時可以退回提示詞審閱,而最終驗證在樣本未達到閾值時會回落到主動標註。
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 預測、分歧、隨機、資料製圖、邊緣案例規則)加權,決定人類接下來看到什麼。
最優-最差量表
高效的比較式標註,標註者從元組中選出最好和最差的條目。按平衡不完全區組設計自動生成元組,並提供三種打分方法(計數法、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"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:
- parquet15 個新的演示項目
project-hub/ 中的新演示覆蓋智慧體標註(5 個)、單人模式(3 個)、最優-最差量表(3 個)、認證(2 個)和匯出工作流(2 個)。用 potato start config.yaml 可以啟動其中任意一個。
安全加固
- 加密安全的會話令牌,過期時間可配置
- 預設啟用 CSRF 保護
- 認證端點上的速率限制
- 對使用者提供內容的輸入淨化
- 依賴審計,所有包均已更新
- 內容安全策略響應頭
其他改進
- 針對不受支援的智慧體框架的自定義軌跡轉換器
- 帶多標註者驗證抽樣的混合單人模式
- 帶分數收斂圖表的 BWS 管理儀表板標籤頁
- 按日期分割槽的增量 Parquet 匯出
v2.2 與 v2.3 對比
| 功能 | v2.2 | v2.3 |
|---|---|---|
| 智慧體標註 | 不可用 | 12 個轉換器、3 種展示、9 個方案 |
| 單人模式 | 不可用 | 由階段狀態機驅動的人機協作工作流 |
| 最優-最差量表 | 不可用 | 帶 3 種打分方法的 BWS |
| 認證 | 僅使用者名稱 | + Google OAuth、GitHub OAuth、OIDC |
| Parquet 匯出 | 不可用 | 三檔案 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
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: 塊即可啟用知識庫搜尋和連結。
分診——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匯出系統
新的可插拔匯出命令列工具(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 個類別(人格、心理健康、情感、自我概念、社會態度、作答風格、簡版、人口統計)。在 prestudy/poststudy 階段用 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
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"視覺 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 多個新測試,提升可靠性
- 響應式設計的改進
- 更好的 project-hub 組織結構,含佈局示例
- 各標註類型的缺陷修復
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 輔助、主動學習、訓練階段、多階段工作流和 MySQL 後端。
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
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增強的管理儀表板
面向標註任務的全面監控與管理介面。
儀表板標籤頁:
- 概覽:高層指標和完成率
- 標註者:表現跟蹤、用時分析
- 實例:瀏覽資料並檢視分歧分數
- 配置:即時調整設定
admin_api_key: ${ADMIN_API_KEY}資料庫後端
面向大規模部署的 MySQL 支援,帶連線池和事務支援。
database:
type: mysql
host: localhost
database: potato_db
username: ${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/"
export_annotation_format: "jsonl"安全要求
配置檔案現在必須位於 task_dir 之內:
如果配置檔案和資料放在一起,任務目錄就是當前目錄:
task_dir: "."如果配置檔案放在子目錄裡,就寫出它所屬的項目目錄:
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 |
| 匯出命令列工具 | 無 | 無 | 無 | 有(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 功能:
- 智慧體標註 - 用軌跡轉換器和步驟級展示評測 AI 智慧體
- 單人模式 - 人與 LLM 協作標註
- 最優-最差量表 - 帶打分的比較式標註
- SSO 與 OAuth - Google、GitHub 和 OIDC 認證
- Parquet 匯出 - 列式資料匯出
v2.2 功能:
- 事件標註 - N 元事件結構
- 實體連結 - 知識庫連結
- 分診 - 快速資料篩查
- 共指鏈 - 實體共指
- 對話樹 - 層級式對話標註
- MACE - 標註者能力估計
- 選項高亮 - AI 輔助的選項引導
- 多樣性排序 - 基於嵌入的條目排序
- 匯出格式 - 支援 6 種格式的匯出命令列工具
- 遠端資料來源 - 雲端資料載入
- 調查問卷 - 55 份經過驗證的問卷
v2.1 功能:
核心功能: