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} - 原始标记内容
默认值:"I'm sorry, but I can't comply with that request. It was flagged for {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=(
                "Content policy violation detected: {categories}. "
                "Please rephrase your request."
            ),
        ),
    ],
)

# 带替换行为的审核
agent_replace = create_agent(
    model=ChatOpenAI(model="gpt-4.1"),
    tools=[search_tool],
    middleware=[
        OpenAIModerationMiddleware(
            check_input=True,
            exit_behavior="replace",
            violation_message="[Content removed due to safety policies]",
        ),
    ],
)