mcpField
A
arize-annotation

arize-annotation

github.com/githubデータ・データベース40.6k1.1k 回インストール1 日前に更新
リポジトリ

arize-annotation について

Arize のアノテーション作業を支援するスキルです。ラベル設定や人手レビュー用キューの管理に加え、Python SDK によるプロジェクト span の一括アノテーションを扱います。

主な機能

  1. 01アノテーション設定の作成と管理
  2. 02人手レビュー用キューの管理
  3. 03キューレコードの一覧表示と担当者の割り当て
  4. 04キューレコードへのアノテーション送信
  5. 05Python SDK による span の一括アノテーション

活用シーン

  1. 01レビュー用のカテゴリ、数値、自由記述ラベルの定義
  2. 02span、データセット例、実験レコードのレビュー担当者への割り当て
  3. 03外部で用意したラベルのプロジェクト span への一括適用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill arize-annotation

インストール後、Claude Code で/arize-annotationを入力して読み込まれたか確認します。

同梱ファイルreferences/ax-profiles.mdreferences/ax-setup.md

詳細

Arize Annotation Skill

SPACE — すべての --space フラグと ARIZE_SPACE 環境変数には、スペースの名前(例:my-workspace)または base64 形式のスペースID(例:U3BhY2U6...)を指定できます。ax spaces list で確認できます。

このスキルでは、アノテーション設定(ラベルスキーマ)とアノテーションキュー(人間によるレビューのワークフロー)、および Python SDK を使用してプロジェクトのスパンにプログラムでアノテーションを付与する方法を扱います。

方向性: Arize での人間によるラベリングでは、設定で定義された値を、製品 UI 上のスパン、データセットの例、実験関連レコード、キュー項目に付与します。このスキルでは、ax annotation-configs、ax annotation-queues、および ArizeClient.spans.update_annotations によるスパンの一括更新を扱います。


前提条件

タスクをそのまま進めてください。必要な ax コマンドを実行します。事前にバージョン、環境変数、プロファイルを確認しないでください。

ax コマンドが失敗した場合は、エラーに基づいてトラブルシューティングしてください。

  • command not found またはバージョンエラー → references/ax-setup.md を参照
  • 401 Unauthorized / API キーがない → ax profiles show を実行して現在のプロファイルを確認します。プロファイルがない場合、または API キーが間違っている場合は、references/ax-profiles.md に従って作成または更新します。ユーザーがキーを持っていない場合は、https://app.arize.com/admin > API Keys を案内してください
  • スペースが不明 → ax spaces list を実行して名前から選ぶか、ユーザーに尋ねてください
  • セキュリティ: .env ファイルを読み込んだり、ファイルシステムを検索して認証情報を探したりしないでください。Arize の認証情報には ax profiles を、LLM プロバイダーのキーには ax ai-integrations を使用します。これらの方法で認証情報を入手できない場合は、ユーザーに尋ねてください。

概念

アノテーション設定とは?

アノテーション設定は、1 種類の人間によるフィードバックラベルのスキーマを定義します。スパン、データセットレコード、実験出力、またはキュー項目にアノテーションを付与する前に、そのラベルの設定がスペースに存在している必要があります。

フィールド説明
名前内容を表す識別子(例:Correctness、Helpfulness)です。スペース内で一意である必要があります。
種類categorical(リストから選択)、continuous(数値範囲)、または freeform(自由記述)です。
値categorical の場合:{"label": str, "score": number} のペアの配列です。
最小/最大スコアcontinuous の場合:数値の範囲です。
最適化の方向スコアが高いほど良い(maximize)か、悪い(minimize)かを指定します。UI で傾向を表示する際に使用します。
ラベルが付与される場所(サーフェス)
サーフェス一般的な手順
プロジェクトのスパンPython SDK の spans.update_annotations(下記)および/または Arize UI
データセットの例Arize UI(人間によるラベリングフロー)。設定がスペースに存在している必要があります
実験出力UI でデータセットやトレースとあわせてレビューすることがよくあります。arize-experiment、arize-dataset を参照してください
アノテーションキューの項目ax annotation-queues CLI(下記)および/または Arize UI。設定が存在している必要があります

ラベルが保存されるよう、対象のアノテーション設定がスペースに存在していることを必ず確認してください。


基本的な CRUD:アノテーション設定

一覧表示
ax annotation-configs list --space SPACE
ax annotation-configs list --space SPACE -o json
ax annotation-configs list --space SPACE --limit 20
作成 — カテゴリ型

カテゴリ型の設定では、レビュー担当者が選択できる固定ラベルを提示します。

ax annotation-configs create \
  --name "Correctness" \
  --space SPACE \
  --type categorical \
  --value correct \
  --value incorrect \
  --optimization-direction maximize

よく使われる二択のラベルペア:

  • correct / incorrect
  • helpful / unhelpful
  • safe / unsafe
  • relevant / irrelevant
  • pass / fail
作成 — 連続値型

連続値型の設定では、レビュー担当者が定義された範囲内の数値スコアを入力できます。

ax annotation-configs create \
  --name "Quality Score" \
  --space SPACE \
  --type continuous \
  --min-score 0 \
  --max-score 10 \
  --optimization-direction maximize
作成 — 自由記述型

自由記述型の設定では、自由形式のテキストフィードバックを収集します。名前、スペース、種類以外のフラグは必要ありません。

ax annotation-configs create \
  --name "Reviewer Notes" \
  --space SPACE \
  --type freeform
取得
ax annotation-configs get NAME_OR_ID
ax annotation-configs get NAME_OR_ID -o json
ax annotation-configs get NAME_OR_ID --space SPACE   # required when using name instead of ID
削除
ax annotation-configs delete NAME_OR_ID
ax annotation-configs delete NAME_OR_ID --space SPACE   # required when using name instead of ID
ax annotation-configs delete NAME_OR_ID --force   # skip confirmation

注: 削除は取り消せません。この設定に関連付けられたアノテーションキューも製品内で削除されます(キュー自体は残る場合があります。必要に応じて Arize UI で関連付けを修正してください)。


アノテーションキュー:ax annotation-queues

アノテーションキューは、レコード(スパン、データセットの例、実験の実行)を人間のレビュー担当者に割り当てます。各キューは、レビュー担当者が適用できるラベルを定義する1つ以上のアノテーション設定に関連付けられています。

一覧表示/取得
ax annotation-queues list --space SPACE
ax annotation-queues list --space SPACE -o json

ax annotation-queues get NAME_OR_ID --space SPACE
ax annotation-queues get NAME_OR_ID --space SPACE -o json
作成

少なくとも1つの --annotation-config-id が必要です。

ax annotation-queues create \
  --name "Correctness Review" \
  --space SPACE \
  --annotation-config-id CONFIG_ID \
  --annotator-email [email protected] \
  --instructions "Label each response as correct or incorrect." \
  --assignment-method all   # or: random

複数の設定またはレビュー担当者を関連付けるには、--annotation-config-id と --annotator-email を繰り返し指定します。

更新

リスト形式のフラグ(--annotation-config-id、--annotator-email)を指定すると、既存の値はすべて置き換えられます。新しい値だけでなく、希望する値をすべて渡してください。

ax annotation-queues update NAME_OR_ID --space SPACE --name "New Name"
ax annotation-queues update NAME_OR_ID --space SPACE --instructions "Updated instructions"
ax annotation-queues update NAME_OR_ID --space SPACE \
  --annotation-config-id CONFIG_ID_A \
  --annotation-config-id CONFIG_ID_B
削除
ax annotation-queues delete NAME_OR_ID --space SPACE
ax annotation-queues delete NAME_OR_ID --space SPACE --force   # skip confirmation
レコードの一覧表示
ax annotation-queues list-records NAME_OR_ID --space SPACE
ax annotation-queues list-records NAME_OR_ID --space SPACE --limit 50 -o json
レコードへのアノテーションの送信

アノテーションは設定名をキーにしてアップサートされます。アノテーション設定ごとに1回呼び出してください。--score、--label、--text のうち少なくとも1つを指定します。

ax annotation-queues annotate-record NAME_OR_ID RECORD_ID \
  --annotation-name "Correctness" \
  --label "correct" \
  --space SPACE

ax annotation-queues annotate-record NAME_OR_ID RECORD_ID \
  --annotation-name "Quality Score" \
  --score 8.5 \
  --text "Response was accurate but slightly verbose." \
  --space SPACE
レコードの割り当て

特定のレコードをレビューするユーザーを割り当てます。

ax annotation-queues assign-record NAME_OR_ID RECORD_ID --space SPACE
レコードの削除
ax annotation-queues delete-records NAME_OR_ID --space SPACE

スパンへのアノテーションの適用(Python SDK)

すでにラベルがある場合(レビューのエクスポートや外部のラベル付けツールから取得したものなど)は、Python SDK を使用してプロジェクトのスパンにアノテーションを一括適用できます。

import pandas as pd
from arize import ArizeClient

import os

client = ArizeClient(api_key=os.environ["ARIZE_API_KEY"])

# Build a DataFrame with annotation columns
# Required: context.span_id + at least one annotation.<name>.label or annotation.<name>.score
annotations_df = pd.DataFrame([
    {
        "context.span_id": "span_001",
        "annotation.Correctness.label": "correct",
        "annotation.Correctness.updated_by": "[email protected]",
    },
    {
        "context.span_id": "span_002",
        "annotation.Correctness.label": "incorrect",
        "annotation.Correctness.updated_by": "[email protected]",
    },
])

response = client.spans.update_annotations(
    space_id=os.environ["ARIZE_SPACE"],
    project_name="your-project",
    dataframe=annotations_df,
    validate=True,
)

DataFrame の列スキーマ:

列必須説明
context.span_idはいアノテーションを付けるスパン
annotation.<name>.labelいずれか1つカテゴリ形式または自由形式のラベル
annotation.<name>.scoreいずれか1つ数値スコア
annotation.<name>.updated_byいいえアノテーション担当者の識別子(メールアドレスまたは名前)
annotation.<name>.updated_atいいえエポックからのミリ秒単位のタイムスタンプ
annotation.notesいいえスパンに関する自由形式のメモ

制限事項: アノテーションは、送信前31日以内のスパンにのみ適用されます。


トラブルシューティング

問題解決方法
ax: command not foundreferences/ax-setup.md を参照してください
401 UnauthorizedAPI キーにこのスペースへのアクセス権がない可能性があります。https://app.arize.com/admin > API Keys で確認してください
Annotation config not foundax annotation-configs list --space SPACE を実行します(または ax annotation-configs get NAME_OR_ID --space SPACE を使用します)
409 Conflict on createスペース内に同じ名前がすでに存在します。別の名前を使用するか、既存の設定 ID を取得してください。
キューが見つからないax annotation-queues list --space SPACE を実行し、キュー名または ID を確認してください
キューにレコードが表示されないキューに関連付けられたアノテーション設定が存在することを確認してください。ax annotation-configs list --space SPACE を確認します
Span SDK エラー、またはスパンが見つからないproject_name、space_id、スパン ID を確認してください。arize-trace を使用してスパンをエクスポートします

関連スキル

  • arize-trace:スパン ID と時間範囲を見つけるためにスパンをエクスポートします
  • arize-dataset:データセット ID と例の ID を見つけます
  • arize-evaluator:人間によるアノテーションと併用する、自動化された LLM-as-judge
  • arize-experiment:データセットと評価ワークフローに関連付けられた実験
  • arize-link:Arize UI のアノテーション設定とキューへのディープリンク

今後の使用に備えた認証情報の保存

references/ax-profiles.md § 今後の使用に備えた認証情報の保存を参照してください。

コメント