improve(email): rewrite digest prompt for context-aware summaries
Rigid bullet schema worked for event emails but stripped all narrative context from argumentative/organizational messages. New prompt adapts structure to email type and prioritizes completeness over brevity. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,35 +35,27 @@ def generate_summary(filepath: str, subject: str, from_full: str, date: str) ->
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f"[Eroare la citirea fișierului: {e}]"
|
return f"[Eroare la citirea fișierului: {e}]"
|
||||||
|
|
||||||
prompt = f"""Mai jos este conținutul unui email. Generează un rezumat pentru WhatsApp.
|
prompt = f"""Mai jos este conținutul unui email. Scrie un rezumat pentru WhatsApp care să transmită fidel esența mesajului.
|
||||||
|
|
||||||
EMAIL:
|
EMAIL:
|
||||||
{email_content}
|
{email_content}
|
||||||
|
|
||||||
Format obligatoriu (plain text, fără markdown):
|
Instrucțiuni:
|
||||||
|
- Începe cu header-ul fix (fără modificări):
|
||||||
SUBIECT: {subject}
|
SUBIECT: {subject}
|
||||||
De la: {from_full}
|
De la: {from_full}
|
||||||
Primit: {date}
|
Primit: {date}
|
||||||
---
|
---
|
||||||
[Rezumat compact dar complet — include TOATE detaliile importante:
|
- După header, scrie rezumatul adaptat la tipul emailului:
|
||||||
- ce se întâmplă / despre ce e vorba
|
* Dacă e o comunicare organizațională, dezbatere sau poziție — păstrează firul argumentativ, pozițiile exprimate, contextul și mizele. Nu reduce totul la bullet-uri seci. Un paragraf coerent e mai bun decât o listă fără context.
|
||||||
- cine organizează / cine trimite
|
* Dacă e un eveniment sau invitație — include: ce, când, unde, cine organizează, ce trebuie să facă cititorul.
|
||||||
- când (date, deadline-uri, perioade)
|
* Dacă e o notificare sau actualizare — ce s-a schimbat și ce impact are.
|
||||||
- unde (locație dacă există)
|
- Păstrează detaliile care contează: cine susține, ce s-a propus, care e miza, ce acțiune se cere.
|
||||||
- ce trebuie să facă cititorul (acțiune clară)
|
- Nu omite informații importante în numele conciziei. Mai bine mai lung și complet decât scurt și gol de context.
|
||||||
- condiții de participare (vârstă, criterii etc.) dacă există
|
- Dacă există linkuri acționabile (formulare, documente, comparații), adaugă o secțiune LINKURI la final.
|
||||||
- ce este inclus/oferit dacă e relevant
|
- Nu adăuga secțiuni goale sau care nu se aplică emailului.
|
||||||
Fiecare punct pe linie separată. Fără redundanță, fără filler.]
|
- Plain text, fără markdown. Fără emoji dacă nu sunt în original.
|
||||||
|
- Răspunde DOAR cu rezumatul, nimic altceva."""
|
||||||
LINKURI:
|
|
||||||
[Listează TOATE linkurile acționabile: formulare, înscrieri, site-uri, documente, social media]
|
|
||||||
[Format: "Descriere scurtă: https://..." — câte un link per linie]
|
|
||||||
[Dacă nu există linkuri, omite secțiunea]
|
|
||||||
|
|
||||||
[Semnătura expeditorului din email pe ultima linie după —]
|
|
||||||
|
|
||||||
Fără emoji dacă nu sunt în original. Răspunde DOAR cu rezumatul, nimic altceva."""
|
|
||||||
|
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
["claude", "--print", prompt],
|
["claude", "--print", prompt],
|
||||||
|
|||||||
Reference in New Issue
Block a user