0d3cb498a3
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Has been cancelled
Test and Publish Multi-arch Docker Image / test (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Has been cancelled
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Has been cancelled
Validate Renovate Config / Validate Renovate Configuration (push) Has been cancelled
55 lines
1.6 KiB
Markdown
55 lines
1.6 KiB
Markdown
# config-tests-per-prompt (Filter Tests by Prompt)
|
|
|
|
This example demonstrates how to run specific tests only with specific prompts using the test-level `prompts` field.
|
|
|
|
## Overview
|
|
|
|
By default, promptfoo runs each test against all prompts (a cartesian product). The `prompts` field on test cases lets you break this pattern and associate specific tests with specific prompts.
|
|
|
|
## Use Cases
|
|
|
|
- Different assertion criteria for different prompt styles
|
|
- Testing prompt-specific behaviors
|
|
- Organizing large test suites with mixed prompt types
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
npx promptfoo@latest init --example config-tests-per-prompt
|
|
npx promptfoo@latest eval
|
|
```
|
|
|
|
## Key Features
|
|
|
|
- **Exact matching**: Reference prompts by label or ID
|
|
- **Wildcard patterns**: `Math:*` matches `Math:Basic`, `Math:Advanced`
|
|
- **Strict validation**: Invalid references error at config load time
|
|
- **defaultTest inheritance**: Set a default prompt filter for all tests
|
|
|
|
## Configuration
|
|
|
|
The example uses the echo provider for demonstration. In production, replace with your preferred LLM provider.
|
|
|
|
```yaml
|
|
prompts:
|
|
- id: factual
|
|
label: Factual Assistant
|
|
raw: 'You are factual. Answer: {{question}}'
|
|
- id: creative
|
|
label: Creative Writer
|
|
raw: 'Be creative. Answer: {{question}}'
|
|
|
|
tests:
|
|
- vars:
|
|
question: 'What is 2+2?'
|
|
prompts:
|
|
- Factual Assistant # Only runs with this prompt
|
|
assert:
|
|
- type: contains
|
|
value: '4'
|
|
```
|
|
|
|
## Learn More
|
|
|
|
See the [Filtering Tests by Prompt documentation](https://www.promptfoo.dev/docs/configuration/test-cases#filtering-tests-by-prompt) for more details.
|