# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: Dynamic prompt generation using JavaScript functions

prompts:
  - 'You are an angry pirate. Be concise and stay in character. Tell me about {{topic}}'
  - id: 'You are an angry pirate. Be concise and stay in character. Tell me about {{topic}}'
    label: text

  - id: file://prompt.txt
    label: prompt_txt
  - file://prompt.txt

  - id: '*.txt'
    label: prompt_glob
  - '*.txt'
  - 'file://*.txt'

  - id: file://prompt.yaml
    label: prompt_yaml
  - file://prompt.yaml

  - id: file://subfolder/prompt.json
    label: prompt_json
  - file://subfolder/prompt.json

  - file://subfolder/*.json

  - id: file://prompt.md
    label: markdown prompt

  - id: file://prompt.j2
    label: jinja2 template

  - id: file://prompt.jsonl
    label: prompt_jsonl
  - file://prompt.jsonl

  - id: file://prompt_chat.js
    label: prompt_chat (js)
  - file://prompt_chat.js

  - id: file://prompt_chat.ts
    label: prompt_chat (ts)
  - file://prompt_chat.ts

  - id: file://prompt_string.js
    label: prompt_string
  - file://prompt_string.js

  - id: file://prompt_multiple.js:prompt2
    label: prompt_multiple with prompt2
  - file://prompt_multiple.js:prompt2

  - id: file://prompt_esm.mjs
    label: prompt_esm
  - file://prompt_esm.mjs

  - id: file://prompt_python.py
    label: prompt_python
  - file://prompt_python.py

  - id: file://prompt_python.py:prompt1
    label: prompt_python with prompt1
  - file://prompt_python.py:prompt1

  - id: file://prompt_python.py:Prompt.prompt
    label: prompt_python_class
  - file://prompt_python.py:Prompt.prompt_with_cot

  - id: file://prompt_config.js:promptWithConfig
    label: JS Prompt with Dynamic Config

  - id: file://prompt_config.py:prompt_with_config
    label: Python Prompt with Dynamic Config

  - id: file://prompts.csv
    label: CSV prompts

providers:
  # Use the echo provider only to see rendered prompts without LLM calls
  - echo
  # - id: anthropic:claude-sonnet-4-6
  #   label: Claude Sonnet 4.6
  # - id: openai:gpt-4.1-mini
  #   label: GPT-4o Mini
  # config below is overridden by prompt functions with config
  # config:
  #   temperature: 0.0 # Default temperature, will be overridden by prompt function
  #   max_tokens: 50 # Default max_tokens, will be overridden by prompt function

tests:
  - vars:
      topic: the weather
  - vars:
      topic: bob dylan
  - vars:
      topic: the Roman Empire
  - vars:
      topic: file://another_topic.txt
