# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: Image Classification Example of Fashion MNIST dataset
providers:
  - openai:chat:gpt-4o
  - openai:chat:gpt-4.1-mini
prompts:
  - label: Image Classification
    raw: file://prompt.js
    config:
      response_format:
        type: json_schema
        json_schema:
          name: image_classification
          schema:
            type: object
            properties:
              classification:
                type: string
                enum:
                  [
                    'T-shirt/top',
                    'Trouser',
                    'Pullover',
                    'Dress',
                    'Coat',
                    'Sandal',
                    'Shirt',
                    'Sneaker',
                    'Bag',
                    'Ankle boot',
                  ]
              color:
                type: string
              features:
                type: string
              style:
                type: string
              confidence:
                type: integer
              reasoning:
                type: string
            required:
              - classification
              - color
              - features
              - style
              - confidence
              - reasoning
            additionalProperties: false
defaultTest:
  assert:
    - type: is-json
      value:
        type: object
        properties:
          classification:
            type: string
          color:
            type: string
          features:
            type: string
          style:
            type: string
          confidence:
            type: integer
          reasoning:
            type: string
    - type: javascript
      value: 'output.classification === context.vars.label'
      metric: accuracy

tests: file://fashion_mnist_sample_base64.csv
