Potato 2.4.0: 웹 에이전트 어노테이션, 실시간 평가, HuggingFace 통합
Potato 2.4.0은 웹 에이전트 트레이스 검토, 실시간 라이브 에이전트 평가, LLM 채팅 사이드바, HuggingFace Hub 내보내기, 웹훅, SSO/OAuth, 그리고 다섯 가지 능동 학습 전략을 제공합니다.
Note: The feature counts in this post reflect the state at the v2.4.0 release. Potato now supports 30+ annotation types. See the annotation types documentation for the full list.
Potato 2.4.0이 출시되었습니다. 2.3에서 에이전트 어노테이션이 도입된 이후 가장 큰 업데이트로, 사람들이 계속 요청해 온 에이전트 평가 기능과 더불어 다수의 엔터프라이즈 및 통합 작업을 추가합니다.
웹 에이전트 어노테이션
웹을 탐색하는 에이전트를 평가하는 것은 어렵습니다. 에이전트가 무엇을 보았는지, 어디를 클릭했는지, 어떻게 스크롤했는지, 그리고 각 단계가 타당했는지를 확인해야 합니다. Potato 2.4는 이를 위해 웹 에이전트 트레이스 뷰어를 추가합니다.
검토 모드는 어노테이터에게 사전 녹화된 스크린샷을 필름스트립 형태로 보여 줍니다. SVG 오버레이가 클릭 대상, 바운딩 박스, 마우스 경로, 스크롤 위치를 표시하므로, 평가자는 에이전트가 본 것을 그대로 보면서 인라인으로 어노테이션 컨트롤을 사용할 수 있습니다.
생성 모드는 인터페이스를 뒤집습니다. 어노테이터는 iframe 안에서 실제 웹사이트를 탐색하고, Potato는 모든 상호작용을 어노테이션 준비가 된 트레이스로 기록합니다. WebArena, Mind2Web, Anthropic Computer Use 형식의 기존 트레이스를 가져오거나 진행하면서 새 트레이스를 녹화할 수 있습니다.
display:
type: web_agent_trace
mode: review # or "creation"
show_overlays: true
keyboard_shortcuts: true라이브 에이전트 평가
때로는 사후가 아니라 에이전트가 실행되는 동안 평가해야 할 때가 있습니다. 새로운 라이브 에이전트 평가 시스템은 어노테이터가 AI 에이전트가 실시간으로 작업을 수행하는 것을 지켜보고 실행 중에 그 동작을 어노테이션할 수 있게 해 줍니다.
Potato는 Agent Runner Manager를 통해 에이전트를 병렬로 실행하고, 웹훅 수신기를 통해 도착하는 트레이스를 캡처하며, 어노테이터에게 실시간 평가 인터페이스를 보여 줍니다. 또한 단계 수준의 어노테이터 간 일치도를 자동으로 추적합니다.
LLM 채팅 사이드바
어려운 어노테이션 판단은 두 번째 의견이 도움이 됩니다. 새로운 LLM 채팅 사이드바는 어노테이터에게 인터페이스를 벗어나지 않고 작업 도중에 참고할 수 있는 AI 어시스턴트 패널을 제공합니다.
사이드바는 다중 턴 대화를 처리하고 전체 작업 맥락을 자동으로 주입합니다. OpenAI, Anthropic, Ollama 엔드포인트와 함께 작동하며, 모든 대화를 행동 데이터로 기록하므로 어노테이터가 AI 지원에 어떻게 의존하는지 연구하려는 경우 유용합니다.
llm_sidebar:
enabled: true
provider: anthropic
model: claude-3-5-sonnet-20241022
system_prompt: "You are a helpful annotation assistant for this {task_name} task."
collapsible: trueHuggingFace 생태계 통합
Potato는 이제 몇 가지 방식으로 HuggingFace에 연결됩니다. 자동 생성된 DatasetCard와 함께 어노테이션을 Hub 데이터셋으로 직접 푸시하고, 왕복 없이 datasets.Dataset 객체로 다시 불러오며, Potato 인스턴스를 HuggingFace Spaces에 배포하고, LangChain 콜백을 통해 LangChain 에이전트를 실행할 때 트레이스를 자동으로 수집할 수 있습니다.
pip install potato-annotation[huggingface]from potato import PotatoDataset
ds = PotatoDataset.from_output("annotations/")
ds.push_to_hub("my-org/my-annotation-dataset")웹훅 시스템
Potato 2.4는 이벤트 기반 통합을 위한 완전한 웹훅 시스템을 제공합니다. Standard Webhooks 사양에 따라 HMAC-SHA256으로 서명된 다섯 가지 이벤트 유형이 있습니다:
| 이벤트 | 트리거 시점 |
|---|---|
annotation.created | 어노테이터가 레이블을 제출할 때 |
item.fully_annotated | 항목이 요구되는 중복 수에 도달할 때 |
task.completed | 작업의 모든 항목이 어노테이션될 때 |
user.phase_completed | 사용자가 한 단계를 완료할 때 (Solo Mode) |
quality.attention_check_failed | 어노테이터가 주의 점검에 실패할 때 |
웹훅은 구성 가능한 재시도와 함께 비차단 방식으로 전달되며, 관리자 API를 통해 관리됩니다.
webhooks:
- url: https://your-system.example.com/potato-events
secret: your-signing-secret
events: [annotation.created, item.fully_annotated]고급 능동 학습: 5가지 전략 + LLM 콜드 스타트
능동 학습 시스템은 이제 다섯 가지 질의 전략을 제공합니다:
- 불확실성 샘플링: 모델이 가장 확신하지 못하는 인스턴스를 선택
- 다양성 기반 선택: 입력 공간의 커버리지를 최대화
- BADGE: Batch Active Learning by Diverse Gradient Embeddings
- BALD: Bayesian Active Learning by Disagreement
- 하이브리드 앙상블: 견고한 선택을 위해 여러 전략을 결합
레이블이 전혀 존재하지 않을 때 인스턴스를 선택하는 LLM 콜드 스타트도 있습니다. 언어 모델을 풀에 겨냥하면, 어노테이션을 시작할 도전적이거나 대표적인 항목을 모델이 끌어올려 줍니다. 다양한 인-컨텍스트 학습 예제를 선택하는 CoverICL도 새로 추가되었습니다.
비밀번호 관리 및 SSO/OAuth
사람들이 계속 요청해 온 두 가지 인증 기능입니다:
비밀번호 관리는 사용자별 솔트와 함께 PBKDF2-SHA256 해싱을 사용하며, 관리자 CLI 및 API를 통한 비밀번호 재설정을 지원하고, SQLite 또는 PostgreSQL로 뒷받침되는 토큰 기반 셀프 서비스 재설정 흐름을 포함합니다.
SSO/OAuth는 Authlib를 통해 Google, GitHub 또는 임의의 일반 OIDC 공급자를 통한 싱글 사인온을 처리합니다.
pip install potato-annotation[auth]업데이트된 수치
| 기능 | 2.3 | 2.4 |
|---|---|---|
| 어노테이션 유형 | 20 | 21 |
| 표시 유형 | 15 | 17+ |
| AI 엔드포인트 | 7 | 11 |
| 예제 프로젝트 | 15 | 40+ |
| 능동 학습 전략 | 1 | 5 |
| 웹훅 이벤트 유형 | 0 | 5 |
| 에이전트 예제 프로젝트 | 0 | 14 |
설치
pip install potato-annotation # core
pip install potato-annotation[ai] # OpenAI, Ollama
pip install potato-annotation[huggingface] # HF Hub + Spaces
pip install potato-annotation[langchain] # LangChain callback
pip install potato-annotation[auth] # SSO/OAuth
pip install potato-annotation[all] # everything사용해 보기
2.4를 실제로 보는 가장 빠른 방법은 설치가 필요 없는 HuggingFace Spaces의 라이브 데모입니다. 라디오 버튼, 리커트 척도, 스팬 어노테이션, 자유 텍스트 메모를 사용하는 에이전트 트레이스 평가 작업을 실행합니다:
또는 로컬에서 예제를 실행하십시오:
git clone https://github.com/davidjurgens/potato.git
cd potato
pip install -e .
python potato/flask_server.py start examples/agent-traces/complex-annotation/config.yaml -p 8000전체 changelog는 v2.4.0 릴리스 노트를, 나머지 문서는 GitHub 저장소를 참조하십시오.