LLM-Input als strukturierten Envelope (JSON/YAML) statt Markdown-Headings #9
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Aus der Diskussion zu #8 (Zeitstempel der Transkripte lecken ins Dokument). Der LLM-Input wird in
server/src/analyze/prompt.rs::render_promptheute als Markdown gebaut: jede Aufnahme bekommt ein## <recorded_at>-Heading (RFC3339) vor dem Transkript, Trenner\n\n---\n\n. Der Zeitstempel wird von keinem System-Prompt genutzt und kann vom LLM in den Fliesstext-Output kopiert werden.#8 schliesst den konkreten Leak im bestehenden Markdown-Format. Dieses Issue ist die groessere, davon entkoppelte Design-Aenderung.
Idee
Den LLM-Input als strukturierten Envelope bereitstellen — ein Format, das jedes LLM kennt (JSON oder YAML) — statt als Markdown-Headings. Vorteile:
recorded_atsieht aus wie Metadaten, ein##-Heading sieht aus wie Dokumentstruktur. Echo-Wahrscheinlichkeit sinkt (reduziert, nicht eliminiert).text= Diktat,recorded_at= Metadaten).JSON vs. YAML (Trade-off)
\n,\"), schlechter lesbar fuers Modell.text: |): haelt Originaltext zeilenweise ohne Escaping, modell-freundlicher fuer Prosa. Nachteil: serverseitige Serialisierung fragiler (Indentation/Sonderzeichen), echte YAML-Lib noetig.Format-Entscheidung offen.
Wichtig: Prompt-Contract-Aenderung
Das ist KEIN reiner Refactor. Beide System-Prompts (
prompts/default_system_prompt.md,prompts/llama_system_prompt.md) muessen umgeschrieben werden (Input-Schema erklaeren). Prompt-Aenderungen haben schon still Inhalte geloescht (Mistral 24B, Case c414cf52). Daher PFLICHT vor Auslieferung:Empfehlung zum Timing
recorded_aterst dann in den Envelope aufnehmen, wenn eine Prompt-Regel ihn tatsaechlich konsumiert (z.B. Verlauf ueber Aufnahme-Daten). Solange ungenutzt: weglassen statt 'mitsenden aber nicht ausgeben'. D.h. dieses Issue lohnt sich voll, sobald die erste echte Zusatz-Metainfo gebraucht wird.Refs #8