[30f88f42] einfügen
einfügen
This commit is contained in:
@@ -17,45 +17,66 @@ MODEL_NAME = "gemini-2.0-flash" # High quality copy
|
||||
def generate_prompt(industry: Industry, persona: Persona) -> str:
|
||||
"""
|
||||
Builds the prompt for the AI to generate the marketing texts.
|
||||
Combines Industry context with Persona specific pains/gains.
|
||||
Combines Industry context with Persona specific pains/gains and Product Category.
|
||||
"""
|
||||
|
||||
# Safely load JSON lists
|
||||
# 1. Determine Product Context
|
||||
# We focus on the primary category for the general matrix,
|
||||
# but we inform the AI about the secondary option if applicable.
|
||||
primary_cat = industry.primary_category
|
||||
product_context = f"{primary_cat.name}: {primary_cat.description}" if primary_cat else "Intelligente Robotik-Lösungen"
|
||||
|
||||
# 2. Extract specific segments from industry pains/gains
|
||||
def extract_segment(text, marker):
|
||||
if not text: return ""
|
||||
import re
|
||||
segments = re.split(r'\[(.*?)\]', text)
|
||||
for i in range(1, len(segments), 2):
|
||||
if marker.lower() in segments[i].lower():
|
||||
return segments[i+1].strip()
|
||||
return text
|
||||
|
||||
industry_pains = extract_segment(industry.pains, "Primary Product")
|
||||
industry_gains = extract_segment(industry.gains, "Primary Product")
|
||||
|
||||
# 3. Handle Persona Data
|
||||
try:
|
||||
persona_pains = json.loads(persona.pains) if persona.pains else []
|
||||
persona_gains = json.loads(persona.gains) if persona.gains else []
|
||||
except:
|
||||
persona_pains = [persona.pains] if persona.pains else []
|
||||
persona_gains = [persona.gains] if persona.gains else []
|
||||
|
||||
industry_pains = industry.pains if industry.pains else "Allgemeine Effizienzprobleme"
|
||||
|
||||
prompt = f"""
|
||||
Du bist ein erfahrener B2B-Copywriter für Robotik-Lösungen (Reinigung, Transport, Service).
|
||||
Ziel: Erstelle personalisierte E-Mail-Textbausteine für einen Outreach.
|
||||
Du bist ein scharfsinniger B2B-Strategieberater und exzellenter Copywriter.
|
||||
Deine Aufgabe: Erstelle hochpräzise, "scharfe" Marketing-Textbausteine für einen Outreach an Entscheider.
|
||||
|
||||
--- KONTEXT ---
|
||||
ZIELBRANCHE: {industry.name}
|
||||
--- STRATEGISCHER RAHMEN ---
|
||||
ZIELUNTERNEHMEN (Branche): {industry.name}
|
||||
BRANCHEN-KONTEXT: {industry.description or 'Keine spezifische Beschreibung'}
|
||||
BRANCHEN-PAINS: {industry_pains}
|
||||
BRANCEHN-HERAUSFORDERUNGEN: {industry_pains}
|
||||
ANGESTREBTE MEHRWERTE: {industry_gains}
|
||||
|
||||
ZIELPERSON (ARCHETYP): {persona.name}
|
||||
PERSÖNLICHE PAINS (Herausforderungen):
|
||||
ZIELPERSON (Rolle): {persona.name}
|
||||
PERSÖNLICHER DRUCK (Pains der Rolle):
|
||||
{chr(10).join(['- ' + p for p in persona_pains])}
|
||||
|
||||
GEWÜNSCHTE GAINS (Ziele):
|
||||
GEWÜNSCHTE ERFOLGE (Gains der Rolle):
|
||||
{chr(10).join(['- ' + g for g in persona_gains])}
|
||||
|
||||
--- AUFGABE ---
|
||||
Erstelle ein JSON-Objekt mit genau 3 Textbausteinen.
|
||||
Tonalität: Professionell, lösungsorientiert, auf den Punkt. Keine Marketing-Floskeln ("Game Changer").
|
||||
ANGEBOTENE LÖSUNG (Produkt-Fokus):
|
||||
{product_context}
|
||||
|
||||
1. "subject": Betreffzeile (Max 6 Wörter). Muss neugierig machen und einen Pain adressieren.
|
||||
2. "intro": Einleitungssatz (1-2 Sätze). Verbinde die Branchen-Herausforderung mit der persönlichen Rolle des Empfängers. Zeige Verständnis für seine Situation.
|
||||
3. "social_proof": Ein Satz, der Vertrauen aufbaut. Nenne generische Erfolge (z.B. "Unternehmen in der {industry.name} senken so ihre Kosten um 15%"), da wir noch keine spezifischen Logos nennen dürfen.
|
||||
--- DEIN AUFTRAG ---
|
||||
Erstelle ein JSON-Objekt mit 3 Textbausteinen, die den persönlichen Druck des Empfängers mit den strategischen Notwendigkeiten seiner Branche und der technologischen Lösung verknüpfen.
|
||||
Tonalität: Wertschätzend, auf Augenhöhe, scharfsinnig, absolut NICHT marktschreierisch.
|
||||
|
||||
1. "subject": Eine Betreffzeile (Max 6 Wörter), die den Finger direkt in eine Wunde (Pain) legt oder ein hohes Ziel (Gain) verspricht.
|
||||
2. "intro": Einleitung (2-3 Sätze). Verbinde die spezifische Branchen-Herausforderung mit der persönlichen Verantwortung des Empfängers. Er muss sich sofort verstanden fühlen.
|
||||
3. "social_proof": Ein Beweissatz, der zeigt, dass diese Lösung in der Branche {industry.name} bereits reale Probleme (z.B. Personalmangel, Dokumentationsdruck) gelöst hat. Nenne keine konkreten Firmennamen, aber quantifizierbare Effekte.
|
||||
|
||||
--- FORMAT ---
|
||||
Respond ONLY with a valid JSON object. Do not add markdown formatting like ```json ... ```.
|
||||
Antworte NUR mit einem validen JSON-Objekt.
|
||||
Format:
|
||||
{{
|
||||
"subject": "...",
|
||||
|
||||
Reference in New Issue
Block a user