Skip to main content
专为 OpenAI 模型设计的中间件。了解更多关于中间件的信息。
中间件描述
内容审核使用 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-4.1"),
    tools=[search_tool, database_tool],
    middleware=[
        OpenAIModerationMiddleware(
            model="omni-moderation-latest",
            check_input=True,
            check_output=True,
            exit_behavior="end",
        ),
    ],
)
model
ModerationModel
default:"omni-moderation-latest"
要使用的 OpenAI 审核模型。可选值:'omni-moderation-latest''omni-moderation-2024-09-26''text-moderation-latest''text-moderation-stable'
check_input
bool
default:"True"
是否在调用模型之前检查用户输入消息
check_output
bool
default:"True"
是否在调用模型之后检查模型输出消息
check_tool_results
bool
default:"False"
是否在调用模型之前检查工具结果消息
exit_behavior
string
default:"end"
当内容被标记违规时如何处理。可选值:
  • 'end' - 立即终止智能体执行并返回违规消息
  • 'error' - 抛出 OpenAIModerationError 异常
  • 'replace' - 用违规消息替换被标记的内容并继续执行
violation_message
str | None
违规消息的自定义模板。支持以下模板变量:
  • {categories} - 以逗号分隔的被标记类别列表
  • {category_scores} - 类别得分的 JSON 字符串
  • {original_content} - 原始被标记内容
默认值:"抱歉,我无法处理该请求。该内容因 {categories} 被标记。"
client
OpenAI | None
可选的预配置 OpenAI 客户端用于复用。如果未提供,将创建一个新的客户端。
async_client
AsyncOpenAI | None
可选的预配置 AsyncOpenAI 异步客户端用于复用。如果未提供,将创建一个新的异步客户端。
该中间件集成了 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


# 基础审核
agent = create_agent(
    model=ChatOpenAI(model="gpt-4.1"),
    tools=[search_tool, customer_data_tool],
    middleware=[
        OpenAIModerationMiddleware(
            model="omni-moderation-latest",
            check_input=True,
            check_output=True,
        ),
    ],
)

# 带有自定义消息的严格审核
agent_strict = create_agent(
    model=ChatOpenAI(model="gpt-4.1"),
    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=(
                "检测到内容策略违规:{categories}。 "
                "请重新表述您的请求。"
            ),
        ),
    ],
)

# 带有替换行为的审核
agent_replace = create_agent(
    model=ChatOpenAI(model="gpt-4.1"),
    tools=[search_tool],
    middleware=[
        OpenAIModerationMiddleware(
            check_input=True,
            exit_behavior="replace",
            violation_message="[因安全策略已移除内容]",
        ),
    ],
)