使用 GitHub Actions 测试提示
本指南描述了如何使用 promptfoo GitHub Action 自动运行编辑前后的提示评估。
在每次修改提示的拉取请求中,该操作将自动运行全面的比较:
提供的链接打开 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 适用于您的项目,您需要执行以下操作:
-
设置路径:将
'prompts/**'
替换为您要监视更改的文件路径。这可以是单个文件的路径列表,也可以是存储提示的目录。不要忘记在“运行 promptfoo 评估”步骤中更新路径,以指向您的提示和
promptfooconfig.yaml
配置文件。 -
设置 OpenAI API 密钥:如果您使用 OpenAI API,则需要在 GitHub 仓库中设置
OPENAI_API_KEY
密钥。为此,请转到您的仓库设置 > 密钥和变量 > 操作 > 新建仓库密钥,并创建一个名为
OPENAI_API_KEY
的密钥。 -
设置环境变量:该操作使用
PROMPTFOO_CONFIG_DIR
和PROMPTFOO_CACHE_PATH
在文件系统上记录状态。 -
将其添加到您的项目:GitHub 自动运行
.github/workflows
目录中的工作流,因此将其保存为类似.github/workflows/prompt-eval.yml
的文件。
以下是支持的参数:
参数 | 描述 | 必需 |
---|---|---|
github-token | GitHub 令牌。用于对 GitHub API 的请求进行身份验证。 | 是 |
prompts | 提示文件的 glob 模式。这些模式用于查找操作应评估的提示文件。 | 是 |
config | 配置文件的路径。此文件包含操作的设置。 | 是 |
openai-api-key | OpenAI 的 API 密钥。用于对 OpenAI API 的请求进行身份验证。 | 否 |
cache-path | 缓存的路径。这是操作存储临时数据的地方。 | 否 |
工作原理
-
缓存:我们使用缓存来加快后续运行。缓存存储 LLM 请求和输出,可以在未来的运行中重复使用以节省成本。
-
运行 Promptfoo 评估:这是魔法发生的地方。我们运行评估,传入配置文件和我们要评估的提示。此步骤的结果会自动发布到拉取请求中。
有关如何设置 promptfoo 配置的更多信息,请参阅 入门 文档。