安全対策 Webhook と Safety Case Read API を使うと、OpenAI から届く措置の通知をチームのワークフローに組み込めます。たとえば、警告を受信したときに、アプリケーションでケースの詳細を取得し、対象ユーザーを特定して、社内レビュー用のチケットを作成できます。
利用場面
この連携は次のような用途に使えます。
- 警告や利用停止の通知をトラスト&セーフティチームやサポートチームに転送
- 調査やサポートのチケットにケース情報を追加
- アプリケーションが管理する安全識別子とユーザーの対応関係を使って、通知を対象ユーザーに関連付け
このガイドでは、警告を例に手順を説明します。利用停止の通知にも同じ仕組みを使えます。
通知の仕組み
警告や利用停止の通知が発行されると、安全対策 Webhook を通じてアプリケーションにイベントが届きます。
| イベント | 通知内容 |
|---|---|
safety.warning_issued |
組織内の安全識別子に対する警告。 |
safety.deactivation_issued |
組織内の安全識別子に対する利用停止措置。 |
各イベントにはケース ID が含まれます。この ID を GET /v1/safety/cases/{id} に指定すると、安全識別子、通知の種類、ケースの作成日時を取得できます。ポリシーに基づく措置の理由も、提供されている場合は取得できます。
これらの組織レベルの通知は、プロジェクトレベルのミスアライメントアラートとは別のものです。ケースを取得しても、措置が変更または取り消されることはありません。
アプリケーションとの連携
まず、組織レベルの Webhook とケース照会用のキーを設定します。次に、通知をレビューのワークフローに組み込みます。
Webhook の設定とイベントの受信
ユーザーごとに一貫した安全識別子を使い、識別子からユーザーを特定できるようにアプリケーションで対応関係を管理してください。識別子に個人情報を含めることは避けてください。
組織の Webhook 設定で組織レベルの Webhook エンドポイントを作成し、safety.warning_issued と safety.deactivation_issued を購読します。
警告通知は次の形式で届きます。
{
"id": "evt_example",
"object": "event",
"created_at": 1787659200,
"type": "safety.warning_issued",
"data": {
"id": "C-abc123"
}
}
Webhook の一般的なベストプラクティスについては、Webhook ガイドを参照してください。
イベントの id は Webhook イベントを識別します。data.id は取得対象の安全対策ケースを識別します。
ケースの取得
ケースを照会するには、同じ組織の API キーの権限を Restricted に設定し、Safety を Read(api.safety.read)に設定します。
Safety Case Read API を使ってケースのメタデータを取得します。
curl "https://api.openai.com/v1/safety/cases/C-abc123" \
-H "Authorization: Bearer ${OPENAI_API_KEY}"
照会に成功すると、HTTP 200 とともに、次の例のようなケースオブジェクトが返されます。
{
"id": "C-abc123",
"object": "safety.case",
"created_at": 1787659100,
"entity_identifier": "entity_identifier",
"reason": "cyber_abuse",
"notice": {
"type": "warning"
}
}
entity_identifier は措置の対象となった安全識別子を表します。ケースの作成日時は調査の手がかりになります。各フィールドの定義は、Safety Case API リファレンスを参照してください。
ワークフローとの連携
Webhook で通知を受信したら、ケースのメタデータを使って、既存の調査システムやサポートシステムに通知を自動で振り分けます。
トラブルシューティング
| 症状 | 確認事項 |
|---|---|
| 署名の検証に失敗する | 署名用シークレットを確認し、Webhook ガイドの説明に従ってリクエスト本文を受信時のまま保持してください。 |
照会で 401 が返る |
API キーが指定されていて、有効であることを確認してください。 |
照会で 403 が返る |
キーに api.safety.read 権限があることを確認してください。 |
照会で 404 が返る |
照会にはイベント ID ではなく data.id を使ってください。また、ケースがキーと同じ組織に属していることを確認してください。 |
照会で 429 または一時的な 5xx エラーが返る |
バックオフを適用し、回数に上限を設けて再試行してください。後で処理や調査ができるよう、イベントを保存してください。 |