如何使用 OpenAI SDK 和 Portkey 提示模板

Portkey 的提示游乐场允许您测试和调整各种超参数,而无需任何外部依赖,并无缝地将其部署到生产环境中。此外,所有团队成员都可以使用相同的提示模板,确保每个人都从相同的事实来源工作。

在 OpenAI SDK 和 Portkey APIs 中,您可以使用提示模板来实现这一点。

1. 创建提示模板

Portkey 的提示游乐场使您能够尝试各种 LLM 提供者。它作为您团队的权威信息来源,并对每个模型参数的快照进行版本控制,便于轻松回滚。我们想要创建一个与 gpt4 的聊天完成提示,讲述任何用户想要的主题的故事。

为此:

  1. 访问 www.portkey.ai

  2. 打开仪表板

    1. 点击 Prompts 然后点击 Create 按钮。

  3. 您现在在提示游乐场。

花一些时间尝试不同的提示输入和更改超参数。以下设置似乎最合适,并生成了符合预期的故事。

我的提示模板中的参数列表:

系统

You are a very good storyteller who covers various topics for the kids. You narrate them in very intriguing and interesting ways. You tell the story in less than 3 paragraphs.

用户

Tell me a story about {{topic}}

最大令牌数

512

温度

0.9

频率惩罚

-0.2

当您仔细查看用户角色的描述时,会发现 {{topic}}。Portkey 将其视为动态变量,因此可以在运行时将字符串传递给此提示。这个提示更加有用,因为它可以生成任何主题的故事。

一旦您对提示模板满意,请点击 Save Prompt。提示页面显示已保存的提示模板及其对应的提示 ID,作为我们代码中的参考点。

接下来,让我们看看如何使用创建的提示模板通过 OpenAI SDK 生成聊天完成。

2. 获取提示模板

启动您的代码编辑器并导入请求客户端 axios。这将允许您向 Portkey 的渲染端点发送 POST 请求,并检索可以与 OpenAI SDK 一起使用的提示详细信息。

我们将使用 axios/prompts/${PROMPT_ID}/render 端点发出 POST 调用,并附带头信息(包括 Portkey API Key)和包含提示模板所需的提示变量的主体。

有关渲染 API 的更多信息,请参阅 文档

我们将提示详细信息作为 JS 对象记录到控制台:

3. 通过 OpenAI SDK 发送请求

本节将教您如何使用我们之前获取的提示详情 JS 对象,并将其作为参数传递给 OpenAI SDK 的实例,以进行聊天完成调用。

让我们导入必要的库,并从 OpenAI SDK 创建一个客户端实例。

我们导入 portkey-ai 以使用其工具更改基本 URL 和默认头。如果您想知道虚拟密钥是什么,请参考 Portkey Vault 文档

我们获取的提示详情作为参数传递给聊天完成创建方法。

这次,运行您的代码,查看我们设定要生成的故事是否已记录到控制台!

奖励:使用 Portkey SDK

官方的 Portkey Client SDK 具有与 chat completions 的 OpenAI 签名类似的 prompts completions 方法。您只需将参数传递给 promptIDvariables 参数即可调用提示模板。

结论

我们现在已经完成了一个NodeJS程序的编写,该程序通过提示ID从Prompt Playground中检索提示详细信息。然后成功使用OpenAI SDK进行了聊天完成调用,以生成所需主题的故事。

我们可以使用这种方法专注于提高所有支持的LLM的提示质量,只需在代码运行时引用它们。

显示完整代码

Last updated