创建内容审核
POST v1/moderations对文本是否违反 OpenAI 的内容政策进行分类
请求参数
Authorization
在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。
Authorization: Bearer ******************Body 参数
Content-Type: application/json
| 参数路径 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 必需 | 模型 ID。指定用于处理请求的模型。 |
| input | array[object] | 必需 | 输入内容列表。支持混合输入(文本或图像),是一个对象数组。 |
| └─ type | string | 必需 | 输入类型。用于区分当前输入项是文本还是图像(例如 "text" 或 "image_url")。 |
| └─ text | string | 可选 | 文本内容。当 type 为 "text" 时,此处填入具体的文本字符串。 |
| └─ image_url | object | 可选 | 图像对象。当 type 为 "image_url" 时,包含图像信息的对象。 |
| └─ url | string | 必需 | 图像链接。图像的具体网络地址(URL)。 |
请求示例 (JSON)
{
"model": "omni-moderation-latest",
"input": [
{
"type": "text",
"text": "...text to classify goes here..."
},
{
"type": "image_url",
"image_url": {
"url": "https://github.com/dianping/cat/raw/master/cat-home/src/main/webapp/images/logo/cat_logo03.png"
}
}
]
}返回响应
200 成功
Content-Type: application/json
响应参数
| 参数路径 | 类型 | 说明 |
|---|---|---|
| id | string | 审核请求的唯一标识符 (例如: modr-6818)。 |
| model | string | 用于审核的模型名称 (例如: omni-moderation-latest)。 |
| flagged | boolean | 审核结果摘要。如果为 true,表示内容触发了至少一个违规类别;false 表示通过。 |
| results | array[object] | 包含审核结果的数组(通常对应输入的每一条内容)。 |
| └─ categories | object | 分类布尔值。列出所有具体的违规类别,true 表示检测到该违规,false 表示未检测到。 |
| └─ category_scores | object | 分类置信度分数。每个类别对应的违规概率分数(0 到 1 之间),数值越高表示越可能违规。 |
| └─ category_applied_input_types | object | 检测输入类型。指明针对每个类别,模型具体检测了哪些输入模态(如 text 或 image)。 |
| usage | object | 资源消耗统计。关于此次请求的 Token 使用详情。 |
| └─ prompt_tokens | integer | 提示词使用的 Token 总数。 |
| └─ completion_tokens | integer | 生成内容使用的 Token 总数。 |
| └─ total_tokens | integer | 总 Token 数。 |
| └─ prompt_tokens_details | object | 提示词 Token 的详细分类(如文本、音频、图像 Token 数)。 |
| └─ completion_tokens_details | object | 生成内容 Token 的详细分类(如推理 Token 数)。 |
响应示例
{
"model": "omni-moderation-latest",
"results": [
{
"categories": {
"self-harm": false,
"illicit/violent": false,
"harassment": false,
"sexual": false,
"hate": false,
"illicit": false,
"self-harm/intent": false,
"violence": false,
"harassment/threatening": false,
"sexual/minors": false,
"self-harm/instructions": false,
"violence/graphic": false,
"hate/threatening": false
},
"category_scores": {
"hate/threatening": 4.450850519411503e-8,
"sexual": 0.0000014738981974494932,
"self-harm/intent": 2.72647027069593e-7,
"self-harm": 2.4439928455892955e-7,
"violence": 4.495181578513688e-7,
"violence/graphic": 3.726639284186561e-7,
"harassment/threatening": 1.602810987828144e-7,
"illicit": 0.00000297731143841062,
"self-harm/instructions": 8.059446204294678e-8,
"illicit/violent": 0.0000024682904407607285,
"hate": 6.339210403977636e-7,
"sexual/minors": 1.602810987828144e-7,
"harassment": 0.0000014738981974494932
},
"category_applied_input_types": {
"self-harm": [
"text",
"image"
],
"violence/graphic": [
"text",
"image"
],
"hate/threatening": [
"text"
],
"self-harm/intent": [
"text",
"image"
],
"sexual/minors": [
"text"
],
"violence": [
"text",
"image"
],
"harassment": [
"text"
],
"sexual": [
"text",
"image"
],
"hate": [
"text"
],
"harassment/threatening": [
"text"
],
"illicit": [
"text"
],
"self-harm/instructions": [
"text",
"image"
],
"illicit/violent": [
"text"
]
},
"flagged": false
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0,
"prompt_tokens_details": {
"cached_tokens": 0,
"text_tokens": 0,
"audio_tokens": 0,
"image_tokens": 0
},
"completion_tokens_details": {
"text_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0
},
"input_tokens": 0,
"output_tokens": 0,
"input_tokens_details": null
},
"id": "modr-6818"
}示例代码
python
import http.client
import json
conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
"model": "omni-moderation-latest",
"input": [
{
"type": "text",
"text": "...text to classify goes here..."
},
{
"type": "image_url",
"image_url": {
"url": "https://github.com/dianping/cat/raw/master/cat-home/src/main/webapp/images/logo/cat_logo03.png"
}
}
]
})
headers = {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
}
conn.request("POST", "/v1/moderations", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))