# config-pdf-files (PDF Document Analysis)

This example demonstrates how to analyze PDF documents using vision-capable LLMs from multiple providers.

You can run this example with:

```bash
npx promptfoo@latest init --example config-pdf-files
cd config-pdf-files
```

## Setup

Set your API keys for the providers you want to use:

- **Google Gemini**: Set `GOOGLE_API_KEY` or `GEMINI_API_KEY`
- **Anthropic Claude**: Set `ANTHROPIC_API_KEY`
- **OpenAI GPT**: Set `OPENAI_API_KEY`

## Usage

This example is pre-configured in `promptfooconfig.yaml`. Run:

```bash
promptfoo eval
```

View results:

```bash
promptfoo view
```

## How It Works

The `prompt.py` file handles provider-specific PDF formatting:

- **Anthropic**: Uses the `document` content type with base64 data
- **OpenAI**: Uses `input_file` with data URI format
- **Google Gemini**: Uses `inline_data` within message parts

Each provider has different requirements for sending PDF documents, which is why a Python prompt function is used to dynamically format the request.
