Portkey 的网关配置 101
您可能熟悉如何向 GPT4 发起 API 调用以获取聊天完成。然而,您是否知道可以使用 Portkey 为可能在 OpenAI 端失败的请求 设置 自动重试?
Portkey AI 网关提供了几个有用的功能,您可以利用这些功能来增强您的请求。在本食谱中,我们将首先向 LLM 发起 API 调用,并探索如何利用网关配置来优化这些 API 调用。
1. 使用 Portkey 调用 LLM 的 API
考虑一个典型的 API 调用,使用 OpenAI SDK 获取 GPT4 的聊天完成。它需要 messages 和 model 参数来获取响应。如果你之前尝试过,这段代码应该看起来很熟悉。这是因为 Portkey Client SDK 的签名与 OpenAI 的相同。
import { Portkey } from 'portkey-ai';
const portkey = new Portkey({
apiKey: 'xxxxxxxtrk',
virtualKey: 'ma5xfxxxxx4x'
});
const messages = [
{
role: 'user',
content: `What are the 7 wonders of the world?`
}
];
const response = await portkey.chat.completions.create({
messages,
model: 'gpt-4'
});
console.log(response.choices[0].message.content);除了 Portkey API Key (获取一个),你可能注意到在实例化 portkey 变量时有一个新参数 — virtualKey。Portkey 将 LLM 提供商的 API 密钥安全存储在一个保险库中,并在运行时替换请求中的 API 密钥。这些 API 密钥的唯一标识符称为虚拟密钥。有关更多信息,请参见 文档。
在了解基本内容后,让我们直接进入我们最初希望通过 AI 网关实现的目标 — 当我们遇到速率限制(429 状态码)时,自动重试请求。
2. 应用网关配置
AI 网关需要指令以自动重试请求。这涉及提供网关配置,这本质上是协调 AI 网关的 JSON 对象。在我们当前的场景中,我们的目标是使用自动重试 429 状态码的请求来访问 GPT4。
现在我们的网关配置已经整理好了。但我们如何指示我们的 AI 网关呢?
你猜对了,在请求头中。下一部分将探讨两种创建和引用网关配置的方法。
a. 从 UI 中引用网关配置
正如标题所述——您可以在 UI 上创建它们,并使用 ID 使 Portkey 自动在请求头中应用,以指示 AI 网关。UI 构建器功能提供 lint 建议,便于引用(通过配置 ID),消除手动管理,并允许您查看版本历史。
要创建网关配置,
访问 portkey.ai 并
点击 Configs
选择 Create
选择任意名称(例如 request_retries)
在游乐场中编写配置并点击 Save Config:

在列表中查看保存的配置及其 ID:

现在试试看!
保存的配置将作为行项目出现在配置页面上。ID 非常重要,因为它在我们通过 AI 网关的调用中被引用。
Portkey SDK
Portkey SDK 接受配置参数,该参数以创建的配置 ID 作为参数。为确保所有请求都启用自动重试,请在实例化 portkey 时将配置 ID 作为参数传递。
没错!只需一行代码,您应用中的所有请求现在都继承了网关配置并展示了自动重试。
让我们看看代码片段:
Axios
在无法使用 SDK 的情况下,您可以将相同的配置作为带有键 x-portkey-config 的头传递。
OpenAI SDK
Portkey 可以与 OpenAI SDK 一起使用。
要使用 OpenAI SDK 客户端发送请求并将网关配置应用于请求,请传递 baseURL 和必要的头,如下所示:
在 UI 中声明网关配置并在代码中引用它们的方式是推荐的,因为它保持了配置的原子性,并与业务逻辑解耦,可以升级以添加更多功能。如果您想为所有成千上万的请求启用缓存?只需从 UI 更新配置即可。无需提交,无需重新部署。
b. 代码中的参考网关配置
根据您应用的动态性,您可能希望在运行时构建网关配置。您需要做的就是将网关配置直接作为参数传递给 config 参数。
Portkey SDK
Axios
OpenAI SDK
以上是三种在请求中使用网关配置的方法。
在您希望为特定请求而不是所有请求单独添加配置的情况下,Portkey 允许您在聊天完成调用时将 config 参数作为单独的对象传递,而不是在 Portkey({..}) 实例化时传递。
将重试超能力应用于您的请求就是这么简单!
下一步:深入了解 AI 网关的功能
出色地实现了对 OpenAI 的 LLM 调用的重试行为!
Gateway Configs 是一个可以帮助您管理回退、请求超时、负载均衡、缓存等的工具。借助 Portkey 对 100 多个 LLM 的支持,它是管理涉及多个目标配置的复杂用例的强大工具。一个涵盖这种复杂性的 Gateway Config 可能看起来像:
有关完整参考,请参阅 Config Object。
看到所有可用于您请求的 AI 网关功能令人兴奋。请随意进行实验,充分利用它们。继续保持出色的工作!
Last updated