Langchain (JS/TS)
Portkey 为任何 Langchain 应用程序增加核心生产能力。
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使应用程序能够:
具有上下文感知:将语言模型连接到上下文源(提示指令、少量示例、用于基础响应的内容等)
推理:依赖语言模型进行推理(根据提供的上下文如何回答、采取什么行动等)
您可以在 这里 找到更多信息。
在使用 Langchain 时,Portkey 可以通过为您的 Langchain 应用添加快速的 AI 网关、可观察性、提示管理等功能,帮助将其推向生产环境。
快速开始集成
安装 Portkey 和 Langchain SDK 以开始使用。
npm install langchain portkey-ai @langchain/openai现在我们可以初始化模型并更新模型以使用 Portkey 的 AI 网关。
import { ChatOpenAI } from "@langchain/openai";
import { createHeaders, PORTKEY_GATEWAY_URL} from "portkey-ai"
const PORTKEY_API_KEY = "..."
const PROVIDER_API_KEY = "..." // 添加所使用的 AI 提供者的 API 密钥
const portkeyConf = {
baseURL: PORTKEY_GATEWAY_URL,
defaultHeaders: createHeaders({apiKey: PORTKEY_API_KEY, provider: "openai"})
}
const chatModel = new ChatOpenAI({
apiKey: PROVIDER_API_KEY,
configuration: portkeyConf
});
await chatModel.invoke("What is the meaning of life, universe and everything?")响应
调用及相应的提示也将在 Portkey 日志标签中可见。

使用虚拟密钥管理多个模型
Portkey 支持 虚拟密钥,这是一种安全地存储和管理 API 密钥的简单方法。让我们尝试使用虚拟密钥进行 LLM 调用。
1. 在您的 Portkey 账户中创建一个虚拟密钥并复制 ID
让我们尝试为 Mistral 创建一个新的虚拟密钥,如下所示:

2. 在 Portkey Headers 中使用虚拟密钥
virtualKey 参数设置所使用的 AI 提供者的身份验证和提供者。在我们的案例中,我们使用的是 Mistral 虚拟密钥。
Portkey AI 网关将对 Mistral 的 API 请求进行身份验证,并以 OpenAI 格式返回响应,供您使用。
AI 网关扩展了 Langchain 的 ChatOpenAI 类,使其成为调用任何提供者和任何模型的单一接口。
嵌入
通过 Portkey 在 Langchain 中的嵌入与使用 OpenAIEmbeddings 类的聊天模型工作方式相同。让我们尝试使用 OpenAI 的嵌入模型创建一个嵌入。
链接与提示
Chains 使各种 Langchain 概念能够集成以实现同时执行,而 Langchain 支持 Prompt Templates 来构造语言模型的输入。让我们看看这在 Portkey 中是如何工作的。
我们将能够在 Portkey 日志仪表板中查看用于调用 OpenAI 的确切提示。
使用高级路由
Portkey AI Gateway 通过以配置为先的方法,为 Langchain 带来了负载均衡、后备、实验和金丝雀测试等功能。
让我们举一个 例子,假设我们想要在 gpt-4 和 claude-opus 之间以 50:50 的比例分配流量,以测试这两个大型模型。网关的配置如下所示:
然后,我们可以在从 langchain 发出的请求中使用这个 config。
当调用 LLM 时,Portkey 将根据定义的权重比例将请求分配给 gpt-4 和 claude-3-opus-20240229。
您可以在 这里 找到更多配置示例。
代理与追踪
Langchain 的一个强大功能是创建代理。代理工作流的挑战在于提示通常被抽象化,难以了解代理正在做什么。这也使得调试变得更加困难。
将 Portkey 配置连接到 ChatOpenAI 模型,我们将能够利用如上所示的 AI 网关的所有好处。
此外,Portkey 将捕获代理 API 调用的日志,使我们能够全面了解情况。

这非常强大,因为我们能够控制和监视代理流程,从而识别问题并根据需要进行更新。
Last updated