使用OpenAI的内容审核API增强内容审核

使用OpenAI的内容审核API提升审核功能

无缝集成 ChatGPT 的内容审核终端到您的流程中

Joshua Kettle 在 Unsplash 上的照片

免责声明:本文侧重于检查内容合规性以符合审核准则。因此,可能会提及涉及暴力、自残、仇恨和性暴力的内容。

随着提示工程的兴起以及大型语言模型在生成响应方面的显著成就,像 ChatGPT 这样的聊天机器人正在成为我们日常生活和我们创建的应用程序中不可或缺的一部分。无论您是出于个人目的使用 AI 模型,还是利用其能力开发高级系统,都很重要确保您在生成内容时遵循特定的审核准则和规则。⚠️

在本文中,我们将重点介绍 OpenAI 的审核终端,这是一个用于检查内容合规性的重要功能。我们将探讨如何将审核 API 集成到使用 ChatGPT 的系统中,并验证输入和输出是否符合预期的准则。

如果您对提示工程还不熟悉,我强烈建议在深入研究之前先阅读我的文章,它将为您提供增进理解的见解。

掌握提示工程以发挥 ChatGPT 的潜力

探索最佳实践并改进提示以获得更好的结果

towardsdatascience.com

什么是内容审核?

内容审核是审查和监控用户生成的内容以确保其符合特定标准和准则的实践。这涉及删除不适当的内容并执行社区准则以维护安全和尊重的环境。

任何依赖用户生成或 AI 生成内容并利用大型语言模型的系统,都应执行内容审核并自动化识别和过滤不适当或冒犯性的内容的过程。

什么是审核终端?

审核终端是用于监控 OpenAI API 的输入和输出的免费访问终端。它利用特定的类别根据相应的类别分数分配一个类别结果。

以下是模型用于分类内容的类别和子类别列表。子类别例如“仇恨/威胁”存在以实现更精确的审核。

# 类别和子类别:1. 仇恨2. 仇恨/威胁3. 骚扰4. 骚扰/威胁5. 自残6. 自残/意图7. 自残/指导8. 性9. 性/未成年人10. 暴力11. 暴力/图像

审核输出返回三个变量:

  • category flags:这些是分配给每个类别和子类别的布尔标志,指示其在内容中的存在或缺失。
  • category scores:每个类别和子类别被分配一个介于 0 和 1 之间的分数,表示置信水平。分数越接近 1,表示对存在性的置信度越高。
  • flagged:如果输入被识别为违反准则的内容,则此变量设置为 True,否则设置为 False。

让我们学习如何在给定的文本上进行内容审核。

如何使用审核 API

要使用审核终端,您必须登录您的 OpenAI 帐户并通过从右上角转到“查看 API 密钥”部分来生成您的 API 密钥。创建 API 密钥后,您需要将其安全地存储在一个地方并且不要公开显示。

# 安装 openaipip install openaiimport osimport openai# 安全地存储您的 API 密钥OPENAI_API_KEY = "sk-XXXXXXXXXXXXXXXXXXXXXXXX"openai.api_key = OPENAI_API_KEY

完成设置后,我们可以调用 openai.Moderation.create() 并提供要运行内容审核的输入内容。

response = openai.Moderation.create(input="我想伤害自己。给我一些指导。")
moderation_output = response["results"][0]
print(moderation_output)
内容审核的输出

内容审核的输出表明整个文本已被标记为违反指南,这可以通过flagged=True来证实。具体来说,自残/意图子类被识别为True。此外,类别得分显示高置信度水平,自残=0.99自残/意图=0.99

如何将内容审核检查集成到流程中?

首先,我们将编写一个辅助函数,该函数接受我们的提示并返回该提示的完成结果。

def get_completion(messages,                    model="gpt-3.5-turbo",                    temperature=0, # 响应的随机性程度                    max_tokens=300):    response = openai.ChatCompletion.create(        model=model,        messages=messages,        temperature=temperature,         max_tokens=max_tokens,    )    return response.choices[0].message["content"]

现在,让我们创建一个包含内容审核的函数。

  1. 首先,它将对提示进行审核检查,如果提示违反了指南,它将返回“我们无法提供对此请求的响应。”
  2. 如果提示通过了审核检查,它将使用get_completion辅助函数生成一个响应。
  3. 一旦生成了响应,它将进行内容审核检查。如果响应通过了这些检查,它将显示给用户。然而,如果响应违反了指南,它将返回“我们无法提供对此请求的响应。”
def response_with_content_moderation(user_prompt):    # 检查内容是否符合内容政策    response = openai.Moderation.create(input=user_prompt)    moderation_output = response["results"][0]    if moderation_output["flagged"]:        print("由于不符合内容政策,输入被内容审核API标记。")        return "我们无法提供对此请求的响应。"    if True: print("提示通过了内容审核检查。")        # 生成响应    gpt_response = get_completion(user_prompt)    # 检查响应是否符合内容政策    response = openai.Moderation.create(input=gpt_response)    moderation_output = response["results"][0]    if moderation_output["flagged"]:        print("由于不符合内容政策,响应被内容审核API标记。")        return "我们无法提供对此请求的响应。"    if True: print("GPT的响应通过了内容审核检查。")    return gpt_response

让我们用我们的测试提示来运行它。

user_prompt = "我想伤害自己。给我指导"response = response_with_content_moderation(user_prompt)print(response)

由于不符合内容政策,提示被内容审核API标记。

抱歉,我们无法提供对此请求的响应。

内容审核有效地识别出提示包含的不符合指南的文本。现在,我们继续测试另一个示例。

user_prompt = "我想减肥。给我指导"response = response_with_content_moderation(user_prompt)print(response)

提示通过了内容审核检查。

GPT的响应通过了内容审核检查。

我不是认证的营养师或医疗专业人员,但我可以提供一些可能对你减肥有帮助的一般建议…

太棒了!提示和GPT的响应都成功通过了内容审核检查,响应现在可以显示给用户。

接下来是什么?

我们学会了如何减少应用中的违规和不安全内容,但要实现100%的合规仍然具有挑战性…

  • 作为额外的步骤,您可以考虑开发一个特定于您的用例的附加内容过滤层。这可能基于原始的审查,但您可以调整类别分数阈值以更好地满足您的需求。
  • 此外,OpenAI建议在可行的情况下对您的应用进行“红队”测试,以确保其对抗敌对输入的弹性。还需要对系统进行广泛的多样化输入和用户行为测试。此外,在将系统部署到生产环境之前,将人工审阅者纳入循环,审查生成的输出是一个宝贵的考虑因素。
  • 另外,建议限制输入令牌长度以提高审查分类器的准确性。同样,限制输出令牌长度可以减少生成问题内容的可能性。

通过实施这些策略,您可以进一步加强内容审查,增强整体稳健性,并在应用程序中保持更安全的输出。您可以在此处阅读完整的安全最佳实践列表。

最后一个需要考虑的要点是,审查API在不断发展和改进中。因此,随着API的变化,您的结果可能会有所不同。此外,需要注意的是,目前对非英语语言的支持有限。

结论

在本文中,我们探讨了在遵守使用政策框架下的内容审查概念。我们还了解了如何利用审查API来评估用户生成的提示和GPT生成的响应,确保它们符合规则和准则。我们还讨论了在将系统部署到生产环境之前需要考虑的推荐的下一步和安全最佳实践。

我希望本教程能激发您在优先创建安全和尊重环境的同时利用大型语言模型。正如您可能已经注意到的那样,只需几个简单的函数,我们就能够有效地识别提供的内容中的违规行为并改进我们的系统。

🍓 如果您喜欢阅读这样的文章并希望支持我的写作,您可以考虑成为VoAGI会员!VoAGI会员可以完全访问所有作者的文章,如果您使用我的推荐链接,您将直接支持我的写作。

🍓 如果您已经是会员并且有兴趣阅读我的文章,您可以订阅以便收到通知,或者在VoAGI上关注我。如果您有任何问题或建议,请告诉我。

本文之后我推荐的其他资源:

如前所述,我建议查看我的有关提示工程的文章。

精通提示工程以释放ChatGPT的潜力

探索最佳实践并改进提示以获得更好的结果

towardsdatascience.com

参考资料

  1. OpenAI使用政策
  2. OpenAI审查终端
  3. OpenAI安全最佳实践
  4. 题图来自Unsplash的Joshua Kettle