メインコンテンツへスキップ
呼び出しが成功すると、トップレベルの action と、コンテンツパートごとの内訳を含む input_results を伴った HTTP 200 が返されます。Starfort は Guardian のレスポンスボディをそのまま返します。ラッパーもフィールドの再構成もありません。

action モデル

中間の状態はポリシータイプによって異なります。
  • PII ポリシーは PASS / MASK / BLOCK を返します。
  • Topic ポリシーは PASS / CHECK / BLOCK を返し、CHECKcontroversial(論争のある)トピックをレビュー対象としてフラグ付けします。
API 呼び出し元は CHECK を直接受け取りますCHECKPASS として扱う Desktop Agent や Proxy Server とは異なります。ルートの action は、検出されたすべての中で最も重大度の高いものです:BLOCK > MASK > CHECK > PASSアクションを参照してください。

トップレベル

フィールド備考
actionstringPASS | MASK | BLOCK — すべての結果の中で最も重大度の高いもの。
input_resultsarray検査されたコンテンツパートごとに 1 エントリ。何も検査されなかった場合は空になります。
input_results[] エントリ:
フィールド備考
indexmessages[].content 内でのコンテンツパートの位置。
typetextimageaudiovideodocumentarchive
identifierファイルパートの場合はファイル名。それ以外は null
actionこのパートのアクション。
processed_contentMASK の場合:マスク済みテキスト。PASSBLOCK の場合:null
processed_content_typeprocessed_content が存在する場合の MIME タイプ。
resultsポリシーごとの結果(下記参照)。

MASK の例(PII)

{
  "action": "MASK",
  "input_results": [{
    "index": 0, "type": "text", "identifier": null, "action": "MASK",
    "processed_content": "제 번호는 [PHONE_NUMBER_1] 이고 이메일은 [EMAIL_1] 입니다.",
    "processed_content_type": "text",
    "results": [{
      "policy_name": "PII Masking Policy", "policy_type": "PII", "action": "MASK",
      "detected_items": [
        { "rule_type": "regex", "rule_id": 15, "rule_name": "phone_number:_korea_mobile_all_separators",
          "action": "MASK", "confidence": 1, "mask_word": "PHONE_NUMBER_1",
          "matched_text": "010-2543-2513", "alert_message": "휴대전화번호 감지됨" },
        { "rule_type": "regex", "rule_id": 18, "rule_name": "email:_email_address",
          "action": "MASK", "confidence": 1, "mask_word": "EMAIL_1",
          "matched_text": "jane@acme.co.kr", "alert_message": "이메일 주소 감지됨" }
      ]
    }]
  }]
}
マスキングトークンの形式: [<MASK_WORD>_<n>]。出現ごとに番号が付与されます([PHONE_NUMBER_1][PHONE_NUMBER_2]、…)。

BLOCK の例(Topic)

{
  "action": "BLOCK",
  "input_results": [{
    "index": 0, "type": "text", "identifier": null, "action": "BLOCK",
    "processed_content": null, "processed_content_type": null,
    "results": [{
      "policy_name": "Topic Policy", "policy_type": "TOPIC", "action": "BLOCK",
      "detected_items": [
        { "rule_id": "WPN", "rule_name": "무기", "action": "BLOCK",
          "confidence": 1, "classification": "unsafe", "alert_message": "…" }
      ]
    }]
  }]
}

detected_items — PII と Topic の違い

フィールドはポリシータイプによって異なります。
フィールドPIITopic
rule_typener | regex | keyword
rule_id整数文字列のトピックコード(例:WPN
rule_nameルール名トピックのタイトル
classificationsafe(→ PASS)| controversial(→ CHECK)| unsafe(→ BLOCK)
mask_wordあり(MASK)
matched_text一致した範囲
actionconfidencealert_messageありあり
まずトップレベルの action を読み取ってください。MASK の場合は元のコンテンツの代わりに processed_content を転送します。BLOCK の場合はモデルを呼び出さないでください。アクションを参照してください。

PASS は常に「分析済みで、何も検出されなかった」を意味する

空の results を伴う PASS は決して曖昧ではありません。それは、Guardian が分析を完了し、何も見つからなかったことを意味します。分析に失敗したという意味ではありません。Guardian が分析できないリクエストは、劣化した 200 ではなく HTTP エラーを返すため(Guardian のフェイルクローズ)、障害がクリーンな結果と誤って解釈されることは決してありません。エラーと状態を参照してください。