AI文本图片安全审核接口整理与使用教程

AI文本图片安全审核接口整理与使用教程

说明:本文基于公开文档与文章整理,未对每个接口做真实请求实测,接口可用性以公开文档为准,集成前请自行验证。文中出现的所有请求地址均为文字占位,需替换为你自己的网关地址与凭证。

写在前面

在社区论坛、评论区、电商商品页、AI 对话、UGC 内容这类"用户可输入、可发布、可展示"的场景里,内容安全审核已经是上线前的基础能力,而不再是可选功能。完全依赖人工审核,成本高、响应慢;只靠本地敏感词库,又容易被谐音、拆字、空格、拼音绕过,且无法理解上下文。

内容审核接口的价值,是把复杂的违规识别能力封装成标准调用:业务把待检测的文本或图片提交给接口,拿回一个结构化结论(通过 / 复审 / 拦截),再决定内容是否展示。本文把市面上能找到的几类文本与图片审核接口整理到一起,给出接入写法、返回结构与选型对照,方便你在集成时少踩坑。

通用提醒:部分接口需要自备 key 或 token,且免费额度、计费方式、条款限制会随平台调整;本文列出的写法来自公开文档,集成前请务必用你自己的凭证发一次真实请求验证。

1. 接口总览

接口 接入点(文字占位) 说明 返回格式 编码 需要凭证 来源类型
易源 AI文本图片安全审核 · 文本审核 V3 易源网关 1755-5 接入点(需 appKey) 文本违规识别,识别色情/广告/灌水/涉政/辱骂等 JSON UTF-8 需 appKey 第三方 API 市场
易源 AI文本图片安全审核 · 图片审核 V2 易源网关 1755-4 接入点(需 appKey) 图片违规识别,识别色情/暴恐/涉政/不良场景等 JSON UTF-8 需 appKey 第三方 API 市场
百度内容审核 · 文本 / 图片 百度内容审核接入点(需 Access Token) 文本与图片多场景审核,返回合规/不合规/疑似 JSON UTF-8 需 API Key + Secret Key 云厂商
码道内容审核 API 码道内容审核接入点(需 Token) 文本审核,返回 pass/label/reason JSON UTF-8 需 Token 第三方 API
阿里云视觉智能 · 内容审核 阿里云内容审核接入点(需 AccessKey) 图片/视频/文本多模态审核 JSON UTF-8 需 AccessKey 云厂商
腾讯云内容安全 腾讯云内容安全接入点(需 SecretId/Key) 文本/图片/音视频多模态审核 JSON UTF-8 需密钥 云厂商
网易易盾 · 内容安全 易盾内容安全接入点(需密钥) 文本/图片/音视频内容安全 JSON UTF-8 需密钥 第三方
Azure AI 内容安全 Azure 内容安全接入点(需 Key) 文本/图像多类别审核 JSON UTF-8 需 Key 云厂商

易源相关接口需自备 appKey(在控制台获取),本文仅按官方文档整理接入写法,未返回真实业务数据。

2. 易源 AI文本图片安全审核 · 文本审核 V3

一句话定位:一个文本审核接入点,识别文本中的色情、广告、灌水、涉政、辱骂、暴恐、违禁等风险,返回每个命中分类的置信度与处置建议。

请求示例

python 复制代码
import requests

BASE = "你的接口网关地址"      # 易源网关地址,在控制台获取
APP_KEY = "YOUR_APPKEY"        # 你的 appKey

text = "需要检测的内容"         # 不超过 10000 字节,约 3333 个汉字

resp = requests.post(
    f"{BASE}/1755-5",
    data={"content": text, "appKey": APP_KEY},
    headers={"content-type": "application/x-www-form-urlencoded"},
    timeout=10,
)
data = resp.json()
# 业务数据都位于 data["showapi_res_body"]
body = data["showapi_res_body"]
print("处置建议:", body["sug"])
print("命中分类:", body["result"])

返回示例(结构来自官方文档,非真实业务数据)

json 复制代码
{
  "showapi_res_error": "",
  "showapi_fee_num": 0,
  "showapi_res_code": 0,
  "showapi_res_id": "6883188cfb638c9c739ab95d",
  "showapi_res_body": {
    "result": [
      {
        "confidence_level": 90.39,
        "label": "porn"
      }
    ],
    "ret_code": 0,
    "remark": "调用成功",
    "sug": "block"
  }
}

字段说明

  • result[].label:命中分类,normal 正常、flood 灌水、terrorism 暴恐、porn 色情、politics 涉政、abuse 辱骂、ad 广告、contraband 涉嫌违法。
  • result[].confidence_level:该分类的置信度,范围 0.00--100.00,越高越可能属于该分类。
  • result[].words:违禁词,仅违规且成功提取时才存在。
  • sug:处置建议,pass 正常、review 需人工审核、block 违规可直接拦截。
  • ret_code:业务码,0 成功,其余为文件下载/解析/OCR/参数/超时等错误。

注意事项

  • 内容上限 10000 字节(约 3333 汉字),超长需自行分段。
  • 同一返回里可能命中多个分类,建议按最高置信度或业务优先级取处置动作。

3. 易源 AI文本图片安全审核 · 图片审核 V2

一句话定位:一个图片审核接入点,识别图片中的色情、暴恐、涉政、不良场景等风险,支持图片 URL 或 Base64 两种传入方式。

请求示例

python 复制代码
import requests, base64

BASE = "你的接口网关地址"
APP_KEY = "YOUR_APPKEY"

# 方式一:传入图片 URL
resp = requests.post(
    f"{BASE}/1755-4",
    data={"img_url": "你的图片地址", "appKey": APP_KEY},
    timeout=10,
)
body = resp.json()["showapi_res_body"]
print("处置建议:", body["sug"], "命中:", body["results"])

# 方式二:传入图片 Base64
with open("sample.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()
resp = requests.post(
    f"{BASE}/1755-4",
    data={"img_base64": b64, "appKey": APP_KEY},
    timeout=10,
)

返回示例(结构来自官方文档,非真实业务数据)

json 复制代码
{
  "showapi_res_body": {
    "ret_code": 0,
    "results": [
      {
        "confidence_level": 95.12,
        "label": "porn"
      }
    ],
    "sug": "block",
    "confidence_level": 95.12
  }
}

字段说明

  • results[].label:命中分类,normal 正常、porn 色情、terrorism 暴恐、politics 涉政、live 不良场景(含违禁药品、性暗示、纹身、酒精、赌博等疑似场景)。
  • results[].confidence_level:该分类的置信度。
  • sug:处置建议,pass / review / block

注意事项

  • 图片要求:大小小于 4MB,短边像素大于 256,支持 PNG、JPG、JPEG、BMP。
  • img_urlimg_base64 二选一,不要同时传。

4. 百度内容审核(文本 / 图片)

一句话定位:云厂商提供的内容审核能力,文本与图片为独立接入点,返回"合规 / 不合规 / 疑似"三级结论,适合需要多场景覆盖、对稳定性要求较高的业务。

鉴权说明

百度内容审核接口使用 Access Token 鉴权。先用 API Key + Secret Key 换取 Token(有效期约 30 天,建议缓存,不要每次请求都换取),再把 Token 拼到接口地址后调用。

请求示例

python 复制代码
import requests

BAIDU_BASE = "百度内容审核接口网关地址"
API_KEY = "YOUR_API_KEY"
SECRET_KEY = "YOUR_SECRET_KEY"
TEXT_EP = "/rest/2.0/solution/v1/text_censor/v2/user_defined"
IMG_EP = "/rest/2.0/solution/v1/img_censor/v2/user_defined"

# 1. 换取 Access Token
token_resp = requests.get(
    f"{BAIDU_BASE}/oauth/2.0/token",
    params={
        "grant_type": "client_credentials",
        "client_id": API_KEY,
        "client_secret": SECRET_KEY,
    },
)
access_token = token_resp.json()["access_token"]

# 2. 文本审核
resp = requests.post(
    f"{BAIDU_BASE}{TEXT_EP}?access_token={access_token}",
    data={"text": "需要检测的内容"},
    timeout=10,
)
data = resp.json()
print("结论类型:", data["conclusionType"], "明细:", data["data"]["result"])

返回示例(结构来自公开文档,非真实业务数据)

json 复制代码
{
  "code": 0,
  "msg": "success",
  "data": {
    "conclusionType": 2,
    "result": [
      {
        "hit": 1,
        "label": "porn",
        "keyword": "命中词",
        "phrase": "命中片段"
      }
    ]
  }
}

字段说明

  • conclusionType:1 合规、2 不合规、3 疑似。
  • data.result[].label:违规类型,如 pornpolitics 等。
  • data.result[].hit:是否命中,1 命中、0 未命中。
  • 图片审核同样返回 conclusionTyperesult[],可传入图片 URL 或 Base64。

注意事项

  • Token 必须缓存,频繁换取会触发限流。
  • 文本与图片是两条独立接入点,接入点路径不同,注意区分。

5. 码道内容审核 API

一句话定位:第三方内容审核接口,提交文本即可返回是否通过及风险标签,请求与返回结构都比较简洁,适合快速接入文本审核。

请求示例

python 复制代码
import requests

BASE = "码道内容审核接口网关地址"
TOKEN = "YOUR_TOKEN"

resp = requests.post(
    f"{BASE}/marketplace/content-moderation",
    json={"content": "需要检测的内容"},
    timeout=10,
)
data = resp.json()
print("是否通过:", data["result"]["pass"], "标签:", data["result"]["label"])

返回示例(结构来自公开文档,非真实业务数据)

json 复制代码
{
  "code": 200,
  "msg": "success",
  "result": {
    "pass": false,
    "label": "违规内容",
    "reason": "检测到不适合展示的文本"
  }
}

字段说明

  • code:状态码。
  • result.pass:是否通过审核。
  • result.label:内容风险标签。
  • result.reason:命中原因或审核说明。

注意事项

  • 该接口为第三方服务,需自备 Token,集成前请确认其服务可用性与条款。
  • 返回字段较精简,若需要更细的分类置信度,可结合其他源做补充判断。

6. 横向对比(事实对照)

维度 易源 文本 V3 / 图片 V2 百度内容审核 码道内容审核 云厂商(阿里/腾讯/易盾/Azure)
是否需 key 需 appKey 需 API Key + Secret Key + Token 需 Token 需各自密钥
文本审核 支持 支持 支持 支持
图片审核 支持 支持 未覆盖 支持(多数含音视频)
返回格式 JSON JSON JSON JSON
处置建议 pass / review / block 合规/不合规/疑似 pass + label 各平台自有体系
来源类型 第三方 API 市场 云厂商 第三方 API 云厂商 / 第三方

各有取舍,没有全能最优:易源把文本与图片拆成两个接入点、字段清晰;百度与云厂商覆盖模态更全、生态更完整但接入链路更长;码道结构最轻量、适合先做文本兜底。按你自己的成本、精度与覆盖需求选择即可。

7. 生产环境参考实现(多源降级)

下面把上面几个源作为对等节点串联:依次尝试,某个源网络异常或返回异常时切换到下一个,最后统一归一化成 {pass, label, suggest} 结构供业务使用。各源顺序由调用方决定。

python 复制代码
import requests

# 归一化结论
def _normalize(source, raw):
    # 这里按各源返回结构做字段映射,示例仅展示思路
    if source == "showapi_text":
        body = raw["showapi_res_body"]
        return {"pass": body["sug"] == "pass", "label": body["result"][0]["label"], "suggest": body["sug"]}
    if source == "baidu":
        ct = raw.get("conclusionType")
        return {"pass": ct == 1, "label": raw["data"]["result"][0]["label"], "suggest": ("block" if ct == 2 else "review" if ct == 3 else "pass")}
    if source == "mazdao":
        r = raw["result"]
        return {"pass": r["pass"], "label": r["label"], "suggest": ("pass" if r["pass"] else "block")}
    return {"pass": False, "label": "unknown", "suggest": "review"}

def audit_text(content):
    # 各源调用函数,失败抛异常即可进入下一源
    sources = [call_showapi_text, call_baidu_text, call_mazdao_text]
    last_err = None
    for fn in sources:
        try:
            raw = fn(content)
            return _normalize(fn.__name__, raw)
        except Exception as e:
            last_err = e
            continue
    # 所有源都失败:默认进入人工复审,不要直接放行
    return {"pass": False, "label": "audit_failed", "suggest": "review", "error": str(last_err)}

# 下面三个函数按第 2 / 4 / 5 节的写法实现,仅需替换为你自己的网关地址与凭证
def call_showapi_text(content):
    BASE, APP_KEY = "你的接口网关地址", "YOUR_APPKEY"
    r = requests.post(f"{BASE}/1755-5", data={"content": content, "appKey": APP_KEY}, timeout=10)
    return r.json()

def call_baidu_text(content):
    # 先取 Token,再调用文本接入点,详见第 4 节
    raise NotImplementedError("按第 4 节实现")

def call_mazdao_text(content):
    BASE, TOKEN = "码道内容审核接口网关地址", "YOUR_TOKEN"
    r = requests.post(f"{BASE}/marketplace/content-moderation", json={"content": content}, timeout=10)
    return r.json()

if __name__ == "__main__":
    print(audit_text("需要检测的内容"))

兜底原则:任何源超时或异常时,默认进入待审核/人工复审,不要直接放行高风险内容

8. 踩坑清单

  • 未处理超时导致主流程阻塞 :审核接口是外部依赖,必须设 timeout,并配合重试或降级,避免拖垮发帖/评论接口。
  • 异常时直接放行 :网络错误或返回异常时,不要默认 pass,应落入人工复审。
  • 忽略人工复审环节 :模型置信度低或落在 review 区间时,直接放行或拦截都不合适,进入复审队列更稳。
  • Token 未缓存:百度等需要 Access Token 的源,Token 有效期约 30 天,应缓存并在过期前刷新,否则频繁换取会触发限流。
  • 只靠敏感词库:关键词易被谐音、拆字、空格绕过,且无法理解上下文,建议以审核接口为核心、敏感词库作辅助。
  • 文本超长未分段:易源文本审核 V3 上限约 3333 汉字,超长内容需自行切分后合并结论。
  • 图片规格不符:图片过大、短边过小或格式不对会导致解析失败,调用前先校验。

9. 附录:补充说明

  • 阿里云视觉智能、腾讯云内容安全、网易易盾、Azure AI 内容安全等同样提供文本/图片(多数还含音视频)审核能力,返回结构各异,集成前请以各自官方文档为准,本文未逐一展开其完整请求写法。
  • 市面上还有不少个人或小团队维护的内容审核接口,多数需要自备 key 或写法不完整,接入前请自行验证稳定性与条款。
  • 无论选哪个源,都建议做"相同内容 hash 缓存 + 消息队列异步审核 + 失败兜底复审"的组合,降低调用成本与风险。

10. 常见问题 FAQ

问:本文里的接口都实测过吗? 答:没有。本文基于公开文档与文章整理,未对每个接口做真实请求实测,接口可用性以公开文档为准,集成前请自行验证。

问:内容审核接口一般能检测哪些风险类型? 答:常见包括色情、暴恐、涉政、广告、辱骂、灌水、违禁等,不同平台的标签体系与粒度不同,接入时以各自文档的 label 清单为准。

问:文本审核和图片审核为什么通常分开提供? 答:两者输入形态与底层模型不同,多数平台拆成独立接入点,参数与返回结构也不同,分开后也更便于按需计费与单独调优。

问:调用内容审核接口需要哪些凭证? 答:多数需要注册后获取的 key 或 token,例如易源的 appKey、百度的 API Key + Secret Key(再换 Token)、云厂商的 AccessKey 等,具体以各平台文档为准。

问:返回里的 sug / conclusionType 是什么意思? 答:通常表示处置建议:易源用 pass/review/block 表示通过/复审/拦截;百度用 conclusionType 表示合规(1)/不合规(2)/疑似(3);业务侧据此决定展示、拦截或转人工。

问:置信度低时应如何处理? 答:建议进入人工复审队列,而不是直接放行或拦截,避免误伤与漏判。

问:为什么不能只靠敏感词过滤? 答:关键词容易被谐音、拆字、空格、拼音绕过,且无法理解上下文语义,误伤和漏判都比较高,审核接口更适合作为核心能力。

问:高并发场景如何优化审核调用? 答:对相同内容做 hash 缓存避免重复审核;非实时场景用消息队列异步审核;区分同步(评论、聊天)与异步(长文、资料页)场景;设置失败兜底策略。

问:图片审核对图片有什么要求? 答:以易源图片审核 V2 为例,图片需小于 4MB、短边大于 256 像素,支持 PNG/JPG/JPEG/BMP,可用图片 URL 或 Base64 传入,二者二选一。

问:文本长度有限制吗? 答:以易源文本审核 V3 为例,内容上限 10000 字节(约 3333 个汉字),超限需自行分段后合并结论。

问:多个审核源应该怎么选型? 答:没有全能最优,按成本、精度、覆盖模态(文本/图片/音视频)与合规要求选择,必要时做多源降级,某一源异常时切到下一源。

问:集成时最常见的坑有哪些? 答:未设超时导致主流程阻塞、异常时直接放行、忽略人工复审、Token 未缓存频繁换取、文本超长未分段、图片规格不符等,详见第 8 节踩坑清单。

相关推荐
蒸鱼Yuzheng7 小时前
游戏拍照模式怎么测:暂停规则、相机边界、滤镜与隐私分享
内容安全·游戏测试·拍照模式·截图测试·分享功能
lupai5 天前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
万维易源7 天前
IP归属地查询接口整理与使用教程
免费api·api接口·编程开发·ip归属地·ip定位·ip查询·接口评测
InfiSight智睿视界7 天前
500+社区生鲜连锁的AI质检审核系统架构与应用实践
ai审核
dogstarhuang9 天前
Excel手动群发短信不可追踪?用API接口封装实现可监控触达
低代码·excel·api接口·私域运营·接口开发·短信营销·roi提升
万维易源17 天前
免费历史上的今天查询接口,查询指定日期历史事件
api接口·历史上的今天查询·api数据·历史上的今天查询接口
美人胖八分21 天前
RESTful、GraphQL 与 gRPC 接口设计规范及最佳实践
restful·graphql·设计规范·api接口
网易易盾1 个月前
AI互动产品安全合规体系架构:制度/技术/运营/证据四层落地
人工智能·安全·aigc·内容安全
蒸鱼Yuzheng1 个月前
游戏聊天与社交系统怎么测:消息状态、敏感内容、举报、屏蔽与未成年人保护
软件测试·内容安全·聊天系统·游戏测试·社交系统