> ## Documentation Index
> Fetch the complete documentation index at: https://www.adaline.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# VariableModality

# VariableModality

A `str` enum defining the modality types for prompt variables.

## Overview

`VariableModality` specifies what kind of content a [PromptVariable](/docs/reference/sdk/v2/python/types/PromptVariable) represents. Each modality determines how the variable value is interpreted and rendered when injected into a prompt.

***

## Import

```python theme={null}
from adaline_api.models.variable_modality import VariableModality
```

## Type Definition

`VariableModality` is a `str` enum with the following values:

| Value      | Enum Member               | Description                                                                      |
| ---------- | ------------------------- | -------------------------------------------------------------------------------- |
| `"text"`   | `VariableModality.TEXT`   | Plain text content. The most common modality for string substitution in prompts. |
| `"image"`  | `VariableModality.IMAGE`  | Image content, provided as a URL or base64-encoded string.                       |
| `"pdf"`    | `VariableModality.PDF`    | PDF document content for document-understanding workflows.                       |
| `"api"`    | `VariableModality.API`    | External API data source. The variable value is fetched from an API at runtime.  |
| `"prompt"` | `VariableModality.PROMPT` | Nested prompt reference. Allows composing prompts from other prompts.            |

***

## Usage

### Creating variables with different modalities

```python theme={null}
from adaline_api.models.prompt_variable import PromptVariable
from adaline_api.models.variable_modality import VariableModality

variables: list[PromptVariable] = [
    PromptVariable(name="user_name", modality=VariableModality.TEXT),
    PromptVariable(name="profile_photo", modality=VariableModality.IMAGE),
    PromptVariable(name="contract", modality=VariableModality.PDF),
    PromptVariable(name="weather_data", modality=VariableModality.API),
    PromptVariable(name="system_instructions", modality=VariableModality.PROMPT),
]
```

### String comparison

Because `VariableModality` is a `str` enum, you can compare it directly with plain strings:

```python theme={null}
from adaline_api.models.variable_modality import VariableModality

modality = VariableModality.TEXT

assert modality == "text"
assert modality.value == "text"
assert str(modality) == "text"
```

### Branching on modality

```python theme={null}
for var in deployment.prompt.variables:
    if var.modality == VariableModality.TEXT:
        print(f"Text variable: {var.name}")
    elif var.modality == VariableModality.IMAGE:
        print(f"Image variable: {var.name}")
    elif var.modality == VariableModality.PDF:
        print(f"PDF variable: {var.name}")
```

***

## JSON Representation

In JSON payloads, modality values are plain strings:

```json theme={null}
[
  { "name": "user_name", "modality": "text" },
  { "name": "profile_photo", "modality": "image" },
  { "name": "contract", "modality": "pdf" }
]
```

***

## Related

* [PromptVariable](/docs/reference/sdk/v2/python/types/PromptVariable) — uses `VariableModality` to define variable types
