> ## Documentation Index
> Fetch the complete documentation index at: https://docs.starfort.io/llms.txt
> Use this file to discover all available pages before exploring further.

# リクエスト形式

> Starfort Guard API のリクエストボディ。messages 配列、processType、additionalData、Opticon トレーシングを入力タイプ別に例示します (Starfort v1.4 版)

`Content-Type: application/json` で `POST https://bastion-guardian-api.starfort.io/v1/guard/api` を呼び出します。

```json theme={"dark"}
{
  "messages": [
    { "role": "user", "content": "Please share John Smith's number 010-1234-5678." }
  ],
  "processType": "input",
  "opticon": {
    "trace_id": "your-trace-id",
    "session_id": "your-session-id",
    "user_id": "end-user-id",
    "metadata": { "any": "value" },
    "tags": ["your-tag"]
  }
}
```

## フィールド

| フィールド         | 型      | 必須  | 備考                                                                                                    |
| ------------- | ------ | --- | ----------------------------------------------------------------------------------------------------- |
| `messages`    | array  | はい  | OpenAI Chat Completions 形式のメッセージ。                                                                     |
| `processType` | string | はい  | **Guardian が宣言する**ラベル（一般的には `input` / `output`）。**大文字小文字を区別しません。** Guardian がサポートするもののいずれかでなければなりません。 |
| `opticon`     | object | いいえ | トレーシングのヒント。トレーシングが不要な場合は全体を省略します。                                                                     |

<Note>
  リクエストでは **camelCase**（`processType`）を使用します。これらは本番 API が期待するフィールド名です。
</Note>

### `processType`

`processType` は **Guardian が定義する自由形式のラベル**であり、固定された列挙型ではありません。ほとんどの Guardian は `input`（入力時のリクエストをガード）と `output`（出力時のモデルレスポンスをガード）を宣言しますが、Guardian はサポートする任意の名前を宣言できます。

* **大文字小文字を区別しません** — 値はマッチング前にトリムされて小文字化されるため、`"input"`、`"INPUT"`、`" Input "` は同じ呼び出しです。
* 値は**呼び出される Guardian がサポートするもののいずれかでなければなりません。** そうでない場合、呼び出しは事前検証中に拒否され、エラーメッセージにサポートされているプロセスタイプが一覧表示されます。[エラーと状態](/ja/v1.4/api/errors)を参照してください。
* 一部のプロセスタイプは**ポリシー不要**です（Guardian がそれらに対して互換性のあるポリシータイプを宣言しません）。このようなプロセスタイプの呼び出しは Guard Policy を伴わないため、評価する対象がなく、検査なしで `PASS` を返します。

## メッセージのロール — すべてのメッセージが検査されます

Guardian は **`role` に関係なく、送信されたすべて**を評価します。PII ルールはすべてのメッセージの各コンテンツパート（`user`、`assistant`、`system`、その他のロール）に対して実行されるため、assistant の応答や system プロンプトに含まれる機微情報も、user 入力と同じようにマスクまたはブロックされます。Topic ポリシーは、`system` メッセージを含むマージされた会話全体に対して、リクエストを**一度だけ**評価します。

検査をスキップするロールはありません。ガードしたい会話をそのまま送信してください。

## 検査制限 — Guardian が単一のポイントで強制

プロジェクトに設定された検査制限（テキスト長・ファイルサイズ）は、v1.4 からは **Guardian が単一のポイントで強制**します。ゲートウェイはプロジェクトが定めた制限値を Guardian に引き渡すだけで、Guardian がリクエストの最上位の入力だけでなく、**ファイルから抽出されたテキスト、アーカイブ内部のメンバーまで**、自身が扱うすべてのコンテンツに同じ制限を適用します。そのため制限違反はどの段階で検出されても一貫した Guardian の拒否として現れ、違反したリクエストは[エラー](/ja/v1.4/api/errors)として拒否されます。

これとは別に、ゲートウェイにはいかなる設定とも無関係なプラットフォームの**入力受信上限**（リクエストボディサイズに対するインフラ保護ライン）があります — プロジェクトの検査制限は、その範囲内で自由に設定できます。

## Opticon トレーシング（オプション）

`opticon` オブジェクトは、その呼び出しに対して Starfort が記録する[トレース](/ja/v1.4/admin/monitoring-opticon)にトレーシングメタデータを付加します。

| フィールド        | 用途                                          |
| ------------ | ------------------------------------------- |
| `trace_id`   | 独自のトレース識別子（省略時は自動生成されます）。                   |
| `session_id` | 関連する呼び出しを 1 つのセッションにまとめます。                  |
| `user_id`    | エンドユーザーの識別子。                                |
| `metadata`   | 任意のキー／値。                                    |
| `tags`       | 独自のタグ。Starfort は action とポリシーのタグも自動的に追加します。 |

指定したフィールドに加えて、Starfort は各トレースを自動的に補強します。トレースの**名前**は Project Guardian の名前になり、ルートの `action`、各 `policy_type:action` / `policy_name:action`、および **API キーの名前**が**タグ**として追加されます。`processType`、マスクされた API キー識別子、および解決されたモデル構成は**メタデータ**になり、ポリシーごとの検出件数は**スコア**として記録されます。キーが競合した場合はシステム値が優先されます。トレーシングはベストエフォートであり、呼び出しをブロックすることは決してありません。[Opticon モニタリング](/ja/v1.4/admin/monitoring-opticon)を参照してください。

`messages` 内のマルチモーダルコンテンツ（画像、音声、ファイル、動画）については、[マルチモーダル入力](/ja/v1.4/api/multimodal)を参照してください。
