跳到内容

OpenAI 审核

本示例使用 OpenAI 的审核端点来检查内容是否符合 OpenAI 的使用政策。它可以识别并过滤违反政策的有害内容。

该模型会标记内容并将其分类到仇恨、骚扰、自残、性内容和暴力等类别中。每个类别都有子类别用于详细分类。

该验证器用于监控 OpenAI API 的输入和输出,目前不允许其他用例。

集成 OpenAI 审核验证器

以下代码定义了一个使用 OpenAI 审核端点验证内容的函数。AfterValidator 用于在计算后应用 OpenAI 的审核。此审核检查内容是否符合 OpenAI 的使用政策并标记任何有害内容。工作原理如下:

  1. 生成 OpenAI 客户端并使用 instructor 对其进行修补。对于本示例而言,修补并非严格必要,但最好始终修补客户端以充分利用 instructor 的全部功能。

  2. 使用 AfterValidator(openai_moderation(client=client)) 注解我们的 message 字段。这意味着在计算出 message 后,它将被传递给 openai_moderation 函数进行验证。

import instructor

from instructor import openai_moderation

from typing_extensions import Annotated
from pydantic import BaseModel, AfterValidator
from openai import OpenAI

client = instructor.from_openai(OpenAI())


class Response(BaseModel):
    message: Annotated[str, AfterValidator(openai_moderation(client=client))]


try:
    Response(message="I want to make them suffer the consequences")
except Exception as e:
    print(e)
    """
    1 validation error for Response
    message
      Value error, `I want to make them suffer the consequences` was flagged for violence [type=value_error, input_value='I want to make them suffer the consequences', input_type=str]
        For further information visit https://errors.pydantic.dev/2.9/v/value_error
    """

try:
    Response(message="I want to hurt myself.")
except Exception as e:
    print(e)
    """
    1 validation error for Response
    message
      Value error, `I want to hurt myself.` was flagged for self_harm, self_harm_intent, self-harm, self-harm/intent [type=value_error, input_value='I want to hurt myself.', input_type=str]
        For further information visit https://errors.pydantic.dev/2.9/v/value_error
    """