有关 OpenAI 采取的安全防护措施,请参阅安全分类器、网络安全检查和对齐偏差监测。如果您的应用面向未成年人提供服务,还请遵循面向未满 18 岁用户的指南。
使用我们免费的内容审核 API
OpenAI 的内容审核 API可免费使用,有助于减少生成结果中出现不安全内容的频率。您也可以根据自己的使用场景,开发专用的内容过滤系统。
如果您的应用使用 Responses API 或 Chat Completions 生成文本, 您还可以在生成请求中 请求内容审核评分。
对抗性测试
我们建议对您的应用进行“红队测试”,确保它能够稳健应对对抗性输入。测试应覆盖多种输入和用户行为,既包括有代表性的常规情况,也包括有人试图“破坏”应用时可能采取的做法。应用会偏离主题吗?有人能否通过提示注入,例如“忽略之前的指令,改为执行以下操作”,轻易改变该功能的行为?
人工参与(HITL)
我们建议尽可能在实际使用输出之前,由人工进行审查。这在高风险领域和代码生成场景中尤为关键。审查人员应了解系统的局限性,并能获取验证输出所需的所有信息。例如,如果应用用于总结笔记,审查人员应能方便地查阅原始笔记。
提示工程
“提示工程”有助于约束输出文本的主题和语气。即使用户试图诱导模型生成不符合预期的内容,这也能降低此类内容出现的概率。为模型提供更多上下文,例如在新输入之前给出几个高质量的预期行为示例,可以更容易地引导模型按预期方向输出。
“了解您的客户”(KYC)
通常应要求用户注册并登录后才能访问您的服务。将服务与现有账户关联,例如通过 Gmail、LinkedIn 或 Facebook 账户登录,可能会有所帮助,但并非适用于所有使用场景。要求提供信用卡或身份证件可以进一步降低风险。
约束用户输入并限制输出 Token 数量
限制用户可在提示中输入的文本量,有助于避免提示注入。限制输出 Token 的数量,有助于降低滥用的可能性。
缩小输入或输出的范围,尤其是将其限定为来自可信来源的内容,可以减少应用被滥用的空间。
让用户通过经过验证的下拉字段进行输入,例如从维基百科的电影列表中选择,可能比允许自由输入文本更安全。
在可行的情况下,从后端经过验证的资料集中选取内容作为输出,可能比返回新生成的内容更安全。例如,根据客户的问题,将其引导至最匹配的现有客户支持文章,而不是尝试从头生成回答。
允许用户报告问题
通常应为用户提供便捷的渠道,用于报告功能异常或对应用行为的其他疑虑,例如公开的电子邮件地址、工单提交入口等。应由人工关注这些渠道,并酌情回应。
了解并说明局限性
语言模型可能因幻觉而生成不准确的信息,也可能输出冒犯性内容、表现出偏见或出现其他问题,因此未经大幅调整的模型未必适合所有使用场景。请考虑模型是否适合您的用途,并使用各种可能的输入评估 API 的表现,以识别其表现可能下降的情况。请结合您的客户群体及其可能使用的输入范围,确保他们对模型有合理的预期。
OpenAI 非常重视安全与防护。
如果您在使用 API 开发时,或在其他与 OpenAI 相关的场景中发现任何安全或防护问题,请通过我们的协调漏洞披露计划提交。
使用安全标识符
在请求中发送安全标识符,有助于 OpenAI 监测和发现滥用行为。这样,当我们在您的应用中检测到任何违反政策的行为时,就能向您的团队提供更便于采取行动的反馈。
安全标识符还可以帮助您的团队更快地应对滥用行为。它们提供了一种稳定的方式,将活动追溯到具体的最终用户,并降低因单个用户的滥用而影响组织内其他用户访问的可能性。
安全标识符应是能够唯一标识每个用户的字符串。请对用户名或电子邮件地址进行哈希处理,以避免向我们发送任何可识别身份的信息。如果您向未登录用户提供产品预览,可以改为发送会话 ID。
对于让个人用户与模型交互的产品,
我们建议使用安全标识符,但这并非强制要求。请通过 safety_identifier 参数
在 API 请求中加入安全标识符:
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.chat.completions.create({
model: "gpt-6-astra",
messages: [{ role: "user", content: "This is a test" }],
max_completion_tokens: 5,
safety_identifier: "user_123456",
});
console.log(response.choices[0].message.content);对于 Realtime API 请求,请通过 OpenAI-Safety-Identifier 请求头
提供同一个稳定且保护隐私的标识符。创建临时 Realtime 客户端密钥时,
请在用于创建该密钥的服务端请求中加入此请求头,
以便将标识符绑定到该会话。对于从可信后端
直接发起的 WebSocket 或 WebRTC 连接请求,
请在连接请求中加入此请求头。
安全标识符不会在不同 API 或会话之间自动沿用。
如果您的应用已在 Responses API 请求中发送 safety_identifier,
请在创建或连接每个 Realtime 会话时,
分别传入同一个稳定值。
撤销安全性受损的 API 密钥
如果您认为某个 API 密钥已泄露、被滥用或存在其他安全问题, 请及时撤销该密钥,并替换为新密钥。前往安全 设置,查看所有 API 密钥, 并撤销任何安全性受损的密钥。
CSAM 指南
OpenAI 与 NCMEC、Thorn 等儿童安全专家合作, 为开发者提供保护儿童的实用指导。阅读 CSAM 指南。