# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: Custom Python provider with functions and multi-format configs

prompts:
  - 'Write a very concise funny tweet about {{topic}}'

providers:
  - id: file://provider.py # defaults to call_api function
    config:
      someOption: foobar

  - id: file://provider.py:some_other_function

  - id: file://provider.py:async_provider
    label: async provider

  # Demonstrates how to load configuration from various file formats
  - id: 'file://provider.py:call_api'
    config:
      # YAML
      settings: 'file://configs/fileConfig.yaml'
      # JavaScript file
      formatting: 'file://configs/fileConfig.js:getFormatConfig'
      nested: # Python file
        parameters: 'file://configs/fileConfig.py:get_params'

tests:
  - vars:
      topic: bananas
    assert:
      - type: contains
        value: Bananamax
  - vars:
      topic: fruits
    assert:
      - type: llm-rubric
        value: includes at least one emoji
  - vars:
      topic: turtles
    assert:
      - type: llm-rubric
        value: is funny
