Skip to content

Versioning

Learn how to manage multiple versions of your prompt templates and understand how versioning ensures reproducible experiments

elluminate's versioning system enables safe, traceable evolution of your AI evaluation components. When you modify prompt templates, template variable collections, or evaluation criteria, elluminate automatically creates new versions while preserving the original versions. This ensures reproducible experiments and enables controlled testing of improvements.

What Gets Versioned?

elluminate versions components that users create and modify:

  • Prompt Templates - Each edit creates a new version (v1, v2, v3...) with immutable content that you can select and compare
  • Evaluation Criteria - Criteria are versioned when you modify them, preserving previous versions for experiment consistency

Note: The system also tracks collection changes and rating model versions for experiment reproducibility, but these are handled automatically and don't require user management.

Managing Prompt Template Versions

Creating New Versions

When you edit an existing prompt template, elluminate prompts you to create a new version:

  1. Navigate to Templates - Go to your project's Templates page
  2. Select Template - Click on the template you want to modify
  3. Edit Content - Make changes to messages, placeholders, or response format
  4. Version Confirmation - elluminate displays a dialog asking if you want to create a new version
  5. Create Version - Confirm to save your changes as the next version (e.g., v1 → v2)

The version dialog explains that changes create new versions while preserving old ones, ensuring your historical experiments remain intact.

Viewing Version History

Each prompt template displays its version number prominently:

  • Template Cards - Show current version badge (e.g., "v3")
  • Template Details - Display version number in the header
  • Creation Date - Each version has its own timestamp for tracking changes over time

Template Versions

Template list showing multiple versions of the Support Bot template (v1, v2, v3, v4)

Version Selection in Components

When configuring experiments or other components, you can select specific template versions:

  • Experiment Creation - Choose which version to use for new experiments
  • Scheduled Experiments - Option to always use the latest version or pin to a specific version
  • Comparisons - Compare results across different template versions

Managing Evaluation Criteria Versions

Automatic Criteria Versioning

When you modify evaluation criteria, elluminate automatically creates new versions:

  • Preservation - Previous versions of criteria remain available for existing experiments
  • Consistency - Past experiment results always use the original criteria versions they were created with
  • Evolution Tracking - System maintains complete history of criteria changes for audit purposes

While criteria versions aren't displayed with badges like templates, the same versioning principles apply to ensure experiment reproducibility.

Version Tracking in Experiments

Experiments capture complete version snapshots for full reproducibility:

At Experiment Creation:

  • Prompt Template Version - Records exact version used (e.g., "Template v2")
  • Criteria Versions - Links to specific versions of evaluation criteria used
  • System State - Captures collection state and rating model version used

Version Consistency:

  • Immutable References - Experiments always reference the same versions they were created with
  • Historical Accuracy - Past experiment results never change when you create new versions
  • Reproduction Capability - You can always recreate the exact conditions of any experiment

Best Practices

Version Management Strategy

  • Descriptive Names - Use clear template names that indicate their purpose
  • Incremental Changes - Make small, targeted improvements between versions
  • Testing Before Production - Validate new versions with smaller experiments first
  • Documentation - Keep notes on what changed between versions

Experimental Workflow

  • Baseline Establishment - Start with a well-tested template version as your baseline
  • Controlled Testing - Test new versions against the same collection and criteria
  • Performance Comparison - Compare metrics across versions to identify improvements
  • Rollback Planning - Keep successful versions available for rollback if needed

Template Evolution

  • Incremental Changes - Make small, targeted improvements between versions
  • Testing New Versions - Validate improvements with smaller experiments first
  • Version Documentation - Keep notes on what changed between versions
  • Compatibility Planning - Ensure new templates work with existing collections

Version Troubleshooting

Common Versioning Issues

  • Missing Versions - Template versions are preserved even when not actively used
  • Experiment Consistency - Past experiments always use their original template versions
  • Compatibility Issues - New template versions must work with existing collections
  • Performance Changes - Different system versions may produce different results

Version Recovery

  • Historical Access - All versions remain accessible through the UI
  • Experiment Recreation - You can create new experiments using any historical version
  • Data Export - Version information is included in all data exports
  • Audit Trail - Version history provides complete change tracking

SDK Integration

For programmatic version management, use the elluminate SDK:

from elluminate import Client

client = Client()  # Uses ELLUMINATE_API_KEY env var

# Create new template version
template, created = client.prompt_templates.get_or_create(
    name="Customer Support Assistant",
    messages=[
        {"role": "system", "content": "You are a helpful customer support agent..."},
        {"role": "user", "content": "{{customer_query}}"}
    ]
)
print(f"Template: {template.name} v{template.version}")

# List all versions of a template
all_versions = client.prompt_templates.list(name="Customer Support Assistant")
for version in all_versions:
    print(f"Version {version.version}: Created {version.created_at}")

# Use specific version in experiment
experiment = client.experiments.create(
    name="Support Template v3 Evaluation",
    prompt_template=template,  # Uses specific version
    collection=test_collection,
    llm_config=model_config
)

For complete SDK documentation, see the API Reference.

Advanced Version Features

Scheduled Experiment Versioning

  • Latest Version Option - Scheduled experiments can automatically use newest template versions
  • Version Pinning - Or pin to specific versions for consistent evaluation
  • Change Detection - System tracks when scheduled experiments use new versions

Version-Based Analysis

  • Cross-Version Comparison - Compare experiment results across template versions
  • Performance Tracking - Monitor how template changes affect evaluation metrics
  • Regression Detection - Identify when new versions perform worse than previous ones

Understanding versioning enables confident iteration on your AI evaluation components while maintaining the reproducibility essential for systematic improvement.