OpenAI API 安全最佳实践

2023-03-20 13:35 更新

使用我们的免费审核 API(Moderation API)

OpenAI 的 Moderation API 是免费使用的,可以帮助减少不安全内容在您的补全中出现的频率。或者,您可能希望开发适合您的用例的内容过滤系统。

对抗性测试

我们建议对你的应用程序进行 "红队 "测试,以确保它对对抗性输入的稳健性。在广泛的输入和用户行为中测试你的产品,既要有代表性的集合,也要反映出有人试图 "破坏 "你的应用程序。它是否游离于主题之外?有人能很容易地通过提示注入重定向功能,例如 "忽略之前的指示,改做这个"?

Human in the loop (HITL) 人工审查

只要有可能,我们建议在实际使用之前对输出进行人工审查。这在高风险领域和代码生成中尤为重要。人们应该意识到系统的局限性,并且可以访问验证输出所需的任何信息(例如,如果应用程序总结了笔记,人们应该可以轻松访问原始笔记以供参考)。

提示工程

“提示工程”可以帮助约束输出文本的主题和语气。这减少了产生不需要的内容的机会,即使用户试图产生它。为模型提供额外的上下文(例如通过在新输入之前给出一些所需行为的高质量示例)可以更容易地将模型输出引导到所需的方向。

“了解你的客户”(KYC)

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

约束用户输入并限制输出令牌

限制用户可以输入到提示中的文本量有助于避免提示注入。限制输出令牌的数量有助于减少误用的机会。

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

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

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

允许用户报告问题

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

了解并传达限制

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

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

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

终端用户 ID

在您的请求中发送终端用户ID,可以成为帮助OpenAI监控和检测滥用的有用工具。这使得OpenAI能够在我们检测到您的应用程序中存在任何违反政策的行为时,向您的团队提供更多可操作的反馈。

ID应该是一个字符串,可以唯一地识别每个用户。我们建议对他们的用户名或电子邮件地址进行散列,以避免向我们发送任何识别信息。如果你向未登录的用户提供你的产品预览,你可以发送一个会话ID代替。

你可以通过用户参数在你的API请求中包括最终用户ID,如下所示。

 python curl 
response = openai.Completion.create(
  model="text-davinci-003",
  prompt="This is a test",
  max_tokens=5,
  user="user123456"
)
curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
  "model": "text-davinci-003",
  "prompt": "This is a test",
  "max_tokens": 5,
  "user": "user123456"
}'


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号