Social-Media-Texte pro Antrag per LLM generieren #133

Closed
opened 2026-04-13 10:29:58 +02:00 by tobias · 1 comment
Owner

Kontext

Aktuell werden Share-Texte für Threads/X/Mastodon clientseitig aus Score+Titel+Empfehlung zusammengebaut. Das ergibt generische Texte. Besser: das LLM generiert beim Analysieren einen spezifischen, schlagkräftigen Social-Text pro Medium.

Ziel

Pro Assessment werden zusätzliche Felder gespeichert:

  • share_threads — optimiert für Threads (max 500 Zeichen, Emojis, CTA, Hashtags)
  • share_twitter — optimiert für X/Twitter (max 280 Zeichen, prägnant)
  • share_mastodon — optimiert für Mastodon (max 500 Zeichen, sachlicher Ton)

Implementierung

  • Prompt erweitern: nach der GWÖ-Analyse einen Social-Block generieren lassen
  • DB: 3 neue TEXT-Spalten in assessments
  • UI: Share-Buttons nutzen die gespeicherten Texte statt clientseitiger Generierung
  • Fallback: wenn Feld leer (ältere Assessments) → clientseitige Generierung wie bisher
## Kontext Aktuell werden Share-Texte für Threads/X/Mastodon clientseitig aus Score+Titel+Empfehlung zusammengebaut. Das ergibt generische Texte. Besser: das LLM generiert beim Analysieren einen spezifischen, schlagkräftigen Social-Text pro Medium. ## Ziel Pro Assessment werden zusätzliche Felder gespeichert: - `share_threads` — optimiert für Threads (max 500 Zeichen, Emojis, CTA, Hashtags) - `share_twitter` — optimiert für X/Twitter (max 280 Zeichen, prägnant) - `share_mastodon` — optimiert für Mastodon (max 500 Zeichen, sachlicher Ton) ## Implementierung - [ ] Prompt erweitern: nach der GWÖ-Analyse einen Social-Block generieren lassen - [ ] DB: 3 neue TEXT-Spalten in assessments - [ ] UI: Share-Buttons nutzen die gespeicherten Texte statt clientseitiger Generierung - [ ] Fallback: wenn Feld leer (ältere Assessments) → clientseitige Generierung wie bisher
Author
Owner

Umgesetzt + deployed. Backend war schon fertig (Modell-Felder share_threads/twitter/mastodon seit längerem live, analyzer-Prompt fordert sie an, DB persistiert sie). Es fehlte nur der UI-Swap.

Änderung: Neue JS-Funktion _getShareText(item, platform) in app/templates/index.html:

  • Nimmt pro Plattform den gespeicherten LLM-Text (item.shareTwitter / shareThreads / shareMastodon)
  • Fallback auf bisherige _socialText(item)-Logik wenn Feld leer (ältere Assessments)
  • Char-Limit-Guard: trunkiert auf 240 (Twitter) / 460 (Threads/Mastodon) wenn LLM überlang geliefert hat — reserviert Platz für angehängten URL

Alle drei Share-Buttons (𝕏-Link, Threads-Link, Mastodon-Funktion) rufen jetzt _getShareText().

Live-Verifikation: curl https://gwoe.toppyr.de/ enthält 4× _getShareText.

⏸ Annahme (async): Mastodon-Fallback nutzt jetzt das Lang-Format (_socialText) statt des alten Kurz-Formats (_shareText). Default-Annahme: ein konsistentes Fallback-Format über alle Plattformen ist besser als plattform-spezifische Unterschiede. Falls das dir auffällt und nicht gewünscht: Mini-Fix (3 Zeichen) jederzeit möglich. Ich arbeite weiter.

Umgesetzt + deployed. Backend war schon fertig (Modell-Felder `share_threads/twitter/mastodon` seit längerem live, analyzer-Prompt fordert sie an, DB persistiert sie). Es fehlte nur der UI-Swap. **Änderung:** Neue JS-Funktion `_getShareText(item, platform)` in `app/templates/index.html`: - Nimmt pro Plattform den gespeicherten LLM-Text (`item.shareTwitter` / `shareThreads` / `shareMastodon`) - Fallback auf bisherige `_socialText(item)`-Logik wenn Feld leer (ältere Assessments) - Char-Limit-Guard: trunkiert auf 240 (Twitter) / 460 (Threads/Mastodon) wenn LLM überlang geliefert hat — reserviert Platz für angehängten URL Alle drei Share-Buttons (𝕏-Link, Threads-Link, Mastodon-Funktion) rufen jetzt `_getShareText()`. Live-Verifikation: `curl https://gwoe.toppyr.de/` enthält 4× `_getShareText`. **⏸ Annahme (async):** Mastodon-Fallback nutzt jetzt das Lang-Format (`_socialText`) statt des alten Kurz-Formats (`_shareText`). Default-Annahme: ein konsistentes Fallback-Format über alle Plattformen ist besser als plattform-spezifische Unterschiede. Falls das dir auffällt und nicht gewünscht: Mini-Fix (3 Zeichen) jederzeit möglich. Ich arbeite weiter.
Sign in to join this conversation.
No description provided.