Skip to main content

使用 GitHub Actions 测试提示

本指南描述了如何使用 promptfoo GitHub Action 自动运行编辑前后的提示评估。

在每次修改提示的拉取请求中,该操作将自动运行全面的比较:

GitHub Action 评论修改后的 LLM 提示

提供的链接打开 Web 查看器 界面,允许您交互式地探索编辑前后的差异:

promptfoo Web 查看器

使用 GitHub Action

以下是一个示例操作,它监视 PR 的修改。如果在 prompts/ 目录中的任何文件被修改,我们将自动运行评估并使用 promptfoo/promptfoo-action@v1 发布结果链接:

name: '提示评估'

on:
pull_request:
paths:
- 'prompts/**'

jobs:
evaluate:
runs-on: ubuntu-latest
permissions:
# 此权限用于在拉取请求上发布评论
pull-requests: write
steps:
# 此缓存是可选的,但设置它会节省成本和时间!
- name: 设置 promptfoo 缓存
uses: actions/cache@v2
with:
path: ~/.cache/promptfoo
key: ${{ runner.os }}-promptfoo-v1
restore-keys: |
${{ runner.os }}-promptfoo-

# 此步骤将实际运行编辑前后的评估
- name: 运行 promptfoo 评估
uses: promptfoo/promptfoo-action@v1
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
prompts: 'prompts/**/*.json'
config: 'prompts/promptfooconfig.yaml'
cache-path: ~/.cache/promptfoo

配置

要使此 GitHub Action 适用于您的项目,您需要执行以下操作:

  1. 设置路径:将 'prompts/**' 替换为您要监视更改的文件路径。这可以是单个文件的路径列表,也可以是存储提示的目录。

    不要忘记在“运行 promptfoo 评估”步骤中更新路径,以指向您的提示和 promptfooconfig.yaml 配置文件。

  2. 设置 OpenAI API 密钥:如果您使用 OpenAI API,则需要在 GitHub 仓库中设置 OPENAI_API_KEY 密钥。

    为此,请转到您的仓库设置 > 密钥和变量 > 操作 > 新建仓库密钥,并创建一个名为 OPENAI_API_KEY 的密钥。

  3. 设置环境变量:该操作使用 PROMPTFOO_CONFIG_DIRPROMPTFOO_CACHE_PATH 在文件系统上记录状态。

  4. 将其添加到您的项目:GitHub 自动运行 .github/workflows 目录中的工作流,因此将其保存为类似 .github/workflows/prompt-eval.yml 的文件。

以下是支持的参数:

参数描述必需
github-tokenGitHub 令牌。用于对 GitHub API 的请求进行身份验证。
prompts提示文件的 glob 模式。这些模式用于查找操作应评估的提示文件。
config配置文件的路径。此文件包含操作的设置。
openai-api-keyOpenAI 的 API 密钥。用于对 OpenAI API 的请求进行身份验证。
cache-path缓存的路径。这是操作存储临时数据的地方。

工作原理

  1. 缓存:我们使用缓存来加快后续运行。缓存存储 LLM 请求和输出,可以在未来的运行中重复使用以节省成本。

  2. 运行 Promptfoo 评估:这是魔法发生的地方。我们运行评估,传入配置文件和我们要评估的提示。此步骤的结果会自动发布到拉取请求中。

有关如何设置 promptfoo 配置的更多信息,请参阅 入门 文档。