chore: import upstream snapshot with attribution
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
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
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# provider-http/basic (HTTP Provider Example)
|
||||
|
||||
You can run this example with:
|
||||
|
||||
```bash
|
||||
npx promptfoo@latest init --example provider-http/basic
|
||||
cd provider-http/basic
|
||||
```
|
||||
|
||||
This example demonstrates how to configure and use HTTP providers with promptfoo to integrate with external API endpoints.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Visit the [HTTP Provider Generator](/http-provider-generator) to automatically generate configurations based on your HTTP endpoint.
|
||||
2. Enter your request configuration and sample response.
|
||||
3. Copy the generated configuration to your promptfoo config file.
|
||||
|
||||
## Example Configuration
|
||||
|
||||
Here's a basic example configuration for an HTTP provider that sends prompts to an API endpoint:
|
||||
|
||||
```yaml
|
||||
providers:
|
||||
- id: https://api.example.com/chat
|
||||
config:
|
||||
method: POST
|
||||
headers:
|
||||
Content-Type: application/json
|
||||
body:
|
||||
messages:
|
||||
- role: user
|
||||
content: '{{prompt}}'
|
||||
transformResponse: json.choices[0].message.content
|
||||
```
|
||||
|
||||
## Configuration Options
|
||||
|
||||
- `method`: HTTP method (GET, POST, PUT, etc.)
|
||||
- `headers`: Request headers (Content-Type, Authorization, etc.)
|
||||
- `body`: Request body (supports template variables like `{{prompt}}`)
|
||||
- `queryParams`: URL query parameters
|
||||
- `transformResponse`: JavaScript expression to extract the response
|
||||
|
||||
## Usage Steps
|
||||
|
||||
1. Copy the example configuration above
|
||||
2. Modify the configuration for your endpoint:
|
||||
- Update the URL
|
||||
- Adjust headers (add authentication if needed)
|
||||
- Modify the request body structure
|
||||
- Update the transformResponse to match your API's response format
|
||||
3. Test the configuration using the [HTTP Provider Generator](/http-provider-generator)
|
||||
4. Save the working configuration to your promptfoo config file
|
||||
|
||||
## Testing Locally
|
||||
|
||||
To test your configuration:
|
||||
|
||||
1. Create a promptfooconfig.yaml file with your configuration
|
||||
2. Run the evaluation:
|
||||
```bash
|
||||
promptfoo eval
|
||||
```
|
||||
3. View the results:
|
||||
```bash
|
||||
promptfoo view
|
||||
```
|
||||
|
||||
For development and testing, you can use services like [webhook.site](https://webhook.site) to create test endpoints.
|
||||
|
||||
For more detailed information, see the [HTTP Provider documentation](/docs/providers/http).
|
||||
@@ -0,0 +1,25 @@
|
||||
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
|
||||
description: 'HTTP provider test'
|
||||
|
||||
prompts:
|
||||
- 'Write a tweet about {{topic}}'
|
||||
- 'Write a very concise, funny tweet about {{topic}}'
|
||||
|
||||
providers:
|
||||
- id: https://webhook.site/3d47d2dd-d450-4869-b80d-41862e577e45
|
||||
config:
|
||||
method: 'POST'
|
||||
headers:
|
||||
'Content-Type': 'application/json'
|
||||
body:
|
||||
'prompt': '{{prompt}}'
|
||||
'model':
|
||||
'{{model}}'
|
||||
#
|
||||
# Parse OpenAI response
|
||||
transformResponse: 'json.choices[0].message.content'
|
||||
|
||||
tests:
|
||||
- vars:
|
||||
model: gpt-5
|
||||
topic: bananas
|
||||
Reference in New Issue
Block a user