以编程方式使用文档

专门为 OpenAI 模型设计的中间件。了解更多关于 中间件.

中间件描述
内容审核使用 OpenAI 的审核端点对代理流量进行审核

内容审核

使用 OpenAI 的审核端点对代理流量(用户输入、模型输出和工具结果)进行审核,以检测和处理不安全内容。内容审核适用于以下场景:

  • - 需要内容安全和合规性的应用
  • - 过滤有害、仇恨或不当内容
  • - 需要安全防护的客户面向型代理
  • - 满足会议平台审核要求

API 参考: OpenAIModerationMiddleware

from langchain_openai import ChatOpenAI
from langchain_openai.middleware import OpenAIModerationMiddleware
from langchain.agents import create_agent

agent = create_agent(
    model=ChatOpenAI(model="gpt-5.5"),
    tools=[search_tool, database_tool],
    middleware=[
        OpenAIModerationMiddleware(
            model="omni-moderation-latest",
            check_input=True,
            check_output=True,
            exit_behavior="end",
        ),
    ],
)

Configuration options

要使用的 OpenAI 审核模型。选项: 'omni-moderation-latest', 'omni-moderation-2024-09-26', 'text-moderation-latest', 'text-moderation-stable'

是否在调用模型前检查用户输入消息

是否在调用模型后检查模型输出消息

是否在调用模型前检查工具结果消息

当内容被标记时如何处理违规行为。选项:

  • - 'end' - 立即结束代理执行并返回违规消息
  • - 'error' - 抛出 OpenAIModerationError 异常
  • - 'replace' - 用违规消息替换标记的内容并继续

违规消息的自定义模板。支持以下模板变量:

  • - {categories} - 被标记类别的逗号分隔列表
  • - {category_scores} - 类别评分的 JSON 字符串
  • - {original_content} - 被标记的原始内容

Default: "I'm sorry, but I can't comply with that request. It was flagged for {categories}."

可选的预配置 OpenAI 客户端以供重用。如果未提供,将创建一个新客户端。

可选的预配置 AsyncOpenAI 客户端以供重用。如果未提供,将创建一个新的异步客户端。

Full example

该中间件集成 OpenAI 的审核端点,在不同阶段检查内容:

审核阶段: - check_input - 调用模型前的用户消息 - check_output - 调用模型后的 AI 消息 - check_tool_results - 调用模型前的工具输出

退出行为: - 'end' (默认)- 停止执行并返回违规消息 - 'error' - 抛出异常以供应用处理 - 'replace' - 替换标记的内容并继续

from langchain_openai import ChatOpenAI
from langchain_openai.middleware import OpenAIModerationMiddleware
from langchain.agents import create_agent


# Basic moderation
agent = create_agent(
    model=ChatOpenAI(model="gpt-5.5"),
    tools=[search_tool, customer_data_tool],
    middleware=[
        OpenAIModerationMiddleware(
            model="omni-moderation-latest",
            check_input=True,
            check_output=True,
        ),
    ],
)

# Strict moderation with custom message
agent_strict = create_agent(
    model=ChatOpenAI(model="gpt-5.5"),
    tools=[search_tool, customer_data_tool],
    middleware=[
        OpenAIModerationMiddleware(
            model="omni-moderation-latest",
            check_input=True,
            check_output=True,
            check_tool_results=True,
            exit_behavior="error",
            violation_message=(
                "Content policy violation detected: {categories}. "
                "Please rephrase your request."
            ),
        ),
    ],
)

# Moderation with replacement behavior
agent_replace = create_agent(
    model=ChatOpenAI(model="gpt-5.5"),
    tools=[search_tool],
    middleware=[
        OpenAIModerationMiddleware(
            check_input=True,
            exit_behavior="replace",
            violation_message="[Content removed due to safety policies]",
        ),
    ],
)