主题
所有与 OpenAI 相关的功能
OpenAI 是一家美国人工智能(AI)研究实验室,由非营利组织
OpenAI Incorporated及其营利性子公司OpenAI Limited Partnership组成。OpenAI 进行 AI 研究,其公开宣称的意图是促进和发展友好的人工智能。OpenAI 系统运行在Microsoft基于Azure的超级计算平台上。
OpenAI API 由一系列具有不同能力和价格点的多样化模型提供支持。
ChatGPT 是由
OpenAI开发的人工智能(AI)聊天机器人。
安装与设置
- 获取一个 OpenAI API 密钥,并将其设置为环境变量 (
OPENAI_API_KEY)
聊天模型
查看使用示例。
typescript
import { ChatOpenAI } from "@langchain/openai";大语言模型
查看使用示例。
关于安装 LangChain 包的通用说明,请参阅此部分。
bash
npm install @langchain/openai @langchain/coretypescript
import { OpenAI } from "@langchain/openai";文本嵌入模型
查看使用示例
typescript
import { OpenAIEmbeddings } from "@langchain/openai";链
typescript
import { OpenAIModerationChain } from "@langchain/classic/chains";中间件
专为 OpenAI 模型设计的中间件。了解更多关于中间件的信息。
| 中间件 | 描述 |
|---|---|
| 内容审核 | 使用 OpenAI 的审核端点来审核智能体流量 |
内容审核
使用 OpenAI 的审核端点来审核智能体流量(用户输入、模型输出和工具结果),以检测和处理不安全内容。内容审核适用于以下场景:
- 需要内容安全和合规性的应用程序
- 过滤有害、仇恨或不适当的内容
- 需要安全防护措施的面向客户的智能体
- 满足平台审核要求
了解更多关于 OpenAI 的审核模型 和类别。
API 参考: @[openAIModerationMiddleware]
typescript
import { createAgent, openAIModerationMiddleware } from "langchain";
const agent = createAgent({
model: "openai:gpt-4o",
tools: [searchTool, databaseTool],
middleware: [
openAIModerationMiddleware({
model: "openai:gpt-4o",
moderationModel: "omni-moderation-latest",
checkInput: true,
checkOutput: true,
exitBehavior: "end",
}),
],
});配置选项
modelstring | BaseChatModelrequired用于审核的 OpenAI 模型。可以是模型名称字符串(例如,"openai:gpt-4o")或 BaseChatModel 实例。中间件将使用此模型的客户端来访问审核端点。
moderationModelModerationModeldefault:"omni-moderation-latest"要使用的 OpenAI 审核模型。选项:'omni-moderation-latest', 'omni-moderation-2024-09-26', 'text-moderation-latest', 'text-moderation-stable'
checkInputbooleandefault:"true"是否在调用模型之前检查用户输入消息
checkOutputbooleandefault:"true"是否在调用模型之后检查模型输出消息
checkToolResultsbooleandefault:"false"是否在调用模型之前检查工具结果消息
exitBehavior'error' | 'end' | 'replace'default:"'end'"当内容被标记时如何处理违规。选项:
'end'- 立即结束智能体执行并返回违规消息'error'- 抛出OpenAIModerationError异常'replace'- 用违规消息替换被标记的内容并继续执行
violationMessagestring | undefined违规消息的自定义模板。支持模板变量:
{categories}- 被标记类别的逗号分隔列表{category_scores}- 类别分数的 JSON 字符串{original_content}- 原始的被标记内容
默认值:"抱歉,我无法满足该请求。它因 {categories} 被标记。"
完整示例
该中间件集成了 OpenAI 的审核端点,以在不同阶段检查内容:
审核阶段:
checkInput- 模型调用前的用户消息checkOutput- 模型调用后的 AI 消息checkToolResults- 模型调用前的工具输出
退出行为:
'end'(默认) - 停止执行并返回违规消息'error'- 抛出异常供应用程序处理'replace'- 替换被标记的内容并继续执行
typescript
import { createAgent, openAIModerationMiddleware } from "langchain";
// 基础审核
const agent = createAgent({
model: "openai:gpt-4o",
tools: [searchTool, customerDataTool],
middleware: [
openAIModerationMiddleware({
model: "openai:gpt-4o",
moderationModel: "omni-moderation-latest",
checkInput: true,
checkOutput: true,
}),
],
});
// 严格审核并自定义消息
const agentStrict = createAgent({
model: "openai:gpt-4o",
tools: [searchTool, customerDataTool],
middleware: [
openAIModerationMiddleware({
model: "openai:gpt-4o",
moderationModel: "omni-moderation-latest",
checkInput: true,
checkOutput: true,
checkToolResults: true,
exitBehavior: "error",
violationMessage:
"检测到内容策略违规:{categories}。 " +
"请重新表述您的请求。",
}),
],
});
// 使用替换行为的审核
const agentReplace = createAgent({
model: "openai:gpt-4o",
tools: [searchTool],
middleware: [
openAIModerationMiddleware({
model: "openai:gpt-4o",
checkInput: true,
exitBehavior: "replace",
violationMessage: "[内容因安全策略已被移除]",
}),
],
});