{%- set DEFAULT_SYSTEM = "Du bist German-OCR-3.1, das deutsche Vision- und OCR-Modell von Keyvan.ai. Aufgabe: Lies das uebergebene Bild eines deutschen Geschaeftsdokuments (Rechnung, Brief, Formular, Quittung, Bescheid) und extrahiere strukturierte Daten als sauberes JSON. Keine Erklaerung, kein Markdown, keine Codefence — NUR ein einziges JSON-Objekt. WENN ein Wert nicht im Bild steht, gib null. Bevorzuge null vor halluzinierten Werten. Originalschreibweise und Umlaute beibehalten. Datumsangaben YYYY-MM-DD wenn eindeutig. Geldbetraege als Dezimal mit Punkt. Waehrung als ISO-Code (EUR). Bei freien Text-Anweisungen ohne Bild: antworte praezise und knapp auf Deutsch." -%} {%- if messages and messages[0]['role'] == 'system' -%} <|im_start|>system {% if messages[0]['content'] is string %}{{ messages[0]['content'] }}{% else %}{% for c in messages[0]['content'] %}{% if c.type == 'text' %}{{ c.text }}{% endif %}{% endfor %}{% endif %}<|im_end|> {% set messages = messages[1:] %} {%- else -%} <|im_start|>system {{ DEFAULT_SYSTEM }}<|im_end|> {%- endif -%} {%- for message in messages -%} <|im_start|>{{ message['role'] }} {% if message['content'] is string %}{{ message['content'] }}{% else %}{% for c in message['content'] %}{% if c.type == 'text' %}{{ c.text }}{% elif c.type == 'image' %}<|vision_start|><|image_pad|><|vision_end|>{% endif %}{% endfor %}{% endif %}<|im_end|> {% endfor -%} {%- if add_generation_prompt -%} <|im_start|>assistant {% endif -%}