Promptfoo 评估
关于此评估套件的说明
1) 请务必遵循以下说明——特别是关于必需软件包的先决条件。
2) 运行完整的评估套件可能需要高于正常速率限制。请考虑仅在 promptfoo 中运行部分测试。
3) 并非所有测试都能立即通过——我们设计的评估具有中等挑战性。
先决条件
要使用 Promptfoo,您需要在系统上安装 node.js 和 npm。有关更多信息,请遵循此指南
您可以使用 npm 安装 promptfoo 或使用 npx 直接运行它。在本指南中,我们将使用 npx。
注意:对于此示例,您无需运行 npx promptfoo@latest init
,因为此目录中已有一个初始化的 promptfooconfig.yaml
文件
请参阅此处的官方文档
入门
首先,设置您的 ANTHROPIC_API_KEY 环境变量,或为您选择的提供商设置其他必需的密钥。您可以执行 export ANTHROPIC_API_KEY=YOUR_API_KEY
。
然后,cd
进入 evaluation
目录并输入 npx promptfoo@latest eval -c promptfooconfig.yaml --output ../data/results.csv
之后,您可以通过运行 npx promptfoo@latest view
来查看结果。
工作原理
promptfooconfig.yaml
文件是我们评估设置的核心。它定义了几个关键部分:
Prompts:
- Prompts 从 prompts.py 文件导入。
- 这些 prompts 旨在测试 LM 性能的各个方面。
Providers:
- 我们在此处配置使用的 Claude 模型。
Tests:
- 测试用例在此处定义。
- 这些测试指定了我们评估的输入和预期输出。
- Promptfoo 提供各种内置测试类型(请参阅文档),或者您可以定义自己的测试类型。
Output:
- 指定评估结果的格式和位置。
- Promptfoo 也支持各种输出格式!
覆盖 Python 二进制文件
默认情况下,promptfoo 将在您的 shell 中运行 python。请确保 python 指向适当的可执行文件。
如果不存在 python 二进制文件,您将看到“python: command not found”错误。
要覆盖 Python 二进制文件,请设置 PROMPTFOO_PYTHON 环境变量。您可以将其设置为一个路径(例如 /path/to/python3.11)或 PATH 中的一个可执行文件(例如 python3.11)。