안전 웹훅과 Safety Case Read API를 사용해 OpenAI의 정책 집행 알림을 팀의 워크플로우에 연결하세요. 예를 들어 경고를 수신하면 애플리케이션에서 사례의 상세 정보를 조회하고 대상 사용자를 식별한 뒤 내부 검토 티켓을 생성할 수 있습니다.
활용 시점
다음과 같은 작업에 이 연동을 활용하세요.
- 경고 및 비활성화 알림을 신뢰 및 안전 담당 팀이나 지원 팀에 전달합니다.
- 조사 또는 지원 티켓에 사례 정보를 추가합니다.
- 애플리케이션에 저장된 안전 식별자 매핑을 사용해 알림을 해당 사용자와 연결합니다.
이 가이드에서는 경고를 예로 들어 워크플로우를 설명합니다. 비활성화 알림에도 같은 연동 방식을 사용할 수 있습니다.
작동 방식
경고 또는 비활성화 통지가 발행되면 안전 웹훅이 애플리케이션에 알립니다.
| 이벤트 | 알림 내용 |
|---|---|
safety.warning_issued |
조직 내 안전 식별자에 대한 경고 |
safety.deactivation_issued |
조직 내 안전 식별자에 대한 비활성화 조치 |
각 이벤트에는 사례 ID가 포함됩니다. 이 ID로 GET /v1/safety/cases/{id}를 호출하면 안전 식별자, 알림 유형, 사례 생성 시각을 조회할 수 있습니다. 정책에 따른 조치 사유도 제공되는 경우 확인할 수 있습니다.
이러한 조직 수준의 알림은 프로젝트 수준의 정렬 불일치 알림과 별개입니다. 사례를 조회해도 집행 조치가 변경되거나 취소되지 않습니다.
애플리케이션과 연동하기
먼저 조직 수준의 웹훅과 사례 조회용 키를 설정하세요. 그런 다음 알림을 검토 워크플로우에 연결하세요.
웹훅 설정 및 이벤트 수신
사용자마다 일관된 안전 식별자를 사용하고, 애플리케이션에서 식별자와 사용자 간의 매핑을 유지하세요. 식별자에는 개인정보를 포함하지 마세요.
조직 웹훅 설정에서 조직 수준의 웹훅 엔드포인트를 생성하고 safety.warning_issued 및 safety.deactivation_issued 이벤트를 구독하세요.
경고 알림의 구조는 다음과 같습니다.
{
"id": "evt_example",
"object": "event",
"created_at": 1787659200,
"type": "safety.warning_issued",
"data": {
"id": "C-abc123"
}
}
웹훅 사용 시 일반적인 권장 사항은 웹훅 가이드를 참고하세요.
이벤트의 id는 웹훅 이벤트를 식별합니다. 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 레퍼런스를 참고하세요.
워크플로우에 연결하기
웹훅으로 알림을 수신한 다음 사례 메타데이터를 활용해 알림을 기존 조사 또는 지원 시스템으로 자동 전달하세요.
문제 해결
| 증상 | 확인 사항 |
|---|---|
| 서명 검증 실패 | 서명용 시크릿을 확인하고 웹훅 가이드에 따라 원본 요청 본문을 그대로 유지하세요. |
조회 시 401 반환 |
요청에 유효한 API 키가 포함되어 있는지 확인하세요. |
조회 시 403 반환 |
키에 api.safety.read 권한이 있는지 확인하세요. |
조회 시 404 반환 |
이벤트 ID 대신 data.id를 사용하세요. 사례가 API 키와 같은 조직에 속하는지 확인하세요. |
조회 시 429 또는 일시적인 5xx 반환 |
최대 재시도 횟수를 정하고 백오프를 적용해 재시도하세요. 나중에 처리하거나 조사할 수 있도록 이벤트를 보관하세요. |