English
主导航

旧版 API

安全最佳实践

实施审核和人工监督等安全措施。

使用免费的审核 API

OpenAI 的 审核 API 可免费使用,有助于减少补全内容中出现不安全内容的频率。或者,您也可以根据自己的用例开发量身定制的内容过滤系统。

对抗性测试

我们建议对您的应用进行“红蓝对抗”(red-teaming)测试,以确保其具备对抗对抗性输入的鲁棒性。请在广泛的输入和用户行为范围内测试您的产品,既包括代表性样本,也包括那些试图“破坏”您应用的行为。它是否会跑题?是否有人可以通过提示注入(例如“忽略之前的指令,改为执行此操作”)轻松重定向功能?

人工参与

只要有可能,我们建议在实际使用输出结果之前先由人工进行审查。这一点在高风险领域和代码生成中尤为关键。相关人员应了解系统的局限性,并获取验证输出所需的任何信息(例如,如果应用用于总结笔记,相关人员应能轻松访问原始笔记以供参考)。

提示工程

“提示工程”有助于限制输出文本的主题和语气。这能降低生成有害内容的几率,即使用户试图生成此类内容也能有效防范。为模型提供额外的上下文(例如,在输入新内容前提供几个符合预期行为的高质量示例),可以更容易地引导模型输出朝向预期的方向。

“了解你的客户” (KYC)

用户通常需要注册并登录才能访问您的服务。将此服务与现有账户(如 Gmail、LinkedIn 或 Facebook 登录)绑定可能会有所帮助,但可能并不适用于所有用例。要求提供信用卡或身份证件可进一步降低风险。

限制用户输入并限制输出 token 数量

限制用户可输入到提示中的文本数量有助于防止提示注入。限制输出 token 的数量有助于降低滥用的风险。

缩小输入或输出的范围(特别是源自受信任来源的范围),可以减少应用中可能发生的滥用程度。

通过经过验证的下拉字段(例如 Wikipedia 上的电影列表)允许用户输入,比允许开放式文本输入更安全。

只要可能,从后端经过验证的材料集合中返回输出,会比返回全新生成的内容更安全(例如,将客户查询路由到最匹配的现有客户支持文章,而不是试图从头开始回答查询)。

允许用户报告问题

用户通常应拥有便捷的渠道来报告应用程序运行不当或与行为相关的其他问题(例如列出电子邮件地址、提交工单等)。此方法应有人工监控,并进行妥善回复。

了解并沟通局限性

从生成不准确的信息,到具有攻击性的输出,再到偏见等等,如果不进行大幅调整,语言模型可能并不适合所有用例。请评估该模型是否符合您的目的,并在各种潜在输入下对 API 的表现进行广泛测试,以找出 API 表现可能下降的情况。请考虑您的客户群及其将使用的输入范围,并确保为他们设定适当的预期。

OpenAI 非常重视安全与保障.

如果您在使用 API 进行开发时发现任何安全或保障问题,或发现任何与 OpenAI 相关的其他问题,请通过我们的 协调漏洞披露计划.

提交。

在请求中发送安全标识符有助于 OpenAI 监控和检测滥用行为。这使 OpenAI 能够在检测到您的应用存在任何违反政策的行为时,为您的团队提供更具可操作性的反馈。

安全标识符还可以帮助您的团队更快地应对滥用行为。它们提供了一种稳定的方式,可将活动追溯到特定的最终用户,并降低单个用户的滥用行为导致您所在更广泛组织访问权限受限的风险。

安全标识符应是唯一标识每个用户的字符串。请对用户名或电子邮件地址进行哈希处理,以避免向我们发送任何身份识别信息。如果您向未登录的用户提供产品预览,则可以改为发送会话 ID。

对于单个用户与模型交互的产品,建议使用安全标识符,但这并非强制要求。请在您的 API 请求中加入安全标识符,使用 safety_identifier parameter:

示例:提供安全标识符
1
2
3
4
5
6
7
8
9
10
11
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "This is a test"}
],
max_tokens=5,
safety_identifier="user_123456"
)

对于 Realtime API 请求,请使用 OpenAI-Safety-Identifier 标头提供相同的稳定且保护隐私的标识符。创建临时的 Realtime 客户端密钥时,请在创建该密钥的服务器端请求中包含此标头,以便将标识符绑定到该会话。对于从受信任的后端发起的直接 WebSocket 或 WebRTC 连接请求,请在连接请求中包含该标头。

安全标识符不会在 API 或会话之间共享。如果您的应用程序已随 Responses API 请求发送 safety_identifier ,请在创建或连接每个 Realtime 会话时单独传递相同的稳定值。

撤销受损的 API 密钥

如果您认为 API 密钥已被泄露、滥用或以其他方式受到损害,请立即将其撤销并替换为新密钥。请前往您的 安全设置 查看所有 API 密钥并撤销任何受损的密钥。