> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/kr/api/standard-package/api-v2.md).

# 채팅 API v2 (레거시)

> **레거시 버전**
>
> 이 페이지는 레거시 `v2` 채팅 API 엔드포인트를 문서화합니다. 기존 통합은 이 버전을 계속 사용할 수 있지만, 새로운 통합은 `v3`.
>
> 현재 버전 보기: [채팅 API v3](/kr/api/standard-package/api-v3.md)

\[ 기본 URL: `api.ggwp.com`]

`POST` /chat/v2/message

## **설명**

이 API 엔드포인트는 입력 메시지, 세션 ID, 사용자 ID와 함께 독성 필터링 강도에 대한 구성 가능 옵션 목록을 처리하고, 4개 수준의 정보를 반환합니다:

* **메시지 상세** - 독성 콘텐츠의 존재와 심각도, 그리고 독성을 제거한 입력 메시지의 다양한 변형에 대한 지표.
* **플레이어 상세** - 대화 시점까지 해당 사용자의 행동을 설명하는 속성입니다. 여기에는 감지된 이전 사건 유형 목록, 플레이어 기분, 평판 점수 및 현재 상태가 포함됩니다.
* **대화 요약** - 해당 세션에서의 모든 이전 활동을 설명하는 지표입니다. 여기에는 세션 지속 시간, 메시지 및 참여자 수, 대화 분위기, 감지된 총 사건 수와 함께 유형 및 심각도가 포함됩니다.
* **권장 사항** - 해당 사용자에게 독성 행동의 이력이나 최근 연속으로 인해 부과된 제재에 대한 정보입니다. 여기에는 제재 자체, 유발 메시지와 시간, 제재 기간이 포함됩니다. `recommended_message` 필드는 제재가 적용되는 동안 빈 문자열을 반환합니다. API 출력의 이 부분은 다음 제재를 제공합니다:
  * 세션 음소거: 사용자는 세션/매치의 남은 기간 동안 음소거됩니다.&#x20;
  * 음소거: 사용자는 특정 기간 동안 모든 세션/매치에서 음소거됩니다.

## **헤더**

*참고: 구성 설정이 GGWP와 별도로 공유되는 경우에는 필요하지 않습니다*

다음은 구성 가능한 옵션 목록입니다:

* **폭력**: 개인이나 집단을 향한 신체적 피해 또는 파괴를 조장, 미화, 또는 위협하는 언어에 플래그를 지정합니다. 여기에는 위협, 죽음에 대한 바람, 폭력 행위에 대한 논의가 포함됩니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 낮음: 극단적이고 노골적인 폭력적 언급만 필터링합니다
    * 예: "암에 걸리길 바란다", "너는 죽어 마땅해", "네 부모를 죽일 거야", "가스실에 넣어야 해"
  * 보통: 위에서 포착한 사례에 더해, 청소년이나 어린이에게 적합하지 않은 다른 폭력적 행위 언급도 검열합니다
    * 예: "네가 강간당했어", "너는 추행범이야?"&#x20;
  * 높음: 위에서 포착한 사례에 더해, 경미한 폭력적 언급도 필터링합니다
    * 예: "그들을 린치하자", "그 팀은 학살당했어", "살인 파티"
* **성적 콘텐츠**: 노골적인 성적 발언, 은유적 표현, 또는 부적절하거나 불쾌한 언급을 포함한 언어에 플래그를 지정합니다. 여기에는 나체 묘사, 성행위 언급, 또는 성적으로 암시적인 언어가 포함됩니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 낮음: 성폭력을 언급하는 극단적인 표현을 필터링합니다
    * &#x20;예: "너를 강간할 거야", "강간범"
  * 보통: 위에서 포착한 사례에 더해, 다른 성행위 언급 및 상당히 노골적인 성적 언어도 검열합니다
    * 예: "네 거기 보여줘", "너는 내 성노예야", "내 엉덩이를 빨아", "좋은 블로우잡은 좋아해"
  * 높음: 위에서 포착한 사례에 더해, 어린이에게 부적절하다고 여겨지는 경미한 성적 언급도 필터링합니다&#x20;
    * 예: "가슴", "자지", "포르노", "애널", "처녀"
* **욕설**: 개인이나 집단을 향한 적대적, 모욕적, 또는 비하하는 언어가 포함된 메시지에 플래그를 지정합니다. 여기에는 개인 공격, 모욕, 비하 발언이 포함됩니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 낮음: 매우 불쾌하고 모욕적인 용어만 필터링합니다
    * 예: "fuktard 여기서 꺼져", "너는 완전 빌어먹을 암이야"&#x20;
  * 보통: 위에서 포착한 사례에 더해, 다른 형태의 욕설이나 직접적인 모욕도 검열합니다&#x20;
    * 예: "꺼져", "개자식", "멍청이", "엉덩이원숭이"
  * 높음: 위에서 포착한 사례에 더해, 약간 불쾌한 용어도 필터링하며, 어린 연령대에 가장 적합합니다&#x20;
    * 예: "너 바보야", "멍청이", "인셀", "뇌사 상태"&#x20;
* **정체성 혐오**: 종교, 민족, 국적, 인종, 성별, 성적 지향 또는 기타 정체성 요인을 근거로 한 차별적 언어를 사용하는 메시지에 플래그를 지정합니다. 여기에는 비하어, 혐오 발언 또는 특정 정체성 집단과 부정적이거나 비하적인 방식으로 흔히 연관되는 용어가 포함됩니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 낮음: 극단적인 혐오 비하어만 필터링합니다
    * 예: "nigger", "faggot", "cunt", "retard", "chink"
  * 보통: 위에서 포착한 사례에 더해, 특정 정체성 집단과 흔히 연관된 다른 형태의 혐오적 편견도 검열합니다
    * 예: "너 진짜 약골 같아", "저 창녀들 좀 봐", "트랜니", "그는 백인 쓰레기야"
  * 높음: 위에서 포착한 사례에 더해, 특정 정체성 집단에 대한 더 미묘한 편견과 자주 연관되는 정체성 용어도 필터링합니다
    * 예: "완전 게이 같아", "노호모", "퀴어 분위기", "모든 나치"
* **욕설**: 외설적이거나 저속하거나 부적절한 언어 또는 욕설을 사용하는 메시지에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 보통: 더 외설적인 형태의 욕설과 불쾌한 욕설을 필터링합니다
    * 예: "꺼져", "지옥에나 가", "개자식들", "닥쳐 패배자"
  * 높음: 위에서 포착한 사례에 더해, 경미한 욕설도 필터링합니다
    * 예: "아 씨발", "망할", "비켜", "초보자들"
* **링크 공유**: 플레이어가 부적절한 웹사이트, 광고, 사기 또는 기타 잠재적으로 유해한 콘텐츠를 공유하는 것을 방지하기 위해 외부 링크가 포함된 메시지에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 보통: 일반적인 부적절하거나 성인용 콘텐츠(예: 성적 콘텐츠, 도박 및 기타 불법 행위, 피싱 공격 가능성)와 관련된 것으로 알려진 URL을 필터링합니다
  * 높음: 모든 URL을 필터링합니다
* **약물**: 게임 환경에 부적절한 불법 물질, 약물 사용, 또는 약물 문화에 대한 언급에 플래그를 지정합니다. 여기에는 약물 사용에 대한 논의, 지지, 또는 묘사가 포함됩니다. 지원되는 필터 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 켬: 이 필터는 켜져 있으며 모든 약물 언급을 차단합니다
    * 예: "모두 약물이나", "코카인을 꼭 해봐", "알코올 중독자", "메스 중독자"
* **스팸**: 다른 사람의 채팅 또는 게임 경험을 방해하는 반복적이거나 과도한 메시지에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 켬: 이 필터는 켜져 있습니다
* **자해**: 자해, 자살, 또는 기타 자기 파괴적 행동을 조장, 미화, 또는 시사하는 모든 콘텐츠에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 켬: 이 필터는 켜져 있으며 유해한 행동 조장을 차단합니다
    * 예: "자살해", "목을 그어", "좀 쏴서 죽여줘", "네 인생을 삭제해"
* **PII**: 은행 번호, 신용카드, 이메일 주소, 전화번호, 실제 주소를 포함한 개인 식별 정보(PII)가 포함된 메시지에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 보통: 인식된 패턴과 맥락을 바탕으로 PII가 포함된 것으로 강하게 보이는 콘텐츠를 필터링하는 기본값
    * *레거시 별칭*: 값 `on` 이 지원되며 `medium`
  * 높음: 신뢰도 수준과 관계없이 일반적인 PII 형식과 일치하는 모든 콘텐츠를 필터링합니다
* **유도**: 이름, 전화번호 같은 다른 플레이어의 저위험 개인정보를 얻으려 하거나, 플랫폼 밖으로 유도하거나, 직접적이거나 의심스러운 요청을 통해 금전이나 디지털 자산 같은 현실 세계의 가치를 빼내려는 메시지에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 켬: 이 필터는 켜져 있으며 유도로 플래그된 모든 메시지를 차단합니다
* **사기**: 속임수, 조작, 또는 부정한 수법을 통해 계정, 게임 내/현실 자산, 또는 고위험 개인 식별 정보(예: 주민등록번호, 신용카드 정보, 실제 주소)를 훔치려는 사기성 계획이 포함된 메시지에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 켬: 이 필터는 켜져 있으며 사기로 플래그된 모든 메시지를 차단합니다
* **미성년자 안전**: 미성년자를 그루밍, 포식적 의도, 미성년자의 성적 대상화, 또는 아동을 착취, 조종, 위험에 빠뜨리려는 시도를 암시하는 언어가 포함되어 미성년자를 위험에 놓을 수 있는 메시지에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 낮음: 미성년자가 관련된 모든 성적 콘텐츠와 폭력 콘텐츠를 필터링합니다
    * 예: "네 여동생을 강간해", "아이를 만져", "미성년자는 성관계에 동의할 수 있어", "소아성애자는 정상", "10살 아이를 폭행해"
  * 보통: 위에서 포착한 사례에 더해, 그루밍 행동과 가상의 미성년자와의 부적절한 정서적 신뢰 형성을 시사하는 언어를 검열합니다
    * 예: "너는 나이에 비해 성숙하네", "부모님께 나에 대해 말하지 마", "내 또래보다 너와 더 가까운 느낌이야"
  * 높음: 위에서 포착한 사례에 더해, 개인적인 질문, 비밀 유지, 경계 시험 행동을 통해 잠재적 미성년자 안전 우려를 일으키는 모든 언어를 검열합니다
    * 예: "17세 미만이야?", "몇 살이야", "부모님 집에 계셔?", "이건 우리끼리만"
* **연령 관련 우려**: 사용자가 자신의 나이를 명시적 또는 암시적으로 나타내는 메시지에 플래그를 지정합니다. 이 범주는 정보 제공용이며, 유해 의도 탐지보다는 연령 인식 안전 제어를 지원합니다. 지원되는 필터 값은 다음과 같습니다:
  * 끔: 이 필터는 꺼져 있습니다
  * 낮음: 사용자가 13세 미만임을 나타내는 모든 단서를 필터링합니다
    * 예: "나는 10살이야", "나는 12살이야", "나는 초등학생이야", "나는 어린아이야"
  * 보통: 위의 예를 포함하여 사용자가 18세 미만임을 나타내는 모든 단서를 필터링합니다
    * 예: "나는 15살이야", "나는 17살이야", "나는 고등학생이야", "나는 미성년자야"
  * 높음: 위의 예를 포함하여 사용자가 21세 미만임을 나타내는 모든 단서를 필터링합니다
    * 예: "나는 19살이야", "아직 21살이 아니야", "법적으로 술을 마실 수 없어", "나는 20살이야"

전달할 샘플 JSON 및 base64 인코딩 변수:

{% code overflow="wrap" %}

```bash
$ cat config.json
{
 	"violence": "off",
	"sexual_content": "low",
	"verbal_abuse": "medium",
	"identity_hate": "medium",
	"profanity": "high",
	"link_sharing": "high",
	"drugs": "off",
	"spam": "on",
	"self_harm": "on",
	"pii": "off", 
	"solicitation": "off",
	"scam": "off",
	"minor_safety": "low"
}

$ base64 config.json
ewogCSJ2aW9sZW5jZSI6ICJvZmYiLAoJInNleHVhbF9jb250ZW50IjogImxvdyIsCgkidmVyYmFsX2FidXNlIjogIm1lZGl1bSIsCgkiaWRlbnRpdHlfaGF0ZSI6ICJtZWRpdW0iLAoJInByb2Zhbml0eSI6ICJoaWdoIiwKCSJsaW5rX3NoYXJpbmciOiAiaGlnaCIsCgkiZHJ1Z3MiOiAib2ZmIiwKCSJzcGFtIjogIm9uIiwKCSJzZWxmX2hhcm0iOiAib24iLAoJInBpaSI6ICJvZmYiLCAKCSJzb2xpY2l0YXRpb24iOiAib2ZmIiwKCSJzY2FtIjogIm9mZiIsCgkibWlub3Jfc2FmZXR5IjogImxvdyIKfQ==

$curl -H "x-api-config:ewogCSJ2aW9sZW5jZSI6ICJvZmYiLAoJInNleHVhbF9jb250ZW50IjogImxvdyIsCgkidmVyYmFsX2FidXNlIjogIm1lZGl1bSIsCgkiaWRlbnRpdHlfaGF0ZSI6ICJtZWRpdW0iLAoJInByb2Zhbml0eSI6ICJoaWdoIiwKCSJsaW5rX3NoYXJpbmciOiAiaGlnaCIsCgkiZHJ1Z3MiOiAib2ZmIiwKCSJzcGFtIjogIm9uIiwKCSJzZWxmX2hhcm0iOiAib24iLAoJInBpaSI6ICJvZmYiLCAKCSJzb2xpY2l0YXRpb24iOiAib2ZmIiwKCSJzY2FtIjogIm9mZiIsCgkibWlub3Jfc2FmZXR5IjogImxvdyIKfQ==" -H "x-api-key:<API_KEY>" -XPOST https://api.ggwp.com/chat/v2/message -d "{"session_id": "match_7765", "message": "fucking retards everywhere", "user_id": "user989", "username": "nlxdz", "timestamp": "2022-06-02 16:49:02"}"
```

{% endcode %}

다음은 기본 구성입니다. 만약 `x-api-config` 헤더가 전달되지 않으면:

```json
{
	"violence": "high",
	"sexual_content": "high",
	"verbal_abuse": "high",
	"identity_hate": "high",
	"profanity": "high",
	"link_sharing": "high",
	"drugs": "on",
	"spam": "on",
	"self_harm": "on",
	"pii": "medium", 
	"solicitation": "off",
	"scam": "off",
	"minor_safety": "low",
	"age_concern": "off"
}
```

## **매개변수**

`body`: 다음 필드를 포함하는 딕셔너리:\
(*utf-8 인코딩이어야 합니다)*

* **session\_id:** 대화 채널의 고유 식별자. 게임 메시지의 경우 단일 매치 동안 전개되는 대화를 식별할 수 있습니다. 포럼이나 게시판의 경우 별도의 스레드나 토론을 나타낼 수 있습니다. 플랫폼에 여러 채널 유형(예: 로비, 매치, 다이렉트 메시지 등)이 있는 경우, 대화 유형별 추가 분석이 가능하도록 session\_id에 이 정보를 포함하는 것을 권장합니다. 권장 형식은 다음과 같습니다:

  ```json
    session_id = "channelType_numericID"
  ```
* **message:** 대화 중 사용자가 보낸 메시지입니다. 1,000자를 초과할 수 없습니다.
* **user\_id:** 메시지를 보낸 플레이어 또는 사용자의 고유 식별자입니다.
* (선택 사항) **username**: 사용자가 선택한 친숙한 표시 이름이 담긴 문자열입니다.
* (선택 사항) **timestamp**: 메시지가 발생한 시각을 UTC 기준 YYYY-MM-DD HH:MM:SS.SSS 또는 YYYY-MM-DD HH:MM:SS 형식으로 나타낸 시간입니다. 추가하지 않으면 서버 측 UTC 타임스탬프가 대신 추가됩니다.
* (선택 사항) **language**: 처리할 메시지의 언어입니다. 생략하면 API가 메시지 내용과 이전 사용자 기록을 바탕으로 언어를 감지하려고 시도합니다. 표준 영어 언어 이름(예: `"english"` 또는 `"spanish"`)와 ISO 639-1 두 글자 언어 코드(예:  `"en"` 또는 `"es"`). 다음과 같은 전체 로케일 태그는 `"en-US"`, `"en-GB"`, `"pt-BR"`, 그리고 `"es-MX"` 는 현재 지원되지 않습니다. 대신 `"en"`, `"pt"`, 또는 `"es"` 를 보내십시오.
* (선택 사항) **message\_index**: 전송된 메시지를 추적하는 문자열 필드입니다. 전달되면 출력의 `message_details` 아래에 포함됩니다.
* (선택 사항) **message\_url**: 메시지에 태그된 URL을 추적하는 문자열 필드입니다. http 또는 https 스킴만 유효합니다. 유효하고 전달되면 대시보드에 표시됩니다.
* (선택 사항) **metadata**: 메시지와 연관된 메타데이터를 추적하는 Dict 필드입니다. 5KB 이하여야 합니다. 허용되는 키와 해당 타입만 유효합니다. 지원되는 키:

  * channel (string) - 메시지가 전달되는 통신 공간입니다. 예: dm, party, guild, local
  * participants (array\<string>) - 채널에 참여하는 user\_id 목록
  * map (string) - 메시지가 발생한 세계, 레벨 또는 환경의 식별자 또는 이름
  * map\_version (string) - 맵의 버전 식별자, 레이아웃 등의 변경 추적에 사용
  * zone (string) - 더 세분화된 위치 맥락을 위해 맵 내의 하위 구역 또는 명명된 지역
  * coordinates (object) - 맵 또는 구역 내의 공간적 위치
    * x (float) - X축을 따른 위치
    * y (float) - Y축을 따른 위치
    * z (float) - Z축을 따른 위치

  예:

  ```json
  {
    "metadata": {
      "channel": "dm",
      "participants": ["user989", "user990"],
      "map":"golden_wasteland",
      "map_version":"2026.03.1",
      "zone":"cacti_forest",
      "coordinates":{
         "x":123.45,
         "y":67.89,
         "z":-10.25
      }
    }
  }
  ```

  참고: 추가 메타데이터 키도 지원될 수 있습니다. 귀하의 담당자와 협력하여 플랫폼에 적용 가능한 특정 키를 정의하십시오.

예:

```json
{
  "session_id": "match_7765",
  "message": "fucking retards everywhere",
  "user_id": "user989",
  "username": "nlxdz",
  "timestamp": "2022-06-02 16:49:02"
}
```

샘플 호출:

```bash
curl --request POST 'https://api.ggwp.com/chat/v2/message' \
--header 'x-api-key: api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
  "session_id": "match_7765",
  "message": "fucking retards everywhere",
  "user_id": "user989",
  "username": "nlxdz",
  "timestamp": "2022-06-02 16:49:02"
}'
```

## **출력**

* 200 응답 - 성공적인 작업

다음 필드를 포함하는 딕셔너리:

* **message\_details**: 페이로드로 전달된 메시지와 관련된 세부 정보
  * message\_details.message\_id: 메시지에 할당된 고유 식별자입니다.
  * message\_details.original\_message: 사용자가 보낸 원본 메시지입니다.
  * message\_details.flag: 메시지가 플래그되었는지 여부를 나타냅니다.
  * message\_details.severity: 독성의 심각도(none, low, medium, high).
  * message\_details.filtered\_message: 플래그된 용어가 필터링된 메시지 버전입니다.&#x20;
    * 공백으로 구분된 언어(예: 영어)에서는 전체 단어가 필터링됩니다. 예: `You are a shithead` --> `You are a *****`
    * 명시적 단어 경계가 없는 언어(예: 한국어, 일본어, 중국어)에서는 감지된 용어 자체만 필터링됩니다." 예: `좆까고 있네`--> `*****고 있네`
  * message\_details.replaced\_message: 원래 메시지를 대체하기 위해 생성된 안전하거나 유머러스한 대안입니다.
  * message\_details.recommended\_message: 클라이언트에 전달하도록 제안된 메시지 버전입니다. 활성 사용자에게는 이 값이 기본적으로 `filtered_message`로 설정됩니다. 음소거된 사용자에게는 `recommended_message` 빈 문자열이 됩니다.
  * message\_details.language: 감지된 메시지 언어입니다.
  * message\_details.violence: 메시지에 폭력이 포함되어 있으면 true입니다.
  * message\_details.verbal\_abuse: 메시지에 욕설이 포함되어 있으면 true입니다.
  * message\_details.profanity: 메시지에 욕설이 포함되어 있으면 true입니다.
  * message\_details.sexual\_content: 메시지에 성적 콘텐츠가 포함되어 있으면 true입니다.
  * message\_details.identity\_hate: 메시지에 정체성 혐오가 포함되어 있으면 true입니다.
  * message\_details.drugs: 메시지에 약물 언급이 포함되어 있으면 true입니다.
  * message\_details.self\_harm: 메시지에 자해가 포함되어 있으면 true입니다.
  * message\_details.custom: 메시지에 사용자 정의 차단 목록 용어가 포함되어 있으면 true입니다.
  * message\_details.spam: 메시지에 스팸이 포함되어 있으면 true입니다.
  * message\_details.link: 메시지에 외부 링크가 포함되어 있으면 true입니다.
  * message\_details.pii: 메시지에 개인 식별 정보가 포함되어 있으면 true입니다.
* **player\_details**: 다음에 대한 세부 정보를 포함하는 딕셔너리 `user_id` 에 있는 `session_id`
  * player\_details.user\_id: 사용자의 고유 식별자입니다.
  * player\_details.username: 사용자의 표시 이름입니다.
  * player\_details.num\_messages: 전송된 총 메시지 수입니다.
  * player\_details.num\_incidents: 사건 수입니다.
  * player\_details.cumulative\_mood: 사용자의 메시지에 대한 전체 감정입니다.
  * player\_details.min\_mood: 사용자의 메시지에서 관찰된 가장 낮은 감정입니다.
  * player\_details.max\_mood: 사용자의 메시지에서 관찰된 가장 높은 감정입니다.
  * player\_details.incident\_types\_detected: 사용자와 관련된 사건 유형 목록입니다.
  * player\_details.incidents\_by\_severity: 심각도 수준별로 그룹화된 사건 분류입니다.
  * player\_details.reputation\_score: 행동 이력에서 파생된 전체 사용자 평판 점수입니다.
  * player\_details.languages: 사용자의 메시지에서 감지된 언어입니다.
  * player\_details.user\_status: 사용자의 현재 조치 상태(예: 활성, 음소거됨)입니다.
  * player\_details.user\_status.status: 적용된 특정 조치(음소거 등)입니다.
  * player\_details.user\_status.expiry\_at: 조치가 만료되는 시각입니다.
* **대화 요약**: 다음에 대한 세부 정보를 포함하는 딕셔너리 `session_id` 의 페이로드
  * conversation\_summary.start\_time: 대화 세션이 시작된 타임스탬프입니다.
  * conversation\_summary.session\_duration: 대화의 총 지속 시간(초)입니다.
  * conversation\_summary.num\_messages: 대화의 총 메시지 수입니다.
  * conversation\_summary.num\_participants: 대화의 사용자 수입니다.
  * conversation\_summary.num\_incidents: 사건의 총 수입니다.
  * conversation\_summary.conversation\_mood: 전체 대화의 전체 감정입니다.
  * conversation\_summary.incident\_types\_detected: 대화 전체에서 발견된 사건 유형 목록입니다.
  * conversation\_summary.incidents\_by\_severity: 심각도 수준별로 그룹화된 사건 분류입니다.
* **권장 사항**: 수행할 권장 조치를 포함하는 딕셔너리 `user_id`
  * recommendations.\<user\_id>.action: 권장되는 조치(예: 음소거)입니다.
  * recommendations.\<user\_id>.trigger\_message: 권장을 유발한 문제 메시지입니다.
  * recommendations.\<user\_id>.trigger\_time: 유발 메시지의 타임스탬프입니다.
  * recommendations.\<user\_id>.duration: 조치가 유지되어야 하는 시간(초)입니다.

샘플 출력:

```json
{
  "message_details": {
    "message_id": "20220602164902.482311-946bb8a9-0766-4c31-995a-d910da8531e5",
    "original_message": "fucking retards everywhere",
    "flag": true,
    "severity": "medium",
    "filtered_message": "***** ***** everywhere",
    "replaced_message": "잠깐... 재미있게 놀아야 하는 거 아니었나요?",
    "recommended_message": "",
    "language": "english",
    "violence": false,
    "verbal_abuse": true,
    "profanity": true,
    "sexual_content": false,
    "identity_hate": true,
    "drugs": false,
    "self_harm": false,
    "custom": false,
    "스팸": false,
    "링크": false,
    "개인정보": false,
    "권유": false,
    "사기": false,
    "미성년자_안전": false,
    "연령_관련_우려": false
  },
  "플레이어_세부_정보": {
    "user_id": "user989",
    "username": "nlxdz",
    "메시지_수": 11,
    "사건_수": 6,
    "누적_감정": 0.748,
    "최소_감정": 0.0,
    "최대_감정": 0.8615,
    "감지된_사건_유형": [
      "언어적_폭력",
      "욕설",
      "정체성_혐오_발언"
    ],
    "심각도별_사건": {
      "높음": 2,
      "보통": 3,
      "낮음": 1
    },
    "평판_점수": 245,
    "언어": [
      "english"
    ],
    "사용자_상태": {
      "상태": "음소거됨",
      "만료_시각": "2022-06-03 16:49:00"
    }
  },
  "대화_요약": {
    "시작_시각": "2022-05-27 16:53:03",
    "세션_지속_시간": 59,
    "메시지_수": 46,
    "참여자_수": 3,
    "사건_수": 16,
    "대화_분위기": 0.9816,
    "감지된_사건_유형": [
      "언어적_폭력",
      "욕설",
      "정체성_혐오_발언",
      "성희롱"
    ],      
    "심각도별_사건": {
      "높음": 4,
      "보통": 6,
      "낮음": 6
    }
  },
  "권장_사항": {
    "user989": [
      {
        "조치": "음소거",
        "트리거_메시지": "멍청한 새끼 호모",
        "트리거_시각": "2022-06-02 16:49:00",
        "지속_시간": 86400
      }
    ]
  }
}
```

* 400
  * 잘못되었거나 형식이 올바르지 않은 요청입니다. 가능한 원인:
    * &#x20;잘못된 JSON 입력&#x20;
    * &#x20;잘못된 헤더, 메타데이터를 포함해 5 KB를 초과하거나 허용되지 않는 키를 포함함
    * &#x20;잘못됨 `x-api-config`, 또는 허용되지 않는 키를 포함한 것
    * &#x20;다음 필수 필드 누락: `user_id`, `session_id`, `메시지`
    * &#x20;잘못된 입력 형식: 잘못된 타임스탬프 형식, 메시지 문자 수 제한 초과 등.&#x20;
* 403
  * 유효하지 않거나 누락된 API 키
* 500
  * 서버 내부 오류
