メインコンテンツへスキップ
POST
/
v1
/
moderations
curl --request POST \
  --url https://direct.evolink.ai/v1/moderations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "evolink-moderation-1.0",
  "input": [
    {
      "type": "text",
      "text": "I want to kill them."
    }
  ]
}
'
{
  "evolink_summary": {
    "risk_level": "medium",
    "flagged": false,
    "violations": [],
    "max_score": 0.597383272,
    "max_category": "sexual"
  },
  "id": "modr-0d9740456c391e43c445bf0f010940c7",
  "model": "evolink-moderation-1.0",
  "results": [
    {
      "flagged": false,
      "categories": {
        "harassment": false,
        "harassment/threatening": false,
        "hate": false,
        "hate/threatening": false,
        "illicit": false,
        "illicit/violent": false,
        "self-harm": false,
        "self-harm/intent": false,
        "self-harm/instructions": false,
        "sexual": false,
        "sexual/minors": false,
        "violence": false,
        "violence/graphic": false
      },
      "category_scores": {
        "harassment": 0.0006,
        "harassment/threatening": 0.0007,
        "hate": 0.00003,
        "hate/threatening": 0.0000025,
        "illicit": 0.000013,
        "illicit/violent": 0.0000096,
        "self-harm": 0.0000166,
        "self-harm/intent": 0.000004,
        "self-harm/instructions": 0.0000031,
        "sexual": 0.597383272,
        "sexual/minors": 0.000004,
        "violence": 0.0231,
        "violence/graphic": 0.0089
      },
      "category_applied_input_types": {
        "harassment": [
          "text"
        ],
        "harassment/threatening": [
          "text"
        ],
        "hate": [
          "text"
        ],
        "hate/threatening": [
          "text"
        ],
        "illicit": [
          "text"
        ],
        "illicit/violent": [
          "text"
        ],
        "self-harm": [
          "text"
        ],
        "self-harm/intent": [
          "text"
        ],
        "self-harm/instructions": [
          "text"
        ],
        "sexual": [
          "text"
        ],
        "sexual/minors": [
          "text"
        ],
        "violence": [
          "text"
        ],
        "violence/graphic": [
          "text"
        ]
      }
    }
  ]
}
BaseURL:デフォルトの BaseURL は https://direct.evolink.ai で、テキストモデルへの対応が優れており、長時間接続をサポートします。https://api.evolink.ai はマルチモーダルの主力エンドポイントで、テキストモデルに対しては代替アドレスとして使用されます。

承認

Authorization
string
header
必須

##すべてのエンドポイントには Bearer Token による認証が必要です##

API キーの取得:

API キー管理ページ にアクセスして、API キーを取得してください。

リクエストヘッダーに追加:

Authorization: Bearer YOUR_API_KEY

ボディ

application/json
model
enum<string>
必須

モデレーションモデル名。evolink-moderation-1.0 で固定です。

利用可能なオプション:
evolink-moderation-1.0
:

"evolink-moderation-1.0"

input
(テキスト入力項目 · object | 画像入力項目 · object)[]
必須

審査対象のコンテンツ。すべてオブジェクト配列の形式に統一されています。各要素は text または image_url オブジェクトです。

"input": [
{"type": "text", "text": "審査対象のテキスト"},
{"type": "image_url", "image_url": {"url": "https://..."}}
]

制約

  • 配列内で type=image_url のオブジェクトは最大 1 個。複数枚の画像を審査したい場合は、並列でリクエストを分割してください
  • type=text のオブジェクト数に制限はありません

レスポンス

モデレーション成功

モデレーションレスポンス。最上位の evolink_summary はビジネス側で利用を推奨する統一リスクサマリーです。results はカテゴリーごとの詳細スコアを提供します。

EvoLink リスクサマリー:13 個のカテゴリーの category_scores をベースに、各カテゴリーの感度に応じて差別化された閾値で算出された統一サマリーです。ビジネス側ではこれをもとに直接 通過/拒否/レビュー送付 を判断できます。

リスク階層化閾値表

カテゴリーmedium 閾値high 閾値備考
sexual/minors0.050.20レッドライン項目、最も厳格な閾値
self-harm / self-harm/intent / self-harm/instructions0.300.60人命に関わるため厳格
violence/graphic0.400.70残虐な暴力
illicit/violent0.400.70暴力的違法行為
sexual0.500.80通常の性的コンテンツ
violence0.500.80通常の暴力
harassment/threatening0.500.80脅迫的ハラスメント
hate/threatening0.500.80脅迫的ヘイト
harassment0.600.85通常のハラスメント
hate0.600.85通常のヘイト
illicit0.600.85通常の違法行為の手引き

判定ルール

いずれかのカテゴリーの score >= 当該カテゴリーの high 閾値   → risk_level = "high",   flagged = true,  violations に追加
いずれかのカテゴリーの score >= 当該カテゴリーの medium 閾値 → risk_level = "medium", flagged = false
それ以外 → risk_level = "low", flagged = false

ビジネス側の利用ガイダンス

summary = response["evolink_summary"]

if summary["flagged"]: # high → 直接拒否
reject(reason=summary["violations"])
elif summary["risk_level"] == "medium": # グレーゾーン
log_for_review(summary) # ログ記録、人手によるサンプリングレビュー
proceed()
else: # low → 通過
proceed()
id
string

本モデレーションリクエストの一意の識別子

:

"modr-0d9740456c391e43c445bf0f010940c7"

model
string

実際に使用されたモデル名。evolink-moderation-1.0 で固定です。

:

"evolink-moderation-1.0"

results
object[]

モデレーション結果のリスト。固定で 1 個の result を返します(配列形式の入力は単一のスコア結果に統合されます)。

マルチモーダル評価範囲

13 個のカテゴリーのうち、一部のカテゴリーはテキストのみで評価され、画像は評価されません:

カテゴリー評価範囲
harassment / harassment/threateningテキストのみ
hate / hate/threateningテキストのみ
illicit / illicit/violentテキストのみ
sexual/minorsテキストのみ(要注意:レッドライン項目)
self-harm / self-harm/intent / self-harm/instructionsテキスト + 画像
sexualテキスト + 画像
violence / violence/graphicテキスト + 画像

重要事項

  • 画像のみを送信した場合、上記 7 つのテキスト専用カテゴリーのスコアは常に 0 となり、category_applied_input_types は空配列になります。これはコンテンツが安全であることを意味するのではなく、評価されていないだけです
  • 未成年者リスク(sexual/minors レッドライン項目)に関わるビジネスでは、必ずテキストコンテキストと併せて審査に送る必要があり、画像スコアのみに依存することはできません