Template Rendering

Template Rendering Guide mit Jinja2 für dynamische Konfiguration in Open Ticket AI mit Variablen, Konditionalen, Schleifen und benutzerdefinierten Extensions.

Template Rendering

Open Ticket AI verwendet Jinja2 für dynamisches Template Rendering in Konfigurationsdateien und Textgenerierung.

Jinja2 Template System

Jinja2 bietet:

  • Variable Substitution
  • Konditionale Logik
  • Schleifen und Filter
  • Benutzerdefinierte Extensions

Template Expressions in Konfiguration

Verwende Templates in YAML Konfiguration:

pipes:
  - pipe_name: add_note
    note_text: 'Classified as {{ context.queue }} with priority {{ context.priority }}'

Benutzerdefinierte Template Extensions

Open Ticket AI bietet benutzerdefinierte Jinja2 Extensions:

Context Access

Greife direkt auf Pipeline Context in Templates zu:

{{ context.ticket.id }}
{{ context.classification_result.confidence }}

Filter

Benutzerdefinierte Filter für häufige Operationen:

{{ ticket.created_at | format_date }}
{{ text | truncate(100) }}
{{ value | default("N/A") }}

Funktionen

Helper-Funktionen verfügbar in Templates:

{{ now() }}
{{ random_id() }}
{{ format_priority(value) }}

Template Context und Variablen

Der Template Context umfasst:

  • Pipeline Execution Context
  • Environment Variablen
  • Konfigurationswerte
  • Benutzerdefinierte Variablen

Examples

Konditionale Note

note_text: >
  {% if context.priority == 'high' %}
  URGENT: This ticket requires immediate attention.
  {% else %}
  Standard priority ticket.
  {% endif %}

Dynamische Queue Assignment

queue: >
  {% if 'billing' in context.ticket.subject.lower() %}
  Billing
  {% elif 'technical' in context.ticket.subject.lower() %}
  Technical Support
  {% else %}
  General
  {% endif %}

Loop Through Results

summary: >
  Processed {{ context.tickets | length }} tickets:
  {% for ticket in context.tickets %}
  - Ticket #{{ ticket.id }}: {{ ticket.status }}
  {% endfor %}

Security Considerations

  • Templates werden in einer sandboxed Environment ausgeführt
  • Gefährliche Operationen sind deaktiviert
  • User Input wird automatisch escaped
  • Verwende den safe Filter nur für trusted Content