OpenAI
学习如何将 OpenAI 与 Portkey 集成,实现无缝的补全、提示管理以及流式传输、函数调用和微调等高级功能。
Portkey 与 OpenAI 的 Node.js、Python SDK 及其 REST API 具有本地集成。有关使用其他框架进行 OpenAI 集成的信息,请查看我们的合作伙伴关系,包括 Langchain、LlamaIndex 等 其他。
使用 Portkey 网关
要将 Portkey 网关与 OpenAI 集成,
将
baseURL设置为 Portkey 网关 URL包含特定于 Portkey 的头信息,例如
provider、apiKey等。
以下是如何将其应用于 聊天完成 请求:
在您的应用程序中安装 Portkey SDK
npm i --save portkey-ai接下来,将特定于 Portkey 的代码插入到您的 OpenAI 完成调用中,如高亮行所示。
PORTKEY_GATEWAY_URL是 Portkey 的网关 URL,用于路由您的请求,createHeaders是一个生成头对象的便利函数。 (所有支持的参数/头信息)
import OpenAI from 'openai'; // We're using the v4 SDK
import { PORTKEY_GATEWAY_URL, createHeaders } from 'portkey-ai'
const openai = new OpenAI({
apiKey: 'OPENAI_API_KEY', // defaults to process.env["OPENAI_API_KEY"],
baseURL: PORTKEY_GATEWAY_URL,
defaultHeaders: createHeaders({
provider: "openai",
apiKey: "PORTKEY_API_KEY" // defaults to process.env["PORTKEY_API_KEY"]
})
});
async function main() {
const chatCompletion = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-4-turbo',
});
console.log(chatCompletion.choices);
}
main();在您的应用程序中安装 Portkey SDK
接下来,将特定于 Portkey 的代码插入到您的 OpenAI 函数调用中,如高亮行所示。
PORTKEY_GATEWAY_URL是 Portkey 的网关 URL,用于路由您的请求,createHeaders是一个生成头对象的便利函数。 (所有支持的参数/头信息)
此请求将由 Portkey 自动记录。您可以在日志仪表板中查看此信息。Portkey 记录每个请求使用的令牌、执行时间和成本。此外,您可以深入了解详细信息,以查看确切的请求和响应数据。
跟踪最终用户 ID
Portkey 允许您跟踪在 OpenAI 请求中通过 user 参数传递的用户 ID,从而使您能够监控用户级别的费用、请求等。
当您在请求中包含 user 参数时,Portkey 日志将显示相关的用户 ID,如下图所示:

除了 user 参数,Portkey 还允许您在请求中发送任意自定义元数据。这个强大的功能使您能够将额外的上下文或信息与每个请求关联,这对于分析、调试或其他自定义用例非常有用。
使用 Prompts API
Portkey 还支持在 prompt library 中创建和管理提示模板。这使得可以通过用户界面直接协作开发提示。
创建一个带有变量的提示模板并设置超参数。

使用 Portkey SDK 在您的代码库中使用此提示。
观察这如何简化您的代码可读性,并通过 UI 简化提示更新,而无需更改代码库。
高级用例
流式响应
Portkey 支持使用服务器发送事件 (SSE) 的流式响应。
使用视觉模型
Portkey 的多模态网关同样完全支持 OpenAI 视觉模型。有关更多信息,请参阅本指南:
视觉函数调用
在您的 OpenAI 或 Portkey SDK 操作中,函数调用保持标准。这些日志将出现在 Portkey 中,突出显示使用的函数及其输出。
此外,您可以在提示中定义函数,并像上面那样调用 portkey.prompts.completions.create 方法。
微调
请参考我们的微调指南,以利用 Portkey 的高级 持续微调 功能。
图像生成
Portkey 支持 OpenAI 的多种模式,您可以通过 Portkey 的 AI 网关以与完成调用相同的方式发起图像生成请求。
Portkey 的快速 AI 网关会在您的 Portkey 仪表板上捕获请求信息。在您的日志屏幕上,您将能够看到该请求及其请求和响应。

有关图像生成的更多信息,请参阅 API 参考。
音频 - 转录、翻译和文本转语音
Portkey 的多模态网关还支持 OpenAI API 上的 audio 方法。支持 tts-1、tts-1-hd 和 whisper-1 模型。
查看以下指南以获取更多信息:
文本转语音语音转文本在 Portkey 中管理 OpenAI 项目和组织
在将 OpenAI 与 Portkey 集成时,您可以指定您的 OpenAI 组织和项目 ID 以及您的 API 密钥。这在您属于多个组织或通过遗留用户 API 密钥访问项目时特别有用。
指定组织和项目 ID 有助于您更好地控制访问规则、使用情况和成本。
在 Portkey 中,您可以通过以下方式添加您的组织和项目详细信息:
创建您的虚拟密钥
定义网关配置
在请求中传递详细信息
让我们更详细地探讨每种方法。
使用虚拟密钥
在创建虚拟密钥时,从下拉菜单中选择 OpenAI,Portkey 会自动显示组织 ID 和项目 ID 的可选字段,以及 API 密钥字段。
从这里获取您的 OpenAI API 密钥,然后将其添加到 Portkey,以创建可以在 Portkey 中使用的虚拟密钥。

Portkey 在预算管理方面比 OpenAI 更进一步。虽然 OpenAI 允许为每个项目设置预算限制,但 Portkey 使您能够为每个创建的虚拟密钥设置预算限制。有关预算限制的更多信息,请参阅此文档:
预算限制使用网关配置
您还可以在网关配置中指定组织和项目的详细信息,可以在根级别或特定目标内进行设置。
发起请求时
您还可以在使用 curl、OpenAI SDK 或 Portkey SDK 发起请求时直接传递您的组织和项目详细信息。
Portkey 特性
Portkey 通过 OpenAI SDK 支持其所有功能,因此您无需迁移。
请在相关部分中找到更多信息:
Last updated