Skip to main content

Screen a Prompt

发送文本、图像或两者,并获取判定结果。

Get Moderation Usage

查看您的计费筛查次数和下一笔费用。

概览

Moderation API 会在您的 AI 产品根据用户输入生成内容之前,对用户输入进行筛查。您可以发送提示词文本、图像或两者,Dodo Payments 会返回 allow、flag 或 deny 判定,以及每个内容类别的分数。 您可以将其用于任何接受用户输入的图像、视频或文本生成模型之前。默认情况下,Moderation API 对每个商户启用,并使用您现有的 Dodo Payments API 密钥,因此无需注册。Dodo Payments 可以针对单个商户将其关闭,此时调用会返回 403 和 MODERATION_DISABLED。

我们构建 Moderation API 的原因

AI 生成产品会根据用户输入的任何内容创建新内容。您不可能手动审核每条提示词,而一次有害的输出就可能让您的业务面临风险。 作为您的 Merchant of Record,Dodo Payments 对通过平台销售的内容承担法律和声誉责任。Merchant Acceptance Policy 会审核 AI 内容生成工具,不允许冒充、深度伪造或露骨内容,包括 AI 生成的内容。生成有害内容、导致大量拒付或被支付合作伙伴标记的账户,可能会被置于审核状态或暂停。 我们构建 Moderation API,帮助您在模型创建此类内容之前将其拦截:
  • 在生成之前进行筛查。 被拦截的提示词永远不会到达您的模型,因此不会产生有害输出,也不会为其消耗计算资源。
  • 覆盖生成场景中重要的类别。 筛查会对 17 个类别评分,包括真人相似度、未经同意的私密图像、暗示未成年人的语言,以及真人与色情内容的组合(这会构成色情深度伪造)。
  • 无需接入其他供应商。 API 使用您的 Dodo Payments API 密钥运行,费用从您的余额中扣除。无需单独签订合同、开具发票或创建账户。
  • 保护用户内容隐私。 Dodo Payments 不会存储或记录您筛查的文本和图像。
Moderation API 是供您自行执行政策的工具。它不能替代 Merchant Acceptance Policy,您仍需对产品生成的内容负责。

工作原理

用户提交提示词后、模型运行前,从您的后端调用 Moderation API: 每次调用算作一次筛查。在同一次调用中发送的文本和图像算作一次筛查。

判定结果

decision 字段包含判定结果:
未收到判定结果时不要生成内容。503 表示 Dodo Payments 无法生成判定结果,超时或网络错误也会导致您没有判定结果。将所有这些情况视为拦截,并要求用户重试。

筛查提示词

要筛查提示词,请向 /moderation/screen 发送 POST 请求,并至少提供 text 或 image 之一。请求接受三个字段: TypeScript 和 Python SDK 将该端点公开为 client.moderation.screen()。此示例会在 deny、flag 以及任何错误情况下拦截生成:
示例调用实时模式,因为只有实时模式会运行审核模型。测试模式返回模拟判定结果,不会筛查内容。实时模式的筛查会计费。
示例将 flag 与 deny 同样处理。如果您的产品允许某些被标记的内容,请检查 triggered,按类别作出决定。
筛查用户编写的文本,而不是您在其外层包装的提示词模板。您自己的模板在每次调用中都相同,不会为筛查增加任何信息。

筛查图像

发送图像以筛查用户上传的参考图像,或在展示生成的图像之前进行筛查。图像必须满足以下要求:
  • 格式为 JPEG、PNG、WebP、GIF 或 BMP。
  • base64 字符串最多 6,991,530 个字符,解码后的图像最多 5 MiB。
  • 图像必须是单个静态帧。动画 GIF 和 WebP 图像会被拒绝。
  • 最长边至少为 32 像素。
不符合上述任一检查的图像会返回 400 和 MODERATION_INVALID_IMAGE;图像过大时会返回 413 和 MODERATION_INPUT_TOO_LARGE。 要筛查图像,请读取文件,将其编码为 base64,然后在 image 中发送。要同时筛查图像及其提示词,请在同一次调用中发送 text 和 image。这算作一次筛查。此示例使用上一个示例中的 client:
以处理文本筛查的方式处理图像筛查错误:如果调用抛出错误,请不要生成内容。

读取响应

响应会返回判定结果及其依据: 请基于 decision 和 triggered 编写逻辑。每个类别都有自己的阈值,因此在代码中使用单一分数阈值不会与判定结果匹配。

类别

每个响应都会根据 17 个类别对内容评分:

处理错误

错误会返回标准的 Dodo Payments 错误正文,其中包含 code 和 message。任何错误都不是判定结果,因此都不允许生成内容: SDK 默认会对 429 或 503 重试两次,并在尝试之间等待 Retry-After。重试次数耗尽后,SDK 会抛出错误,您的代码必须拦截请求。

测试集成

测试模式会返回模拟判定结果,且不会调用审核模型,因此您可以免费测试路由逻辑。使用测试模式 API 密钥向 https://test.dodopayments.com 发送请求。 默认模拟判定结果为 allow。要获取其他结果,请将以下字符串之一放在 text 的任意位置: 模拟判定结果会附带说明,表明该结果为模拟结果,且其所有类别分数均为 0。测试模式执行与实时模式相同的请求验证。对于图像,它会检查 base64 编码和格式,但不会检查帧数或尺寸。 上线前,请确认您的集成能够处理每种情况:
1

Deny Blocks Generation

发送 dodo_mock_deny,并确认不会调用您的模型。
2

Flag Follows Your Policy

发送 dodo_mock_flag,并确认您的产品执行方式符合您的政策。
3

Overload Retries

发送 dodo_mock_overloaded,并确认您的代码会等待 Retry-After,且在没有判定结果时不会生成内容。
4

An Outage Blocks Generation

发送 dodo_mock_not_ready,并确认不会调用您的模型。
5

Every Generation Path Screens

检查所有到达您模型的代码路径是否都会先调用 Moderation API。

定价和计费

Moderation API 的费用为每 1,000 次可计费筛查 0.30 美元。没有免费层级,也没有最低消费。 可计费筛查是返回判定结果的实时模式筛查。以下筛查免费且不计入费用:
  • 测试模式中的筛查。
  • 返回错误的筛查,包括 429 和 503。
Dodo Payments 按每 1,000 次筛查的完整区块计费。每个完整区块会在一小时内计费,未填满区块的筛查会一直保持未计费状态,直到区块填满。费用从您的 USD 余额中扣除,并以事件类型 moderation_fees 显示在您的余额账本中。Payouts 会将其显示在 Moderation Fees 下。

跟踪用量

要查看用量,请调用 GET /moderation/usage。响应会返回:
测试模式不会记录筛查次数,因此用量端点不会返回测试模式活动。

访问权限和隐私

筛查需要具有写入权限的 API 密钥。任何 API 密钥(包括只读密钥)都可以读取用量。请参阅身份验证,了解如何创建密钥并设置其访问级别。 Dodo Payments 不会存储您筛查的文本或图像,也不会将其写入日志。对于每次实时模式筛查,Dodo Payments 会保留时间、判定结果以及您提供的 request_id,用于计费和用量报告。

Usage-Based Billing

向您自己的客户收取每次生成的费用。

Credit-Based Billing

销售生成额度,并按使用次数扣除。
最后修改于 2026年9月26日