annotation_zip validate_attribute_value#
Description#
アノテーションの属性値を検証します。 自然言語で記載された属性値の検証などに利用できます。 たとえば、以下のようなケースで利用できます。
属性値の誤字脱字の検出
属性値がmarkdownの文法に準拠しているかの検証
属性値Aと属性値Bの関係が矛盾していないかの検証
Examples#
基本的な使い方#
明かな誤字脱字がないかを検出してください。
ただし以下のケースは問題ないので、検出しないでください。
* 長音の有無などの表現の揺れ
* 文法的な改善提案
* 文末の句点忘れ
* 読点が多すぎる
* 文末の不要な空白
* 文の途中の改行文字
* 口語的な表現
ラベル名が car 、属性名が status である属性値を、 prompt.md の内容で検証します。
$ annofabcli-llm annotation_zip validate_attribute_value --project_id ${PROJECT_ID} \
--output validate_result.csv \
--output_format csv \
--label_name car \
--attribute_name status \
--prompt @prompt.md
project_id |
task_id |
task_status |
task_phase |
task_phase_stage |
input_data_id |
input_data_name |
updated_datetime |
annotation_id |
label |
attributes |
validation_messages |
suggested_attributes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
p1 |
t1 |
complete |
acceptance |
1 |
i1 |
i1 |
2025-06-04T10:03:12.467+09:00 |
a1 |
car |
{'left_hand_status': ‘歩行車が歩いてています。'} |
{'left_hand_status': '「歩行車」は「歩行者」の間違いです。'} |
{'left_hand_status': ' 歩行者が歩いています。'} |
以下は、列の説明です。
attributes: LLMが検証した属性値(keyが属性名、valueが属性値であるdict)validation_messages: LLMの検証結果のメッセージ(keyが属性名、valueが検証結果のメッセージであるdict)suggested_attributes: LLMの提案する属性値(keyが属性名、valueが属性値であるdict)
validate_result.csv の suggested_attributes 列を attributes に変更することで、
annofabcli annotation change_attributes_per_annotation コマンドの --csv に渡して、属性値を一括で変更できます。
注釈
検証結果の途中経過は $HOME/.cache/annofab-cli-llm/temp/validate_attribute_value_* に出力されます。
属性やアノテーションルールのコンテキストを追加する#
属性`status`は画像に映っている状態を表します。
画像の状況を説明するアノテーションです。
$ annofabcli-llm annotation_zip validate_attribute_value --project_id ${PROJECT_ID} \
--output validate_result.csv \
--output_format csv
--label_name car \
--attribute_name status
--prompt @prompt.md \
--attribute_description @attribute_description.md \
--annotation_overview @annotation_overview.md
Usage Details#
アノテーションの属性値を検証します。
usage: annofabcli-llm annotation_zip validate_attribute_value
[-h] [-m MODEL] [--verbose] [--yes] [--annofab_pat ANNOFAB_PAT]
[-p PROJECT_ID] [--annotation ANNOTATION |
--list_annotation_attribute_json_file LIST_ANNOTATION_ATTRIBUTE_JSON_FILE]
[--label_name LABEL_NAME] [--task_id TASK_ID [TASK_ID ...]]
[--task_status TASK_STATUS] [--task_phase TASK_PHASE]
[--updated_datetime_after UPDATED_DATETIME_AFTER]
[--updated_datetime_before UPDATED_DATETIME_BEFORE]
--attribute_name ATTRIBUTE_NAME [ATTRIBUTE_NAME ...] --prompt PROMPT
[--attribute_description ATTRIBUTE_DESCRIPTION]
[--annotation_overview ANNOTATION_OVERVIEW] [-o OUTPUT]
--output_format {csv,json} [--allow_empty_attribute_value]
[--max_chunk_length MAX_CHUNK_LENGTH]
Named Arguments#
- -p, --project_id
AnnofabのプロジェクトID
- --annotation
AnnofabからダウンロードしたアノテーションZIP、またはそれを展開したディレクトリのパス
- --list_annotation_attribute_json_file
`annofabcli statistics list_annotation_attribute --format json`コマンドで出力したJSONファイルのパス。
- --label_name
検証対象のアノテーションが所属するラベルの名前(英語)
- --task_id
検証対象のアノテーションが属するタスクのIDで絞り込みます。先頭に`@`を指定すると、`@`以降をファイルパスとみなして、ファイルを読み込みます。
- --task_status
検証対象のアノテーションが属するタスクのステータスで絞り込みます。
- --task_phase
検証対象のアノテーションが属するタスクのフェーズで絞り込みます。
- --updated_datetime_after
指定した日時以降に更新されたアノテーションを検証対象にします。ISO8601形式で指定してください。日付のみ指定した場合は、0時として解釈されます。
- --updated_datetime_before
指定した日時以前に更新されたアノテーションを検証対象にします。ISO8601形式で指定してください。日付のみ指定した場合は、0時として解釈されます。
- --attribute_name
検証対象のアノテーション属性の名前(英語)
- --prompt
アノテーション属性値をどのように検証するかを記述したプロンプト。 例: 明らかな誤字脱字がないかをチェックしてください。 先頭に`@`を指定すると、`@`以降をファイルパスとみなしてファイルの中身を読み込みます。
- --attribute_description
検証対象の属性の説明。 例: 属性`status`は画像に映っている状態を表します。 先頭に`@`を指定すると、`@`以降をファイルパスとみなしてファイルの中身を読み込みます。
- --annotation_overview
アノテーションの概要。 例: 画像の状況を説明するアノテーションです。 先頭に`@`を指定すると、`@`以降をファイルパスとみなしてファイルの中身を読み込みます。
- -o, --output
出力先のファイルパス。指定しない場合は、標準出力に出力されます。
- --output_format
Possible choices: csv, json
検証結果を出力するファイルの形式
Default:
'csv'- --allow_empty_attribute_value
空の属性値もLLMに渡します(デフォルトは除外)
- --max_chunk_length
LLMに渡す属性値情報に関して、1チャンクあたりの最大JSON文字数
Default:
5000
global optional arguments#
- -m, --model
使用するLLMのモデルです。使用できるモデルは https://docs.litellm.ai/docs/providers を参照してください。
Default:
'openai/gpt-5.4-mini'- --verbose
詳細なログを出力します。
- --yes
確認メッセージに対して常に'yes'と回答したとみなします。確認メッセージが表示されません。
- --annofab_pat
AnnofabのPersonal Access Token