> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/jp/apidokyumento-1/pakkji/modershonapi.md).

# 画像モデレーションAPI

\[ ベースURL: `api.ggwp.com`]

`POST` /image/v1/moderate

## **説明**

Image Moderation エンドポイントは、入力画像と設定可能なオプションの一覧を受け取り、対応カテゴリの一覧を、それぞれのフラグと全体の深刻度とともに返します。&#x20;

### **処理モード**

さまざまな品質要件とパフォーマンス要件に対応するため、Image API では以下の 2 つの処理モードを提供しています。両モードとも同じカテゴリを使用しますが、カテゴリの深刻度に関する設定が異なり、レイテンシと分析の深さも異なります。

この設定は次の方法で渡せます `x-api-processing-mode` ヘッダーで&#x20;

&#x20;`x-api-processing-mode:quality/performance`

**品質モード（デフォルト）**

GGWP の完全なモデルを実行し、最大限の検出精度と、カテゴリ全体でよりきめ細かな深刻度のカバレッジを提供します。対応ファイル形式: JPG, JPEG, PNG, GIF, WEBP

* **レイテンシ:** 中央値 約1000〜1200 ms。
* **カテゴリ対応範囲:** ヘッダーセクションで指定された、カテゴリごとのよりきめ細かな深刻度レベルを、異なる深刻度設定でサポートします。
* **最適な用途:** より厳格な安全ポリシーを持つコミュニティや、若年層向けのコミュニティに適しています。害のある画像がモデレーションをすり抜けるリスクを最小限に抑えることが重要な場合に有効です。レイテンシがそれほど重要でないオフラインチェックにも便利です。

**パフォーマンスモード**

低レイテンシ向けに最適化された軽量モデルを使用しつつ、Image API がサポートするコアカテゴリはカバーします。対応ファイル形式: JPG, JPEG, PNG。

* **レイテンシ:** 中央値 約150〜200 ms。
* **カテゴリ対応範囲:** Headers セクションで言及されているカテゴリ全体の標準的なカバレッジセットをサポートします。
* **最適な用途:** リアルタイムの画像モデレーションや、高速応答が必要な大量処理ワークフロー向けです。

## **ヘッダー**

***注:** オンボーディング時に設定が別途 GGWP と共有されている場合、このセクションは不要です。*

***品質モード:***

以下のヘッダーオプションを使って、リクエストごとにモデレーションカテゴリをカスタマイズできます。デフォルトでは、すべてのカテゴリが **high**:

* `explicit_nudity`: off/low/medium/high
* `non_explicit_nudity`: off/low/medium/high
* `hate_imagery`: off/low/medium/high
* `violence`: off/low/medium/high
* `gore`: off/low/medium/high
* `weapons`: off/low/medium/high
* `alcohol_drugs`: off/low/medium/high
* `gambling`: off/low/medium/high
* `profanity`: off/low/medium/high

これらの設定は次の方法で渡せます `x-api-config` ヘッダーに **base64 エンコードされた JSON オブジェクトとして**.

#### 例

`config.json`

```json
{
  "non_explicit_nudity": "high",
  "gambling": "off",
  "violence": "low"
}
```

base64 に変換:

{% code overflow="wrap" %}

```bash
$ base64 config.json
ewogICJub25fZXhwbGljaXRfbnVkaXR5IjogImhpZ2giLAogICJnYW1ibGluZyI6ICJvZmYiLAogICJ2aW9sZW5jZSI6ICJsb3ciCn0=
```

{% endcode %}

***パフォーマンスモード:***&#x20;

以下のヘッダーオプションを使って、リクエストごとにモデレーションカテゴリをカスタマイズできます。デフォルトでは、すべてのカテゴリが **オン**:

* `explicit_nudity`: on/off
* `non_explicit_nudity`: on/off
* `hate_imagery`: on/off
* `violence`: on/off
* `gore`: on/off
* `weapons`: on/off
* `alcohol_drugs`: on/off
* `gambling`: on/off
* `profanity`: on/off

これらの設定は次の方法で渡せます `x-api-config` ヘッダーに **base64 エンコードされた JSON オブジェクトとして**.

#### 例

`config.json`

```json
{
  "non_explicit_nudity": "off",
  "gambling": "off",
  "violence": "on"
}
```

base64 に変換:

{% code overflow="wrap" %}

```bash
$ base64 config.json
ewogICJub25fZXhwbGljaXRfbnVkaXR5IjogIm9mZiIsCiAgImdhbWJsaW5nIjogIm9mZiIsCiAgInZpb2xlbmNlIjogIm9uIgp9
```

{% endcode %}

リクエストを送信:

{% code overflow="wrap" %}

```bash
curl --request POST 'https://api.ggwp.com/image/v1/moderate' \
  --header 'x-api-key: <API_KEY>' \
  --header 'x-api-config: <BASE64_CONFIG>' \
  -F "file=@/path/to/example.jpeg" \
  -F "file_name=avatar123.jpeg" \
  -F "user_id=user989"
```

{% endcode %}

## **パラメータ**

`本文`: として送信 `multipart/form-data` （UTF-8 でエンコード済み）。

* **file**: バイナリ画像ファイル。画像は次の要件を満たしている必要があります:
  * **ファイル形式**: JPG, JPEG, PNG,（GIF/WEBP は品質モードのみ）。
  * **サイズ上限:** 最大 5MB まで。
* **file\_name**: 画像ファイルの説明名。&#x20;
  * 例: `avatar123.jpeg`
* **user\_id:** 画像の帰属先となるユーザーの一意識別子。検出されたインシデントは、ユーザーのレピュテーションスコアとプロフィールに影響します。
* （任意） **username**: ユーザーが選択した親しみやすい表示名。GGWP ダッシュボードで `user_id`と並んで表示されます。 `user_id` 未指定の場合のデフォルト値。
* （任意） **session\_id**: 画像が共有された会話、マッチ、またはチャンネルの一意なセッション識別子。
* （任意） **timestamp**: 画像が共有された UTC 時刻。形式は `YYYY-MM-DD HH:MM:SS.SSS` または `YYYY-MM-DD HH:MM:SS` です。省略された場合、サーバーが現在の UTC タイムスタンプを割り当てます。
* （任意） **image\_url**: 画像に関連付けられた URL（ `http` または `https`である必要があります）。有効な場合、ダッシュボードに表示されます。
* （任意） **metadata**: カスタムのキー/値ペアを表す JSON 文字列。5KB 未満である必要があります。許可されるキーと型のみ有効です。プラットフォームに適用するキーについては、GGWP 担当者とご相談ください。

## 呼び出し例

**Bash**

```bash
curl --request POST 'https://api.ggwp.com/image/v1/moderate' \
  --header 'x-api-key: <API_KEY>' \
  --header 'x-api-config: <BASE64_CONFIG>' \
  --header 'x-api-processing-mode: quality' \
  -F "file=@/path/to/example.jpeg" \
  -F "file_name=avatar123.jpeg" \
  -F "user_id=user989" \
  -F "username=nlxdz" \
  -F "session_id=match_7765" \
  -F "timestamp=2025-10-10 16:49:02" \
  -F "image_url=https://cdn.example.com/uploads/avatar123.jpeg"
```

**Python**

```python
import requests

# API エンドポイント
url = "https://api.ggwp.com/image/v1/moderate"

# 認証と設定（カテゴリ用の base64 エンコード済み JSON 文字列）
headers = {
    "x-api-key": "GGWP_API_KEY",
    "x-api-config": "<BASE64_CONFIG>",
    "x-api-processing-mode": "quality"
}

# メタデータとその他のパラメータ
data = {
    "file_name": "avatar123.jpeg",
    "user_id": "player10",
    "username": "purpleCarrot",
    "session_id": "match_unranked_20230620_12345",
    "timestamp": "2025-10-10 16:49:02",
    "image_url": "https://cdn.example.com/uploads/avatar123.jpeg"
}

# 画像ファイル
files = {
    "file": open("/location/to/avatar123.jpeg", "rb")
}

# POST リクエストを送信
response = requests.post(url, headers=headers, data=data, files=files)

# レスポンスを確認
print(response.status_code)
print(response.json())
```

## **出力**

* 200 レスポンス - 正常な操作

```json
{
  "image_id": "20251010164902.482311-946bb8a9-0766-4c31-995a-d910da8531e5",
  "file_name": "avatar123.jpeg",
  "flag": true,
  "severity": "medium",
  "categories": {
    "explicit_nudity": true,
    "non_explicit_nudity": false,
    "hate_imagery": false,
    "violence": false,
    "gore": false,
    "weapons": false,
    "alcohol_drugs": false,
    "gambling": false,
    "profanity": true
  },
  "timestamp": "2025-10-10 16:49:02"
}


```

* 400
  * 不正または形式不良のリクエスト。考えられる原因:
    * 必須フィールドの欠落（例: `file`, `file_name`, `user_id`)
    * サポートされていないファイル形式（JPEG/JPG/PNG のみ許可）
    * ファイルサイズが 5MB の上限を超えています
    * timestamp の形式が無効です
    * メタデータが 5KB を超えているか、許可されていないキーが含まれています
* 403
  * API キーが無効または未設定です
* 500
  * サーバー側のエラー応答
