Portkey AI 网关提供了几个有用的功能,您可以利用这些功能来增强您的请求。在本食谱中,我们将首先向 LLM 发起 API 调用,并探索如何利用网关配置来优化这些 API 调用。
1. 使用 Portkey 调用 LLM 的 API
考虑一个典型的 API 调用,使用 OpenAI SDK 获取 GPT4 的聊天完成。它需要 messages 和 model 参数来获取响应。如果你之前尝试过,这段代码应该看起来很熟悉。这是因为 Portkey Client SDK 的签名与 OpenAI 的相同。
import { Portkey } from'portkey-ai';constportkey=newPortkey({ apiKey:'xxxxxxxtrk', virtualKey:'ma5xfxxxxx4x'});constmessages= [ { role:'user', content:`What are the 7 wonders of the world?` }];constresponse=awaitportkey.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 作为参数传递。