Skip to main content

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.

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 at runtime

The SDK returns deployments with {{variable_name}} placeholders intact — substitute them yourself before sending the prompt to your AI provider.

Text variables

import re
from adaline.main import Adaline

adaline = Adaline()

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

variables = {
    "user_name": "Alice",
    "company_name": "Acme Corp",
}

# Replace placeholders in text content across every message
pattern = re.compile(r"\{\{(\w+)\}\}")
for message in deployment.prompt.messages:
    for content in message.content:
        if content.modality == "text":
            content.value = pattern.sub(
                lambda m: str(variables.get(m.group(1), m.group(0))),
                content.value,
            )

Image and PDF variables

For non-text variables, replace a text content item whose entire value is {{variable_name}} with the corresponding ImageContent or PdfContent:
from adaline_api.models.image_content import ImageContent
from adaline_api.models.image_content_value import ImageContentValue
from adaline_api.models.url_image_content_value import UrlImageContentValue
from adaline_api.models.pdf_content import PdfContent
from adaline_api.models.pdf_content_value import PdfContentValue
from adaline_api.models.url_pdf_content_value import UrlPdfContentValue
from adaline_api.models.pdf_content_file import PdfContentFile

assets = {
    "profile_pic": ImageContent(
        modality="image",
        detail="auto",
        value=ImageContentValue(
            actual_instance=UrlImageContentValue(
                type="url", url="https://example.com/alice.png"
            )
        ),
    ),
    "report": PdfContent(
        modality="pdf",
        value=PdfContentValue(
            actual_instance=UrlPdfContentValue(
                type="url", url="https://example.com/report.pdf"
            )
        ),
        file=PdfContentFile(name="report.pdf", id="file_abc123"),
    ),
}

for message in deployment.prompt.messages:
    new_content = []
    for c in message.content:
        if c.modality == "text":
            stripped = c.value.strip()
            if stripped.startswith("{{") and stripped.endswith("}}"):
                name = stripped[2:-2]
                if name in assets:
                    new_content.append(assets[name])
                    continue
        new_content.append(c)
    message.content = new_content
Image and PDF variables can only replace a text content item whose entire value is {{variable_name}}. A placeholder embedded in larger text (e.g., "See: {{pic}}") cannot be swapped for a binary modality.