Back to Promptfoo

provider-http/basic (HTTP Provider Example)

examples/provider-http/basic/README.md

0.121.92.1 KB
Original Source

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 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
  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 to create test endpoints.

For more detailed information, see the HTTP Provider documentation.