# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: 'Claude vs GPT Image Analysis'

prompts:
  - file://prompt.py:format_image_prompt
  - file://prompt.js:formatImagePrompt

providers:
  - id: bedrock:us.anthropic.claude-sonnet-4-6
  - id: anthropic:claude-sonnet-4-6
  - id: openai:gpt-4.1
    label: custom label for gpt-4.1
  - id: google:gemini-3.1-flash-image-preview

tests:
  - vars:
      image_url: https://images.metmuseum.org/CRDImages/as/original/DP130155.jpg
      label: Great Wave off Kanagawa

defaultTest:
  options:
    provider: openai:gpt-4.1
    rubricPrompt: |
      [
        {
          "role": "system",
          "content": "You are a meticulous grader. Evaluate how accurately the answer describes the provided image. Respond in JSON {reason:string, pass:boolean, score:number}"
        },
        {
          "role": "user",
          "content": [
            {"type": "image_url", "image_url": {"url": "{{image_url}}"}},
            {"type": "text", "text": "Answer: {{ output }}\nCriteria: {{ rubric }}"}
          ]
        }
      ]
  assert:
    - type: llm-rubric
      value: Is a detailed description of the image '{{label}}'
