> 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/chinese-simplified/api-wen-dang-liao-tian/ji-shu-zhi-nan-qian-yi-dao-ggwp.md).

# 技术指南：迁移到 GGWP

## 1. 基础集成

### 1.1 开始使用

* 从您的 GGWP 客户代表处获取 API 密钥和环境信息（开发/生产）。
* 查看我们的 [标准套餐](/chinese-simplified/api-wen-dang-liao-tian/biao-zhun-tao-can.md#authentication) 章节以了解有关身份验证的更多详情。

### 1.2 准备您的数据

GGWP 的 Chat API 接受一个简单的 JSON 负载，只需最少的必填字段：

* **session\_id** （例如："match\_123"）
* **user\_id** （例如："player\_456"）
* **消息** （例如："fuck you"）

注意：可选元数据，例如 *时间戳、用户名、语言、message\_url、频道、* 或 *参与者* 也可以包含。

### 1.3 将数据发送到 GGWP

使用 REST API 端点实时发送聊天消息。

* POST /chat/v2/message
* 响应包含类别标志、严重程度和过滤后的文本。

{% tabs %}
{% tab title="cURL" %}

```bash
curl --request POST 'https://api.ggwp.com/chat/v2/message' \
--header 'x-api-key: <GGWP_API_KEY>' \\
--header 'x-api-config: <BASE64_ENCODED_CONFIG>' \\
--header 'Content-Type: application/json' \
--data-raw '{
  "session_id": "match_1234",
  "message": "你真是个白痴！",
  "user_id": "user001",
  "username": "playerOne",
  "timestamp": "2024-09-01 12:00:00"
}'

```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

# API 端点
url = "https://api.ggwp.com/chat/v2/message"

# 使用您的 API 密钥和配置设置请求头
headers = {
    "x-api-key": "<GGWP_API_KEY>",
    "x-api-config": "<BASE64_ENCODED_CONFIG>",
    "Content-Type": "application/json"
}

# 定义包含消息数据的负载
payload = {
    "session_id": "match_1234",
    "message": "你真是个白痴！",
    "user_id": "user001",
    "username": "playerOne",
    "timestamp": "2024-09-01 12:00:00"
}

# 发送 POST 请求
response = requests.post(url, headers=headers, data=json.dumps(payload))

# 打印响应状态码和 JSON 响应
print(response.status_code)
print(response.json())

```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// API 端点
const url = 'https://api.ggwp.com/chat/v2/message';

// 使用您的 API 密钥和配置设置请求头
const headers = {
  'x-api-key': '<GGWP_API_KEY>',
  'x-api-config': '<BASE64_ENCODED_CONFIG>',
  'Content-Type': 'application/json'
};

// 定义包含消息数据的负载
const payload = {
  session_id: 'match_1234',
  message: '你真是个白痴！',
  user_id: 'user001',
  username: 'playerOne',
  timestamp: '2024-09-01 12:00:00'
};

// 发送 POST 请求
axios.post(url, payload, { headers })
  .then(response => {
    console.log(response.status);    // 打印状态码
    console.log(response.data);      // 打印响应数据
  })
  .catch(error => {
    console.error(error);            // 处理任何错误
  });

```

{% endtab %}

{% tab title="Java" %}

```java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ChatApiRequest {
    public static void main(String[] args) throws Exception {
        // API 端点
        String url = "https://api.ggwp.com/chat/v2/message";

        // API 密钥和 base64 编码的配置
        String apiKey = "<GGWP_API_KEY>";
        String apiConfig = "<BASE64_ENCODED_CONFIG>";

        // 定义包含消息数据的负载
        String payload = "{"
                + "\"session_id\": \"match_1234\","
                + "\"message\": \"你真是个白痴！\","
                + "\"user_id\": \"user001\","
                + "\"username\": \"playerOne\","
                + "\"timestamp\": \"2024-09-01 12:00:00\""
                + "}";

        // 创建 HTTP 客户端
        HttpClient client = HttpClient.newHttpClient();

        // 使用请求头和负载构建 POST 请求
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .header("x-api-key", apiKey)
                .header("x-api-config", apiConfig)
                .header("Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(payload))
                .build();

        // 发送请求并获取响应
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        // 打印响应状态码和正文
        System.out.println(response.statusCode());
        System.out.println(response.body());
    }
}

```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // API 端点
        string url = "https://api.ggwp.com/chat/v2/message";

        // API 密钥和 base64 编码的配置
        string apiKey = "<YOUR_API_KEY>";
        string apiConfig = "<BASE64_ENCODED_CONFIG>";

        // 定义包含消息数据的负载
        string payload = @"{
            ""session_id"": ""match_1234"",
            ""message"": ""你真是个白痴！"",
            ""user_id"": ""user001"",
            ""username"": ""playerOne"",
            ""timestamp"": ""2024-09-01 12:00:00""
        }";

        // 创建 HttpClient 实例
        using HttpClient client = new HttpClient();

        // 为请求添加请求头
        client.DefaultRequestHeaders.Add("x-api-key", apiKey);
        client.DefaultRequestHeaders.Add("x-api-config", apiConfig);

        // 准备要发送的内容
        var content = new StringContent(payload, Encoding.UTF8, "application/json");

        // 发送 POST 请求并获取响应
        HttpResponseMessage response = await client.PostAsync(url, content);

        // 打印响应状态码和正文
        Console.WriteLine(response.StatusCode);
        Console.WriteLine(await response.Content.ReadAsStringAsync());
    }
}

```

{% endtab %}
{% endtabs %}

## 2. 策略对齐与自定义

### 2.1 类别映射

GGWP 提供以下详尽的模型类别列表。

我们的团队将与您密切合作，把这些类别映射到您现有的审核配置中，确保迁移无缝且符合策略。

如需查看详细的模型定义和示例，请访问我们的 [文本与语音模型术语表](/chinese-simplified/wen-ben-yu-yu-yin-mo-xing-shu-yu-biao.md).

#### **破坏性检测**

* **身份攻击**
  * 身份仇恨
  * 身份偏见
  * 性别偏见
* **骚扰**
  * 自我伤害
  * 威胁
  * 性暴力
  * 性骚扰
  * 性内容
  * 言语辱骂
  * 霸凌
* **不当内容**
  * 冒犯性语言
  * 批评游戏表现
  * 无建设性批评
  * 药物提及
  * 垃圾信息
  * 链接分享
  * PII（个人可识别信息）
  * 诈骗
  * 引诱
  * 年龄相关顾虑

#### **警报**

* 儿童诱骗
* 极端主义
* 心理健康风险

#### **亲社会检测**

* 感激
* 表扬
* 团队合作
* 善意
* 积极态度

### 2.2 过滤配置

使用配置控件自定义每个检测类别的严格程度，在 [聊天 API v2（旧版）](/chinese-simplified/api-wen-dang-liao-tian/biao-zhun-tao-can/liao-tian-api-v2-jiu-ban.md#headers) 或直接通过仪表板：

* **阈值控制**：调整过滤灵敏度（低、中、高）
* **自定义黑名单和白名单**：添加您自己的术语或例外以微调检测行为

## 3. 审核工具

### 3.1 仪表板访问

按照我们的 [控制台用户指南](/chinese-simplified/kong-zhi-tai-yong-hu-zhi-nan.md) 以全面查看被审核的内容：

* 搜索并查看事件
* 按语言、严重程度、会话或玩家筛选
* 执行手动操作（警告、禁言、封禁）

### 3.2 配置管理

无需修改代码，即可直接从 GGWP Dashboard 更改过滤设置。更新会立即生效。

## 4. 自动化

### 4.1 实时过滤

将 GGWP 的 API 输出直接集成到您的聊天系统中，以便实时自动阻止或屏蔽有害内容。您主要会查看 `recommended_message` API 响应中的 key，并将其传递给客户端并展示给其他用户。以下是部分响应示例：

```json
{
  "message_details": {
    "message_id": "20240901120000.000000-ae254ea9-f9ca-4dd8-bfd1-f1ac98f84f83",
    "original_message": "你真是个白痴！",
    "flag": true,
    "severity": "中",
    "filtered_message": "你真是个 *****！",
    "replaced_message": "爱德华队 >>>>>> 雅各布队",
    "recommended_message": "",
    "language": "英语",
    "violence": false,
    "verbal_abuse": true,
    ...
  },
  "player_details": {
    ...
    "user_status": {
      "status": "已禁言",
      "expiry_at": "2024-09-02 11:59:48"
    }
  },
  ...
}
```

#### 按房间的过滤设置，通过 `x-api-config`

您可以通过传入一个 base64 编码的 JSON 对象，在 `x-api-config` 标头中为不同聊天房间类型设置不同的过滤灵敏度（例如，公共聊天更严格，派对聊天更宽松）。&#x20;

* 创建 `config.json`&#x20;

{% tabs %}
{% tab title="公共房间（更严格）" %}

```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":"on",
  "scam":"on",
  "solicitation":"on",
  "age_concern":"on"
}

```

{% endtab %}

{% tab title="派对/DM（更宽松）" %}

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

```

{% endtab %}
{% endtabs %}

* 转换为 base64：

{% code overflow="wrap" %}

```bash
$ base64 config.json
ewogICJub25fZXhwbGljaXRfbnVkaXR5IjogIm9mZiIsCiAgImdhbWJsaW5nIjogIm9mZiIsCiAgInZpb2xlbmNlIjogIm9uIgp9
```

{% endcode %}

* 发起请求：

{% code overflow="wrap" %}

```bash
curl --request POST 'https://api.ggwp.com/chat/v2/message' \
--header 'x-api-key: <GGWP_API_KEY>' \\
--header 'x-api-config: <BASE64_ENCODED_CONFIG>' \\
--header 'Content-Type: application/json' \
--data-raw '{
  "session_id": "match_1234",
  "message": "你真是个白痴！",
  "user_id": "user001",
  "username": "playerOne",
  "timestamp": "2024-09-01 12:00:00"
}'

```

{% endcode %}

### 4.2 GGWP 自动审核

启用 GGWP Automod，可通过简单的 [Webhook](/chinese-simplified/webhook.md).

#### **配置 Webhook**

* **定义 Webhook 端点**：\
  在您的服务器上创建一个可以接收 POST 请求的 URL。
* **订阅 Webhook 事件**：\
  以下是用于处理玩家处罚的相关事件列表：

  * [/pages/0c354f86bad42e56982f7b0e2763a5eeaf4d7910#id-1.-player-sanctioned](https://docs.ggwp.com/chinese-simplified/api-wen-dang-liao-tian/pages/0c354f86bad42e56982f7b0e2763a5eeaf4d7910#id-1.-player-sanctioned "mention")
  * [/pages/0c354f86bad42e56982f7b0e2763a5eeaf4d7910#id-2.-player-reinstated](https://docs.ggwp.com/chinese-simplified/api-wen-dang-liao-tian/pages/0c354f86bad42e56982f7b0e2763a5eeaf4d7910#id-2.-player-reinstated "mention")
  * [/pages/0c354f86bad42e56982f7b0e2763a5eeaf4d7910#id-3.-warning](https://docs.ggwp.com/chinese-simplified/api-wen-dang-liao-tian/pages/0c354f86bad42e56982f7b0e2763a5eeaf4d7910#id-3.-warning "mention")

  如需订阅某种事件类型，请使用以下 API 请求：

```bash
curl --request POST 'https://api.ggwp.com/webhook/v1/subscriptions' \\
--header 'x-api-key: <GGWP_API_KEY>' \\
--header 'Content-Type: application/json' \
--data-raw '{
  "url": "https://example.com/customerapi",
  "enabled": true,
  "event_type": "player-sanctioned",
  "version": "1.1"
}'
```

* **接收事件**

  一旦订阅成功，您的 webhook 端点将开始接收如下事件： `player-sanctioned`。请确保您的端点配置为：

  * **验证 `secret_key`** 以确认该请求来自 GGWP。
    * 注意：每个订阅都有一个唯一的 `secret_key`。请妥善保管；它用于验证 webhook 请求，以确保其确实来自 GGWP。
  * **解析传入的负载** 并处理事件数据。
  * **返回一个 `200 OK`** 响应以确认已收到。

**Webhook 示例负载**

您主要会查看 `player_sanction` webhook 负载中的 key，并将该操作转发给您的客户端。以下是部分响应示例：

```json
{
  "type": "player-sanctioned",
  "event_id": "edce24d3-bf56-46b4-b5ea-40266mnaa5a84",
  "created_at": "2022-06-02 16:49:00",
  "data": {
    "session_id": "freeforallsession_o34u2",
    "incident_id": "20230629051500.000000-1aaf864e-1cdc-4c10-b1f2-ec90bfd4b244",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "player_sanction": {
      "status": "已禁言",
      "duration": 86400,
      "expiry_at": "2022-06-03 16:49:00"
    },
    "ladder_level_change": {
      "current_ladder_level": 1,
      "previous_ladder_level": 0
    },
    ...
  }
}
```

#### **自动审核规则配置**

规则完全可配置，并可综合考虑多种不同因素，包括事件严重程度、置信度、玩家信誉分或近期事件。

我们的团队将与您密切合作，以最适合您社区需求的方式推出 Automod，并让您清楚了解自动操作的影响。 &#x20;

## 5. 连接其他工作流

### 5.1 多模态审核

将审核扩展到文本聊天之外。GGWP 还支持：

* [语音审核](https://docs.ggwp.com/api-docs-voice)：通过原生音频模型 + 连接到我们文本引擎的 STT 流水线
* [用户名](https://docs.ggwp.com/api-docs-usernames)：用于检测不当昵称和其他短文本
* [玩家举报](https://docs.ggwp.com/api-docs-reports)：接收、分析并分流玩家提交的举报
* 图片（测试版）：检测露骨或暴力图像

### 5.2 外部系统集成

* [工单](https://docs.ggwp.com/webhooks/webhook-events#id-4.-workflow-integrations)：将事件推送到 Jira、Zendesk 或内部审核队列。
* [申诉](https://docs.ggwp.com/api-docs-appeals)：连接您的玩家申诉系统，实现完整生命周期管理。
* [上下文数据](https://docs.ggwp.com/api-docs-contextual-information)：通过玩家消费、活跃度、社交图谱信息以及其他相关输入丰富审核上下文。<br>
