Skip to main content

Variable Types

Types for prompt variables with multi-modal values.

Overview

Variable types define dynamic content that can be injected into prompts.

Variable

Prompt variable with name, multi-modal value, and optional description.
interface Variable {
  name: string;                    // 1-200 chars
  value: Content;                  // Multi-modal content
  description?: string;            // 1-200 chars
}
Properties:
  • name - Variable name (used as {{variable_name}} in prompts)
  • value - Multi-modal content value (Content)
  • description - Optional description of the variable
Example:
import type { Variable } from '@adaline/api';

const variables: Variable[] = [
  {
    name: 'user_name',
    value: {
      modality: 'text',
      value: 'John Doe'
    },
    description: 'The current user name'
  },
  {
    name: 'company_name',
    value: {
      modality: 'text',
      value: 'Acme Corp'
    },
    description: 'Company name for personalization'
  },
  {
    name: 'company_logo',
    value: {
      modality: 'image',
      detail: 'auto',
      value: {
        type: 'url',
        url: 'https://example.com/logo.png'
      }
    },
    description: 'Company branding logo'
  }
];
JSON:
{
  "name": "user_name",
  "value": {
    "modality": "text",
    "value": "John Doe"
  },
  "description": "User's full name"
}

Multi-Modal Variables

// Text variable
const textVar: Variable = {
  name: 'instructions',
  value: {
    modality: 'text',
    value: 'Follow these steps carefully'
  }
};

// Image variable
const imageVar: Variable = {
  name: 'reference_image',
  value: {
    modality: 'image',
    detail: 'high',
    value: {
      type: 'url',
      url: 'https://example.com/reference.jpg'
    }
  },
  description: 'Reference image for comparison'
};

// PDF variable
const pdfVar: Variable = {
  name: 'documentation',
  value: {
    modality: 'pdf',
    value: {
      type: 'url',
      url: 'https://example.com/docs.pdf'
    },
    file: {
      name: 'user_guide.pdf',
      id: 'file_123'
    }
  }
};