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)。