> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/advanced-blocks/roboflow-custom-metadata.md).

# Roboflowカスタムメタデータ

推論結果から推論IDを抽出し、フィルタリング、分析、整理を可能にする名前と値のペアを追加することで、Roboflow Model Monitoring ダッシュボードの推論結果にカスタムメタデータフィールドを付与し、監視ワークフロー、本番分析、モデル性能追跡のための推論データを活用できるようにします。

## このブロックの仕組み

このブロックは、Roboflow Model Monitoring に保存された推論結果にカスタムメタデータを追加し、フィルタリングや分析のために予測へ文脈情報を付与できるようにします。このブロックは次のことを行います。

1. モデル予測とメタデータ設定を受け取ります:
   * サポートされている任意のモデルタイプ（物体検出、インスタンスセグメンテーション、キーポイント検出、または分類）からの予測を受け取ります
   * 付与するカスタムメタデータのフィールド名とフィールド値を受け取ります
   * 実行モード用の fire-and-forget フラグを受け付けます
2. Roboflow API キーを検証します:
   * 有効な Roboflow API キーが利用可能であることを確認します（API アクセスに必要）
   * API キーがない場合は、取得方法の案内とともにエラーを発生させます
3. 予測から推論IDを抽出します:
   * supervision の Detections オブジェクトの場合: データ辞書から推論IDを抽出します
   * 分類予測の場合: 予測辞書から推論IDを抽出します
   * メタデータの付与が必要なすべての一意な推論IDを収集します
   * 推論IDが見つからない場合の処理を行います（エラーメッセージを返します）
4. ワークスペース情報を取得します:
   * 提供された API キーを使用して Roboflow API からワークスペース ID を取得します
   * ワークスペース検索のための API 呼び出しを繰り返さないよう、キャッシュ（15分の有効期限）を使用します
   * API キーの MD5 ハッシュをキャッシュキーとして使用してワークスペース名をキャッシュします
5. API を介してカスタムメタデータを追加します:
   * Roboflow API を呼び出して、各推論IDにカスタムメタデータフィールドを付与します
   * フィールド名とフィールド値を推論結果に関連付けます
   * メタデータは Model Monitoring ダッシュボードでフィルタリングや分析に利用できるようになります
6. 同期または非同期で実行します:
   * **非同期モード（fire\_and\_forget=True）**: タスクをバックグラウンドスレッドプールまたは FastAPI のバックグラウンドタスクに投入し、API 呼び出しの完了を待たずにワークフローを継続できるようにします
   * **同期モード（fire\_and\_forget=False）**: API 呼び出しの完了を待ち、即時のステータスを返します。デバッグやエラー処理に便利です
7. ステータス情報を返します:
   * 成功（False）または失敗（True）を示す error\_status を出力します
   * アップロードの状態またはエラー詳細を含むメッセージを出力します
   * メタデータが正常に付与されたかどうかについてフィードバックを提供します

このブロックにより、推論結果へカスタムメタデータを付与でき、Model Monitoring ダッシュボードで予測をより簡単にフィルタリングおよび分析できます。たとえば、場所ラベル、品質スコア、処理フラグ、または推論データの整理と分析に役立つその他の文脈情報を付与できます。

## 一般的な使用例

* **場所ベースのフィルタリング**: 地理分析とフィルタリングのために推論へ場所メタデータを付与します（例: 推論に "toronto"、"warehouse\_a"、"production\_line\_1" などの場所ラベルを付与する）。これにより、場所ベースの監視ワークフローが可能になります
* **品質管理タグ付け**: 品質追跡のために推論へ品質または検証メタデータを付与します（例: 推論に "pass"、"fail"、"requires\_review"、"approved" とタグ付けする）。これにより、品質管理ワークフローが可能になります
* **文脈的アノテーション**: より良い整理と分析のために推論へ文脈情報を追加します（例: カメラID、期間、バッチ番号、オペレーターID、環境条件でタグ付けする）。これにより、文脈分析ワークフローが可能になります
* **分類強化**: モデル予測を超えて、推論結果にカスタムラベルやカテゴリを付与します（例: ビジネスロジックの結果、ワークフローの判断、ユーザーフィードバック、手動修正でタグ付けする）。これにより、分類拡張ワークフローが可能になります
* **生産分析**: 運用コンテキストを表すメタデータを付与して本番指標を追跡します（例: シフト情報、生産バッチ、機器状態、性能指標でタグ付けする）。これにより、本番分析ワークフローが可能になります
* **フィルタリングとセグメンテーション**: データセグメントを表すメタデータを付与することで、Model Monitoring ダッシュボードで高度なフィルタリングを可能にします（例: 顧客セグメント、製品カテゴリ、ユースケース種別、デプロイ環境でタグ付けする）。これにより、セグメンテーションワークフローが可能になります

## 他のブロックへの接続

このブロックは予測を受け取り、ステータス情報を出力します:

* **モデルブロックの後** （Object Detection Model、Instance Segmentation Model、Classification Model、Keypoint Detection Model）に対して、推論結果へメタデータを付与します（例: 検出に場所タグを追加する、分類に品質ラベルを付与する、キーポイント検出にコンテキストをタグ付けする）。これにより、モデルからメタデータへのワークフローが可能になります
* **フィルタリングまたは分析ブロックの後** （DetectionsFilter、ContinueIf、OverlapFilter）に対して、フィルタリングまたは分析した結果へメタデータをタグ付けします（例: フィルタ条件で検出結果をタグ付けする、分析結果をメタデータとして付与する、処理済み結果にワークフロー状態をラベル付けする）。これにより、分析からメタデータへのワークフローが可能になります
* **条件付き実行ブロックの後に** （ContinueIf、Expression）に対して、ワークフローの判断に基づいてメタデータを付与します（例: 判断結果でタグ付けする、条件分岐ラベルを付与する、条件に基づいて結果をマークする）。これにより、条件からメタデータへのワークフローが可能になります
* **他の sink ブロックと並列で** メタデータのタグ付けと他のデータ保存操作を組み合わせます（例: データセットへのアップロード中にタグ付けする、ログ記録中にメタデータを付与する、Webhook 通知と組み合わせる）。これにより、並列 sink ワークフローが可能になります
* **可視化ブロックの前後に** メタデータが可視化操作の前後で付与されるようにします（例: 可視化にコンテキストをタグ付けする、可視化された結果にメタデータを付与する）。これにより、メタデータ付き可視化ワークフローが可能になります
* **ワークフローのエンドポイントで** ワークフロー完了前にすべての推論結果へメタデータが付与されるようにします（例: 最終的なメタデータ付与、包括的な結果タグ付け、完全なメタデータカバレッジ）。これにより、エンドツーエンドのメタデータワークフローが可能になります

## 要件

このブロックには、環境またはワークフロー設定で構成された有効な Roboflow API キーが必要です。API キーは Roboflow API に認証し、Model Monitoring 機能にアクセスするために必要です。API キーの取得方法については、<https://docs.roboflow.com/reference/authentication/authentication/find-your-roboflow-api-key> を参照してください。このブロックは、推論IDを含む予測を必要とします（予測は、推論IDを含むモデルによって生成されている必要があります）。対応する予測タイプ: object detection、instance segmentation、keypoint detection、classification。このブロックは API 呼び出しを最適化するためにワークスペースのキャッシュ（15分の有効期限）を使用します。Roboflow の Model Monitoring の詳細については、<https://docs.roboflow.com/deploy/model-monitoring> を参照してください。

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/roboflow_custom_metadata@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**            | **型**  | **説明**                                                                                                                                                                                                                                        | 参照 |
| ----------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`            | `str`  | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                       | ❌  |
| `field_name`      | `str`  | Roboflow Model Monitoring で作成するカスタムメタデータフィールドの名前です。これは、Model Monitoring ダッシュボードでフィルタリングと分析に使用できるフィールド名になります。フィールド名は説明的で、付与されるメタデータの種類を表すものであるべきです（例: 'location'、'quality'、'camera\_id'、'batch\_number'）。このフィールド名は、メタデータ値を整理し分類するために使用されます。    | ❌  |
| `field_value`     | `str`  | カスタムメタデータフィールドに割り当てる値です。これは推論結果に付与され、Model Monitoring ダッシュボードでフィルタリングや分析に使用できる実データです。文字列リテラルまたはワークフロー出力を参照するセレクターにできます。一般的な値: 場所識別子（例: 'toronto'、'warehouse\_a'）、品質ラベル（例: 'pass'、'fail'、'review'）、識別子（例: カメラID、バッチ番号）、またはユースケースに関連するその他の文脈情報。 | ✅  |
| `fire_and_forget` | `bool` | 実行モードフラグ。True（デフォルト）の場合、ブロックはバックグラウンドで非同期実行され、API 呼び出しの完了を待たずにワークフローが処理を続行できます。これによりワークフロー実行は高速になりますが、エラーはすぐには取得できません。False の場合、ブロックは同期実行され、API 呼び出しの完了を待って、即時のステータスとエラー情報を返します。デバッグやエラー処理には False、本番ワークフローで性能を重視する場合は True を使用してください。.       | ✅  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### ランタイム互換性

`requires_internet` - エアギャップ／オフライン環境: このブロックは、完全にオフライン／エアギャップ環境から到達できないサービスに依存しています。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `Roboflowカスタムメタデータ` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `predictions` (*Union\[*[*`object_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)*,* [*`classification_prediction`*](/workflows/ja/gaido/developer-guide/kinds/classification-prediction.md)*,* [*`instance_segmentation_prediction`*](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)*,* [*`keypoint_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/keypoint-detection-prediction.md)*]*): カスタムメタデータを付与するためのモデル予測（object detection、instance segmentation、keypoint detection、または classification）です。予測には、Roboflow Model Monitoring で特定の推論結果にメタデータを関連付けるために使用される推論IDが含まれている必要があります。推論IDは、supervision の Detections オブジェクトまたは分類予測辞書から自動的に抽出されます。メタデータは、予測内で見つかったすべての推論IDに付与されます。
  * `field_value` ([*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)): カスタムメタデータフィールドに割り当てる値です。これは推論結果に付与され、Model Monitoring ダッシュボードでフィルタリングや分析に使用できる実データです。文字列リテラルまたはワークフロー出力を参照するセレクターにできます。一般的な値: 場所識別子（例: 'toronto'、'warehouse\_a'）、品質ラベル（例: 'pass'、'fail'、'review'）、識別子（例: カメラID、バッチ番号）、またはユースケースに関連するその他の文脈情報。
  * `fire_and_forget` ([*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)): 実行モードフラグ。True（デフォルト）の場合、ブロックはバックグラウンドで非同期実行され、API 呼び出しの完了を待たずにワークフローが処理を続行できます。これによりワークフロー実行は高速になりますが、エラーはすぐには取得できません。False の場合、ブロックは同期実行され、API 呼び出しの完了を待って、即時のステータスとエラー情報を返します。デバッグやエラー処理には False、本番ワークフローで性能を重視する場合は True を使用してください。.
* 出力
  * `error_status` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `message` ([`string`](/workflows/ja/gaido/developer-guide/kinds/string.md)) : 文字列値。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/roboflow_custom_metadata@v1",
	    "predictions": "$steps.object_detection.predictions",
	    "field_name": "location",
	    "field_value": "toronto",
	    "fire_and_forget": true
	}
```

</details>
