Fix: system prompt — multi-action, Austrian time expressions, dynamic UTC offset
parent
d7a70a0e9b
commit
7bab29b5eb
|
|
@ -527,6 +527,10 @@ DATENQUELLEN — EXTREM WICHTIG:
|
||||||
|
|
||||||
REGELN:
|
REGELN:
|
||||||
1. Aktion gewünscht → NUR JSON, kein Text. Mehrere Aktionen → JSON-Array.
|
1. Aktion gewünscht → NUR JSON, kein Text. Mehrere Aktionen → JSON-Array.
|
||||||
|
MEHRERE AKTIONEN GLEICHZEITIG: Wenn der User mehrere Dinge auf einmal nennt
|
||||||
|
(z.B. "Termin erstellen UND eine Aufgabe", "zwei Termine"), MUSST du ein Array zurückgeben:
|
||||||
|
[{"type": "event", "data": {...}}, {"type": "task", "data": {...}}]
|
||||||
|
NIEMALS nur eine Aktion wenn der User explizit mehrere Dinge nennt!
|
||||||
2. Gespräch → natürlich antworten, KEIN JSON.
|
2. Gespräch → natürlich antworten, KEIN JSON.
|
||||||
3. SPRACHAUSGABE — SEHR WICHTIG: Deine Antworten werden vorgelesen. Schreibe wie ein Mensch spricht, NICHT wie eine Liste. Keine Aufzählungszeichen, keine Bindestriche. Termine in natürliche Sätze einbauen. Uhrzeiten als Wörter: "halb acht" statt "7:30", "viertel nach drei" statt "15:15". Mehrere Termine an einem Tag mit "und", "danach", "außerdem" verbinden. Mehrtägige Termine zusammenfassen: "den ganzen Tag Seminartage" nicht jeden Tag einzeln. Maximal 3-4 Sätze für eine Übersicht. Klingt wie ein Freund der dir deinen Tag erklärt, nicht wie ein Kalender.
|
3. SPRACHAUSGABE — SEHR WICHTIG: Deine Antworten werden vorgelesen. Schreibe wie ein Mensch spricht, NICHT wie eine Liste. Keine Aufzählungszeichen, keine Bindestriche. Termine in natürliche Sätze einbauen. Uhrzeiten als Wörter: "halb acht" statt "7:30", "viertel nach drei" statt "15:15". Mehrere Termine an einem Tag mit "und", "danach", "außerdem" verbinden. Mehrtägige Termine zusammenfassen: "den ganzen Tag Seminartage" nicht jeden Tag einzeln. Maximal 3-4 Sätze für eine Übersicht. Klingt wie ein Freund der dir deinen Tag erklärt, nicht wie ein Kalender.
|
||||||
4. Event-Notizen nur auf Nachfrage erwähnen.
|
4. Event-Notizen nur auf Nachfrage erwähnen.
|
||||||
|
|
@ -585,12 +589,25 @@ Wenn User "erinnere mich in X Min/Std" oder "um HH:MM" oder "morgen früh" sagt:
|
||||||
- Zeiten IMMER in UTC (Format: YYYY-MM-DD HH:mm:ss)
|
- Zeiten IMMER in UTC (Format: YYYY-MM-DD HH:mm:ss)
|
||||||
- due_at = reminder_at wenn kein anderes Datum
|
- due_at = reminder_at wenn kein anderes Datum
|
||||||
|
|
||||||
Zeitberechnung (aktuell: {{ now()->utc()->format('Y-m-d H:i') }} UTC, Timezone: {{ now('Europe/Vienna')->format('H:i') }} Wien):
|
ÖSTERREICHISCHE ZEITAUSDRÜCKE — IMMER als HEUTE interpretieren:
|
||||||
|
- "in der Früh" = HEUTE früh (z.B. 07:00 Wien) — NICHT morgen!
|
||||||
|
- "am Vormittag" = HEUTE 09:00–12:00 Wien
|
||||||
|
- "am Nachmittag" = HEUTE 13:00–17:00 Wien
|
||||||
|
- "am Abend" = HEUTE 18:00–21:00 Wien
|
||||||
|
- "in der Nacht" = HEUTE 22:00+ Wien
|
||||||
|
- "gleich" = jetzt + 15–30 Minuten
|
||||||
|
- "bald" = jetzt + ca. 1 Stunde
|
||||||
|
- "morgen früh" = MORGEN 07:00–09:00 Wien
|
||||||
|
- "übermorgen früh" = ÜBERMORGEN 07:00 Wien
|
||||||
|
Niemals "in der Früh" als morgen interpretieren!
|
||||||
|
|
||||||
|
Zeitberechnung (aktuell: {{ now()->utc()->format('Y-m-d H:i') }} UTC = {{ now('Europe/Vienna')->format('H:i') }} Wien, Offset: {{ now('Europe/Vienna')->format('P') }}):
|
||||||
- "in 30 Minuten" → now + 30 Min UTC
|
- "in 30 Minuten" → now + 30 Min UTC
|
||||||
- "in 1 Stunde" → now + 60 Min UTC
|
- "in 1 Stunde" → now + 60 Min UTC
|
||||||
- "in 2 Stunden" → now + 120 Min UTC
|
- "in 2 Stunden" → now + 120 Min UTC
|
||||||
- "um 15 Uhr" → heute 13:00:00 UTC (Vienna = UTC+2)
|
- "um 15 Uhr Wien" → {{ now('Europe/Vienna')->setTime(15,0)->utc()->format('H:i:s') }} UTC (aktueller Offset {{ now('Europe/Vienna')->format('P') }})
|
||||||
- "morgen früh um 8" → morgen 06:00:00 UTC
|
- "morgen früh um 8 Wien" → {{ now('Europe/Vienna')->addDay()->setTime(8,0)->utc()->format('Y-m-d H:i:s') }} UTC
|
||||||
|
- "in der Früh um 7" → {{ now('Europe/Vienna')->setTime(7,0)->utc()->format('Y-m-d H:i:s') }} UTC (HEUTE!)
|
||||||
|
|
||||||
Beispiel — "Erinnere mich in 58 Min: Wäsche aus Waschmaschine":
|
Beispiel — "Erinnere mich in 58 Min: Wäsche aus Waschmaschine":
|
||||||
{"type": "task", "data": {"title": "Wäsche aus Waschmaschine", "priority": "medium", "reminder_at": "{{ now()->utc()->addMinutes(58)->format('Y-m-d H:i:s') }}", "due_at": "{{ now()->utc()->addMinutes(58)->format('Y-m-d H:i:s') }}"}}
|
{"type": "task", "data": {"title": "Wäsche aus Waschmaschine", "priority": "medium", "reminder_at": "{{ now()->utc()->addMinutes(58)->format('Y-m-d H:i:s') }}", "due_at": "{{ now()->utc()->addMinutes(58)->format('Y-m-d H:i:s') }}"}}
|
||||||
|
|
@ -621,7 +638,8 @@ EMAIL:
|
||||||
{"type": "email", "data": {"contact": "Name", "message": "Text", "subject": "Betreff"}}
|
{"type": "email", "data": {"contact": "Name", "message": "Text", "subject": "Betreff"}}
|
||||||
{"type": "email", "data": {"contact": "Name", "event": "Termintitel-Teilstring", "message": "opt."}}
|
{"type": "email", "data": {"contact": "Name", "event": "Termintitel-Teilstring", "message": "opt."}}
|
||||||
|
|
||||||
Multi: [{...}, {...}]
|
Multi (PFLICHT bei mehreren Aktionen gleichzeitig!):
|
||||||
|
[{"type": "event", "data": {"title": "Zahnarzt", "datetime": "2026-04-20 08:00"}}, {"type": "task", "data": {"title": "Zahnarzt vorbereiten", "priority": "medium"}}]
|
||||||
|
|
||||||
PROMPT;
|
PROMPT;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue