如何使用 OpenAI SDK 和 Portkey 提示模板
Portkey 的提示游乐场允许您测试和调整各种超参数,而无需任何外部依赖,并无缝地将其部署到生产环境中。此外,所有团队成员都可以使用相同的提示模板,确保每个人都从相同的事实来源工作。
在 OpenAI SDK 和 Portkey APIs 中,您可以使用提示模板来实现这一点。
1. 创建提示模板
Portkey 的提示游乐场使您能够尝试各种 LLM 提供者。它作为您团队的权威信息来源,并对每个模型参数的快照进行版本控制,便于轻松回滚。我们想要创建一个与 gpt4 的聊天完成提示,讲述任何用户想要的主题的故事。
为此:
访问 www.portkey.ai
打开仪表板
点击 Prompts 然后点击 Create 按钮。
您现在在提示游乐场。
花一些时间尝试不同的提示输入和更改超参数。以下设置似乎最合适,并生成了符合预期的故事。
我的提示模板中的参数列表:
系统
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 方法。您只需将参数传递给 promptID 和 variables 参数即可调用提示模板。
结论
我们现在已经完成了一个NodeJS程序的编写,该程序通过提示ID从Prompt Playground中检索提示详细信息。然后成功使用OpenAI SDK进行了聊天完成调用,以生成所需主题的故事。
我们可以使用这种方法专注于提高所有支持的LLM的提示质量,只需在代码运行时引用它们。
Last updated