Skip to main content
所有与 OpenAI 相关的功能
OpenAI 是一家美国人工智能(AI)研究实验室,由非营利组织 OpenAI Incorporated 及其营利性子公司 OpenAI Limited Partnership 组成。OpenAI 进行 AI 研究,其公开宣称的目标是促进和发展友好的人工智能。OpenAI 系统运行在 Microsoft 提供的基于 Azure 的超算平台上。
OpenAI API 由一系列具有不同能力和价格点的多样化模型提供支持。 ChatGPT 是由 OpenAI 开发的人工智能(AI)聊天机器人。

安装与设置

  • 获取一个 OpenAI API 密钥,并将其设置为环境变量 (OPENAI_API_KEY)

聊天模型

查看使用示例
import { ChatOpenAI } from "@langchain/openai";

大语言模型

查看使用示例
有关安装 LangChain 包的通用说明,请参阅此部分
npm
npm install @langchain/openai @langchain/core
import { OpenAI } from "@langchain/openai";

文本嵌入模型

查看使用示例
import { OpenAIEmbeddings } from "@langchain/openai";

import { OpenAIModerationChain } from "@langchain/classic/chains";

中间件

专为 OpenAI 模型设计的中间件。了解更多关于中间件的信息。
中间件描述
内容审核使用 OpenAI 的审核端点来审核智能体流量

内容审核

使用 OpenAI 的审核端点来审核智能体流量(用户输入、模型输出和工具结果),以检测和处理不安全内容。内容审核适用于以下场景:
  • 需要内容安全和合规性的应用程序
  • 过滤有害、仇恨或不适当的内容
  • 需要安全防护的面向客户的智能体
  • 满足平台审核要求
了解更多关于 OpenAI 的审核模型 和类别。
API 参考: openAIModerationMiddleware
import { createAgent, openAIModerationMiddleware } from "langchain";

const agent = createAgent({
  model: "openai:gpt-4.1",
  tools: [searchTool, databaseTool],
  middleware: [
    openAIModerationMiddleware({
      model: "openai:gpt-4.1",
      moderationModel: "omni-moderation-latest",
      checkInput: true,
      checkOutput: true,
      exitBehavior: "end",
    }),
  ],
});
model
string | BaseChatModel
required
用于审核的 OpenAI 模型。可以是模型名称字符串(例如,"openai:gpt-4.1")或 BaseChatModel 实例。中间件将使用此模型的客户端来访问审核端点。
moderationModel
ModerationModel
default:"omni-moderation-latest"
要使用的 OpenAI 审核模型。选项:'omni-moderation-latest', 'omni-moderation-2024-09-26', 'text-moderation-latest', 'text-moderation-stable'
checkInput
boolean
default:"true"
是否在模型调用前检查用户输入消息
checkOutput
boolean
default:"true"
是否在模型调用后检查模型输出消息
checkToolResults
boolean
default:"false"
是否在模型调用前检查工具结果消息
exitBehavior
'error' | 'end' | 'replace'
default:"'end'"
当内容被标记时如何处理违规。选项:
  • 'end' - 立即结束智能体执行,并显示违规消息
  • 'error' - 抛出 OpenAIModerationError 异常
  • 'replace' - 将标记的内容替换为违规消息并继续执行
violationMessage
string | undefined
违规消息的自定义模板。支持模板变量:
  • {categories} - 被标记类别的逗号分隔列表
  • {category_scores} - 类别分数的 JSON 字符串
  • {original_content} - 原始被标记的内容
默认值:"抱歉,我无法满足该请求。它因 {categories} 而被标记。"
该中间件集成了 OpenAI 的审核端点,以在不同阶段检查内容:审核阶段:
  • checkInput - 模型调用前的用户消息
  • checkOutput - 模型调用后的 AI 消息
  • checkToolResults - 模型调用前的工具输出
退出行为:
  • 'end' (默认) - 停止执行并显示违规消息
  • 'error' - 抛出异常供应用程序处理
  • 'replace' - 替换标记的内容并继续执行
import { createAgent, openAIModerationMiddleware } from "langchain";

// 基础审核
const agent = createAgent({
  model: "openai:gpt-4.1",
  tools: [searchTool, customerDataTool],
  middleware: [
    openAIModerationMiddleware({
      model: "openai:gpt-4.1",
      moderationModel: "omni-moderation-latest",
      checkInput: true,
      checkOutput: true,
    }),
  ],
});

// 严格审核,带自定义消息
const agentStrict = createAgent({
  model: "openai:gpt-4.1",
  tools: [searchTool, customerDataTool],
  middleware: [
    openAIModerationMiddleware({
      model: "openai:gpt-4.1",
      moderationModel: "omni-moderation-latest",
      checkInput: true,
      checkOutput: true,
      checkToolResults: true,
      exitBehavior: "error",
      violationMessage:
        "检测到内容策略违规:{categories}。 " +
        "请重新表述您的请求。",
    }),
  ],
});

// 使用替换行为的审核
const agentReplace = createAgent({
  model: "openai:gpt-4.1",
  tools: [searchTool],
  middleware: [
    openAIModerationMiddleware({
      model: "openai:gpt-4.1",
      checkInput: true,
      exitBehavior: "replace",
      violationMessage: "[内容因安全策略已被移除]",
    }),
  ],
});