Skip to main content

PromptVariable

Types for prompt variables with modality definitions.

Overview

Variable types define dynamic content that can be injected into prompts, with support for multiple modalities.

PromptVariable

Prompt variable with name and modality.
from adaline_api.models.prompt_variable import PromptVariable

Fields

name
str
required
The variable name as it appears in the prompt template (used as {{variable_name}} in prompts).
modality
VariableModality
required
The variable modality type. See VariableModality.

Example

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="company_name", modality=VariableModality.TEXT),
    PromptVariable(name="company_logo", modality=VariableModality.IMAGE),
    PromptVariable(name="report", modality=VariableModality.PDF),
    PromptVariable(name="external_data", modality=VariableModality.API),
    PromptVariable(name="nested_prompt", modality=VariableModality.PROMPT),
]
JSON:
[
  { "name": "user_name", "modality": "text" },
  { "name": "company_name", "modality": "text" },
  { "name": "company_logo", "modality": "image" },
  { "name": "report", "modality": "pdf" }
]

VariableModality

See the dedicated VariableModality page for full documentation. Variable modality type enumeration.
from adaline_api.models.variable_modality import VariableModality
VariableModality is a str enum with the following values:
ValueEnum MemberDescription
"text"VariableModality.TEXTPlain text content
"image"VariableModality.IMAGEImage content (URL or base64)
"pdf"VariableModality.PDFPDF document content
"api"VariableModality.APIExternal API data source
"prompt"VariableModality.PROMPTNested prompt reference

Example

from adaline_api.models.variable_modality import VariableModality

modality = VariableModality.TEXT       # 'text'
modality = VariableModality.IMAGE      # 'image'

# String comparison works
assert VariableModality.TEXT == "text"

Using with Deployments

from adaline.main import Adaline
from adaline_api.models.prompt_variable import PromptVariable

adaline = Adaline()

deployment = await adaline.get_latest_deployment(
    prompt_id="prompt_abc123",
    deployment_environment_id="environment_abc123"
)

# Access variable definitions from the deployment
variables: list[PromptVariable] = deployment.prompt.variables

for v in variables:
    print(f"Variable: {v.name}, Modality: {v.modality}")
    # e.g. "Variable: user_name, Modality: text"

Replacing Variables with replace_prompt_variables

The replace_prompt_variables utility substitutes {{variable_name}} placeholders in a prompt’s text messages with actual values.
from adaline.utils import replace_prompt_variables, OuterVariableValue, InnerVariableValue

Usage

from adaline.main import Adaline
from adaline.utils import replace_prompt_variables, OuterVariableValue, InnerVariableValue

adaline = Adaline()

deployment = await adaline.get_latest_deployment(
    prompt_id="prompt_abc123",
    deployment_environment_id="environment_abc123"
)

# Define variable values
variable_values = [
    OuterVariableValue(
        name="user_name",
        value=InnerVariableValue(modality="text", value="Alice")
    ),
    OuterVariableValue(
        name="company_name",
        value=InnerVariableValue(modality="text", value="Acme Corp")
    ),
]

# Replace placeholders in the prompt
resolved_prompt = replace_prompt_variables(
    prompt=deployment.prompt,
    variable_values=variable_values
)
The function returns a deep copy of the prompt with all {{variable_name}} placeholders in TextContent messages replaced with the provided values. Variables that don’t have a matching value are left as-is.

Complete Example

from adaline.main import Adaline
from adaline.utils import replace_prompt_variables, OuterVariableValue, InnerVariableValue
from openai import OpenAI

adaline = Adaline()
openai_client = OpenAI()

async def use_prompt_with_variables():
    deployment = await adaline.get_latest_deployment(
        prompt_id="prompt_abc123",
        deployment_environment_id="environment_abc123"
    )

    # Inspect available variables
    for v in deployment.prompt.variables:
        print(f"{v.name} ({v.modality})")

    # Replace text variables
    resolved = replace_prompt_variables(
        prompt=deployment.prompt,
        variable_values=[
            OuterVariableValue(
                name="user_name",
                value=InnerVariableValue(modality="text", value="Alice")
            ),
        ]
    )

    # Use resolved messages with your provider
    config = resolved.config
    response = openai_client.chat.completions.create(
        model=config.model,
        messages=[...],  # Build from resolved.messages
        temperature=config.settings.get("temperature"),
    )