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
The variable name as it appears in the prompt template (used as {{variable_name}} in prompts).
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:
| Value | Enum Member | Description |
|---|
"text" | VariableModality.TEXT | Plain text content |
"image" | VariableModality.IMAGE | Image content (URL or base64) |
"pdf" | VariableModality.PDF | PDF document content |
"api" | VariableModality.API | External API data source |
"prompt" | VariableModality.PROMPT | Nested 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.