hello,word

chatgpt审核接入

OpenAI Moderation API 中文开发文档

适用环境:PHP 7.4 / ThinkPHP 5 / FastAdmin / MySQL

本文按照 OpenAI 官方 Moderation API 的接口规范整理,重点说明如何在社区系统中审核用户发布的文本,包括接口参数、违规类型、返回数据结构和 FastAdmin 接入方法。

一、接口概述

Moderation API 是 OpenAI 提供的内容安全审核接口,可以检测用户输入的文本是否包含色情、暴力、仇恨、骚扰、自残等风险内容。

它支持中文,无需先将中文翻译成英文。

项目

说明

请求方式

POST

API 地址

https://api.openai.com/v1/moderations

推荐模型

omni-moderation-latest

身份认证

Bearer API Key

请求格式

JSON

返回格式

JSON

中文文本

支持

图片审核

支持,具体类别有限制

视频审核

不支持此接口直接审核视频

PHP 7.4

支持通过 cURL 调用

对于你的社区系统,推荐使用 omni-moderation-latest。该模型可以直接对中文帖子、评论、聊天消息等进行审核。

二、请求参数

2.1 请求头

POST /v1/moderations HTTP/1.1
Host: api.openai.com
Authorization: Bearer YOUR_OPENAI_API_KEY
Content-Type: application/json

  

YOUR_OPENAI_API_KEY 是在 OpenAI API 平台创建的密钥,必须保存在 PHP 服务端,不能放到 H5 或 JavaScript 前端代码中。

2.2 请求 Body

参数

类型

必填

说明

model

string

否

审核模型,建议显式指定

input

string / array

是

需要审核的文本或多模态输入

最简单的文本审核请求:

{
  "model": "omni-moderation-latest",
  "input": "这是一条社区用户发布的中文评论"
}

批量文本审核请求:

{
  "model": "omni-moderation-latest",
  "input": [
    "今天天气真好",
    "这是一条普通的社区消息",
    "欢迎大家参加周末活动"
  ]
}

注意:批量输入适合离线审核或后台批处理。实时审核时建议为每条内容保留独立的审核记录。

三、所有违规类型中文说明

根据官方文档,omni-moderation-latest 提供 13 个内容审核类别。

OpenAI API
+1

 

3.1 完整类别对照表

API 字段

中文名称

识别内容

支持输入

harassment

骚扰、辱骂

攻击、羞辱、骚扰他人的语言

文本

harassment/threatening

威胁性骚扰

包含暴力或严重伤害威胁的骚扰

文本

hate

仇恨言论

基于种族、宗教、性别、国籍等受保护特征的仇恨表达

文本

hate/threatening

仇恨威胁

针对受保护群体的暴力或严重伤害威胁

文本

illicit

非法行为指导

提供违法行为的实施方法、建议或指导

文本

illicit/violent

涉暴非法行为指导

涉及暴力违法行为或武器获取的指导

文本

self-harm

自残相关内容

鼓励、宣扬或描述自残、自杀、进食障碍

文本、图片

self-harm/intent

自残意图

表达正在或打算实施自残行为

文本、图片

self-harm/instructions

自残方法指导

提供或鼓励实施自残的方法

文本、图片

sexual

色情内容

旨在引起性兴奋的内容或性服务推广,不包括正常性教育

文本、图片

sexual/minors

未成年人性内容

涉及未成年人的性内容

文本

violence

暴力内容

描述死亡、暴力或身体伤害

文本、图片

violence/graphic

血腥暴力

对死亡、暴力、身体伤害的露骨细节描写

文本、图片

3.2 容易混淆的类别

harassment 和 hate 的区别

例如:

  • “你真是个没用的人”可能属于骚扰。

  • 因某人的种族、宗教等受保护特征进行仇恨攻击,可能属于仇恨言论。

self-harm 和 self-harm/intent 的区别

  • self-harm:识别自残相关的鼓励、宣扬或描述。

  • self-harm/intent:识别说话者自身的自残意图。

对于 self-harm/intent,社区系统不应简单将其等同于恶意违规。用户可能正在寻求帮助,建议采用更谨慎的人工处理流程。

illicit 不代表所有违法内容

它主要识别帮助实施违法行为的建议或指导,而不是判断一篇文章中提到的行为是否违法。

3.3 官方接口不能直接覆盖的社区规则

以下不属于这 13 个专门类别:

社区规则

是否直接支持

商业广告

不专门支持

微信、WhatsApp 引流

不专门支持

垃圾信息

不专门支持

重复刷屏

不专门支持

虚假招聘

不专门支持

虚假商品

不专门支持

政治观点是否符合平台规则

不专门支持

发布他人隐私信息

不专门支持

这些需要结合规则引擎、用户行为数据或其他 AI 模型来审核。

 

四、API 返回数据结构

4.1 完整返回示例

下面是根据官方结构编写的示例数据,分数仅用于说明字段格式,不代表真实模型检测结果。

{
  "id": "modr-example123",
  "model": "omni-moderation-latest",
  "results": [
    {
      "flagged": true,
      "categories": {
        "harassment": true,
        "harassment/threatening": false,
        "hate": false,
        "hate/threatening": false,
        "illicit": false,
        "illicit/violent": false,
        "self-harm": false,
        "self-harm/intent": false,
        "self-harm/instructions": false,
        "sexual": false,
        "sexual/minors": false,
        "violence": false,
        "violence/graphic": false
      },
      "category_scores": {
        "harassment": 0.96,
        "harassment/threatening": 0.02,
        "hate": 0.01,
        "hate/threatening": 0.001,
        "illicit": 0.001,
        "illicit/violent": 0.001,
        "self-harm": 0.001,
        "self-harm/intent": 0.001,
        "self-harm/instructions": 0.001,
        "sexual": 0.001,
        "sexual/minors": 0.001,
        "violence": 0.01,
        "violence/graphic": 0.001
      },
      "category_applied_input_types": {
        "harassment": ["text"],
        "harassment/threatening": ["text"],
        "hate": ["text"],
        "hate/threatening": ["text"],
        "illicit": ["text"],
        "illicit/violent": ["text"],
        "self-harm": ["text"],
        "self-harm/intent": ["text"],
        "self-harm/instructions": ["text"],
        "sexual": ["text"],
        "sexual/minors": ["text"],
        "violence": ["text"],
        "violence/graphic": ["text"]
      }
    }
  ]
}

4.2 顶层返回字段

字段

类型

中文说明

id

string

本次审核请求的唯一标识

model

string

实际使用的审核模型

results

array

审核结果数组

4.3 results 内部字段

字段

类型

中文说明

flagged

boolean

是否检测到潜在有害内容

categories

object

各类别是否被标记

category_scores

object

各类别模型评分

category_applied_input_types

object

各类别评分对应的输入类型

 

4.4 flagged 的含义

$result = $response['results'][0];

if ($result['flagged'] === true) {
    // AI 检测到潜在违规
} else {
    // AI 未检测到对应类别的违规
}

注意:flagged = false 并不意味着内容一定合法或完全符合社区规则。

4.5 categories 的含义

例如:

{
  "harassment": true,
  "hate": false,
  "violence": false
}

 

posted @ 2026-10-19 16:26  tying  阅读(18)  评论(0)    收藏  举报