Promptfoo
promptfoo 是一个开源库(和 CLI),用于评估 LLM 输出质量。
Portkey 为您的 Promptfoo 项目带来了先进的 AI 网关 功能、全栈 可观察性 和 提示管理 + 版本控制。本文档提供了如何利用这两个平台的优势来简化您的 AI 开发工作流程的概述。
使用 Portkey 与 Promptfoo,您可以:
让我们看看这些是如何工作的!
1. 来自 Portkey 的 Promptfoo 参考提示
在你的 Promptfoo 项目中设置
PORTKEY_API_KEY环境变量在你的配置 YAML 中,使用
portkey://前缀来标识你的提示,后面接上你的 Portkey 提示 ID。
例如:
prompts:
- portkey://pp-test-promp-669f48
providers:
- openai:gpt-3.5-turbo-0613
tests:
- vars:
topic: ...来自你 Promptfoo 测试用例的变量将自动插入到 Portkey 提示中作为变量。生成的提示将被渲染并返回给 promptfoo,并用作测试用例的提示。
注意,promptfoo 不会遵循在 Portkey 中设置的温度、模型和其他参数。你必须在提供者配置中自行设置这些参数。
2. 路径到 Anthropic、Google、Groq 等
设置
PORTKEY_API_KEY环境变量在配置 YAML 中添加提供者时,使用
portkey前缀设置模型名称(如portkey:gpt-4o)在
config参数中,为上述选择的模型设置相关提供者为portkeyProvider(如portkeyProvider:openai)
例如,调用 OpenAI
就这样!通过这个,您所有的 Promptfoo 调用现在将开始出现在您的 Portkey 控制面板上。
现在让我们调用 Anthropic, Google, Groq, Ollama
Anthropic, Google, Groq, OllamaAzure OpenAI、AWS Bedrock、Google Vertex AI 的示例
Azure OpenAI、AWS Bedrock、Google Vertex AI 的示例使用 虚拟密钥
不使用虚拟密钥
首先,设置 AZURE_OPENAI_API_KEY 环境变量。
使用客户端凭据(JSON Web Token)
您可以为您的客户端凭据生成一个 JSON Web Token,并将其添加到 AZURE_OPENAI_API_KEY 环境变量中。
使用 虚拟密钥
使用 VERTEX_API_KEY 环境变量设置您的 Vertex AI 访问令牌,并通过 Portkey 虚拟密钥传递其余的 Vertex AI 详细信息。
不使用虚拟密钥
首先,设置 VERTEX_API_KEY、VERTEX_PROJECT_ID、VERTEX_REGION 环境变量。
3. 段请求、查看成本和性能指标
Portkey 自动记录有关您的请求的所有关键信息,包括成本、使用的令牌、响应时间、请求和响应体等。
使用 Portkey,您还可以在每个请求中发送自定义元数据,以便进一步对日志进行分段,以获得更好的分析。同样,您还可以将多个请求追踪到单个追踪 ID,并在 Portkey 日志中单独过滤或查看它们。
您可以在 Portkey 仪表板上按这些元数据键过滤或分组数据。

4. 避免 Promptfoo 速率限制并利用缓存
由于 promptfoo 可以非常快速地进行大量调用,您可以在 Portkey 中使用启用缓存的负载均衡配置。您可以传递类似于 promptfoo 中虚拟密钥的配置头。
以下是您可以在 Portkey UI 中保存的示例配置,并获取相应的配置标识:
然后我们只需在 YAML 中添加保存的配置标识:
🚧 [Roadmap] 在 Portkey 中查看 Promptfoo 评估的结果
我们正在构建支持在 Portkey 中查看 promptfoo 评估结果的功能,这将使您能够在 Portkey 的反馈部分查看 promptfoo 评估的结果。
Last updated