安全最佳实践

实施安全措施,例如审核和人工监督。

使用我们的免费审核 API

OpenAI 的 Moderation API 可以免费使用,可以帮助降低补全中不安全内容的频率。或者,您可能希望根据您的使用案例开发自己的内容过滤系统。

对抗性测试

我们建议对应用程序进行“红队”操作,以确保它对对抗性输入具有鲁棒性。在各种输入和用户行为上测试您的产品,包括一组代表性内容和反映有人试图“破坏”您的应用程序的行为。它是否偏离了主题?有人可以通过提示注入轻松重定向功能吗,例如“忽略前面的说明并改为执行此操作”?

人机协同 (HITL)

我们建议在实际使用之前,尽可能先进行人工审核。这在高风险领域和代码生成中尤其重要。人类应该了解系统的局限性,并可以访问验证输出所需的任何信息(例如,如果应用程序总结了注释,人类应该可以轻松访问原始注释以供参考)。

快速工程

“提示工程” 可以帮助限制输出文本的主题和语气。这降低了生成不需要的内容的可能性,即使用户尝试生成它也是如此。为模型提供额外的上下文(例如,在新输入之前提供一些所需行为的高质量示例)可以更轻松地将模型输出引导到所需的方向。

“了解您的客户” (KYC)

用户通常需要注册并登录才能访问您的服务。将此服务链接到现有帐户(例如 Gmail、LinkedIn 或 Facebook 登录)可能会有所帮助,但可能并不适合所有用例。要求提供信用卡或 ID 卡可进一步降低风险。

限制用户输入和限制输出令牌

限制用户可以在提示中输入的文本量有助于避免提示注入。限制输出令牌的数量有助于减少滥用的可能性。

缩小输入或输出的范围,尤其是从可信来源提取的输入或输出,可以减少应用程序内可能的误用程度。

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

在可能的情况下,从后端一组经过验证的材料返回输出可能比返回新颖生成的内容更安全(例如,将客户查询路由到最匹配的现有客户支持文章,而不是尝试从头开始回答查询)。

允许用户报告问题

用户通常应该有一种易于获得的方法来报告功能不当或有关应用程序行为的其他问题(列出的电子邮件地址、票证提交方法等)。这种方法应该由人工监测并酌情做出反应。

了解和传达限制

从产生不准确信息的幻觉,到冒犯性输出,再到偏见等等,如果不进行重大修改,语言模型可能并不适合每个用例。考虑模型是否适合您的目的,并评估 API 在各种潜在输入上的性能,以确定 API 性能可能会下降的情况。考虑您的客户群和他们将使用的输入范围,并确保他们的期望得到适当校准。

安全和保障对我们 OpenAI 来说非常重要。

如果您在开发过程中发现 API 或与 OpenAI 相关的任何其他问题存在任何安全或安保问题,请通过我们的协调漏洞披露计划提交这些问题。

最终用户 ID

在您的请求中发送最终用户 ID 可能是帮助 OpenAI 监控和检测滥用行为的有用工具。这使 OpenAI 能够在我们在您的应用程序中检测到任何策略违规时为您的团队提供更可行的反馈。

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

您可以通过以下参数在 API 请求中包含最终用户 ID:user

示例:提供用户标识符
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,
  user="user_123456"
)