Skip to main content

从 Google Sheets 导入测试用例

promptfoo 允许你直接从 Google Sheets 导入评估测试用例。这可以通过未认证的方式完成(如果表格是公开的),或者使用 Google 的默认应用程序凭据进行认证,通常通过服务帐户进行编程访问。

未认证访问

如果 Google Sheet 设置为“任何人都可以通过链接访问”,你可以直接在 YAML 配置中指定共享 URL。例如:

prompts:
- prompt1.txt
- prompt2.txt
providers:
- anthropic:messages:claude-3-5-sonnet-20240620
- openai:chat:gpt-4o
tests: https://docs.google.com/spreadsheets/d/1eqFnv1vzkPvS7zG-mYsqNDwOzvSaiIAsKB3zKg9H18c/edit?usp=sharing

这里有一个示例表格。有关如何设置表格本身的更多信息,请参阅从 CSV 加载断言

使用默认应用程序凭据进行认证访问

对于非公开访问的表格,你可以使用认证访问。这需要设置 Google 默认应用程序凭据。以下是配置方法:

  1. 安装对等依赖项npm install googleapis

  2. 服务帐户设置:在你的 Google Cloud Platform 项目中创建一个服务帐户。创建一个 JSON 密钥文件并下载它。

  3. 启用 Google Sheets API:启用Google Sheets APIsheets.googleapis.com)。

  4. 共享表格:将 Google Sheet 与你的服务帐户的电子邮件地址(your-service-account@project-name.iam.gserviceaccount.com)共享,至少需要查看权限。

  5. 配置环境:将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为 JSON 密钥文件的路径:

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
  1. 更新 YAML 配置:使用与未认证访问相同的 URL 格式,但系统将自动使用认证方法访问表格:
tests: https://docs.google.com/spreadsheets/d/1eqFnv1vzkPvS7zG-mYsqNDwOzvSaiIAsKB3zKg9H18c/edit?usp=sharing

使用自定义提供程序进行模型评分指标

在使用 Google Sheets 进行测试用例时,你仍然可以使用自定义提供程序进行模型评分指标,如 llm-rubricsimilar。为此,通过在配置中添加 defaultTest 属性来覆盖默认的 LLM 评分器:

prompts:
- prompt1.txt
- prompt2.txt
providers:
- anthropic:messages:claude-3-5-sonnet-20240620
- openai:chat:gpt-4o-mini
tests: https://docs.google.com/spreadsheets/d/1eqFnv1vzkPvS7zG-mYsqNDwOzvSaiIAsKB3zKg9H18c/edit?usp=sharing
defaultTest:
options:
provider:
text:
id: ollama:llama3.1:70b
embedding:
id: ollama:embeddings:mxbai-embed-large

有关覆盖 LLM 评分器的更多信息,请参阅模型评分指标文档

将输出写入 Google Sheet

outputPath 参数(在命令行中为 --output-o)支持 Google Sheets URL。为了写入,必须使用具有写入权限的服务帐户配置默认应用程序凭据。

prompts:
- ...
providers:
- ...
tests:
- ...
outputPath: https://docs.google.com/spreadsheets/d/1eqFnv1vzkPvS7zG-mYsqNDwOzvSaiIAsKB3zKg9H18c/edit?usp=sharing