入门文档(docs)
指南(Guides)
安全最佳实践(Safety Best Practices)

最佳安全策略 Safety best practices

免费使用模型API Use our free Moderation API

OpenAI的Moderation API是免费使用的,可以帮助减少您的完成中不安全内容的频率。或者,您可能希望开发您自己的内容过滤系统,以适应您的使用情况。

预防注入Adversarial testing

我们建议针对对手输入进行“红组演练”,以确保您的应用程序具有抵御敌对输入的坚韧性。测试您的产品在广泛的输入和用户行为范围内,既包括代表性的设置,也包括那些反映出试图“破坏”您的应用程序的人的行为。它是否离题?是否可以通过提示注入轻松地重定向功能,例如“忽略先前的说明,转而执行此操作”?

人类审核 Human in the loop (HITL)

在实践中使用输出之前,我们建议尽可能让人类进行审核。这对于高风险领域和代码生成特别重要。人类应该了解系统的局限性,并可以访问任何需要验证输出的信息(例如,如果应用程序总结笔记,则人类应该可以轻松地访问原始笔记以进行参考)。

提示工程 Prompt engineering

“提示工程”可以帮助限制输出文本的主题和语气。即使用户试图制造不希望的内容,也可以降低产生此类内容的机会。向模型提供额外的上下文(例如在新输入之前提供一些高质量的期望行为示例)可以使其更容易将模型输出导向所需的方向。

用户验证 “Know your customer” (KYC)

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

限制用户输入 Constrain user input and limit output tokens

限制用户在提示框中输入的文本数量有助于避免提示注入。限制输出令牌的数量有助于降低误用的可能性。

缩小输入或输出范围,特别是从受信任的来源获取,可以减少应用程序内可能出现的误用程度。

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

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

报告应用程序行为不当或其他问题 Allow users to report issues

用户一般应该有一个方便的方式来报告应用程序行为不当或其他问题(列出电子邮件地址、提交工单等)。这种方法应该由人员监视,并根据情况作出回应。

考虑您的客户群体以及他们将使用的输入范围 Understand and communicate limitations

从出现不准确信息、冒犯性输出、偏见,等等,语言模型可能无法适用于每个用例,除非进行显著的修改。考虑模型是否适合您的目的,并在广泛的潜在输入范围上评估API的性能,以确定API性能可能下降的情况。考虑您的客户群体以及他们将使用的输入范围,并确保他们的期望值适当。

在OpenAI,安全和保护非常重要。

如果在开发过程中您注意到 API 或 OpenAI 相关内容存在任何安全问题或者安全威胁,请通过我们的协调漏洞披露计划 (opens in a new tab)进行反馈。

End-user IDs

在请求中发送最终用户 ID 可以帮助 OpenAI 监视和检测滥用行为。这能够使 OpenAI 能够对您的应用程序存在的任何政策违规行为进行更加实用的反馈。

这些 ID 应该是能够唯一标识每个用户的字符串。我们建议哈希他们的用户名或电子邮件地址,以避免向我们发送任何身份识别信息。如果您向未登录的用户提供产品预览,则可以发送会话 ID。

您可以通过以下方式在API请求中使用user参数包括终端用户ID:

示例:提供用户标识符 python选择 python curl 复制

response = openai.Completion.create(
 model="text-davinci-003",
 prompt="This is a test",
 max_tokens=5,
 user="user123456"
)