> ## 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](https://www.adaline.ai/docs/reference/sdk/v2/python/types/PromptVariable.md) 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](https://www.adaline.ai/docs/reference/sdk/v2/python/types/PromptVariable.md) — uses `VariableModality` to define variable types


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.