Fallback wenn keine Referenzen vorhanden

This commit is contained in:
2025-07-31 09:30:51 +00:00
parent 2719985881
commit cf2c78dc36

View File

@@ -42,35 +42,73 @@ def call_openai_with_retry(prompt, max_retries=3, delay=5):
return None
def build_prompt(branch_name, branch_data, position_name, position_data):
# ... (Diese Funktion bleibt unverändert, v4.2 ist die korrekte) ...
"""
Baut den finalen Master-Prompt (v4.3) dynamisch zusammen.
Nutzt eine Fallback-Logik, wenn keine branchenspezifischen Referenzen vorhanden sind.
"""
branch_pain_points = "\n".join([f"- {p}" for p in branch_data.get('pain_points', [])])
position_pain_points = "\n".join([f"- {p}" for p in position_data.get('pains_DE', [])])
# --- Dynamischer Teil: Referenzen und Expertise-Formulierung ---
specific_references = branch_data.get('references_DE')
# Prüfen, ob echte Referenzen vorhanden sind (nicht leer und nicht der Platzhalter)
if specific_references and '[HIER' not in specific_references:
references_for_prompt = specific_references
expertise_instruction = (
"- **Satz 2 (Branchen-Expertise):** Betone unsere Erfahrung in der Branche. **Vermeide das Wort 'Branche'.** "
f"Formuliere stattdessen spezifisch, z.B. 'Durch die Zusammenarbeit sind wir mit den spezifischen Anforderungen von {branch_name}-Unternehmen bestens vertraut.'"
)
else:
# Fallback-Logik
references_for_prompt = ", ".join(Config.FALLBACK_REFERENCES)
expertise_instruction = (
"- **Satz 2 (Branchen-Expertise):** Formuliere allgemeiner. Betone unsere branchenübergreifende Expertise in der Optimierung komplexer Serviceprozesse. "
"Formuliere z.B. 'Unsere Erfahrung zeigt, dass die grundlegenden Herausforderungen in der Einsatzplanung oft branchenübergreifend ähnlich sind.'"
)
# --- Zusammensetzen des finalen Prompts ---
return "\n".join([
"Du bist ein kompetenter Lösungsberater und brillanter Texter...",
"AUFGABE: Erstelle 3 Textblöcke (Subject, Introduction_Textonly, Industry_References_Textonly)...",
# ... (der Rest des Prompts v4.2)
"Du bist ein kompetenter Lösungsberater und brillanter Texter...", # Gekürzt zur Übersicht
"AUFGABE: Erstelle 3 Textblöcke (Subject, Introduction_Textonly, Industry_References_Textonly) für eine E-Mail.",
"\n--- KONTEXT ---",
f"ZIELBRANCHE: {branch_name}",
f"BRANCHEN-HERAUSFORDERUNGEN (PAIN POINTS):\n{branch_pain_points}",
f"\nANSPRECHPARTNER: {position_name}",
f"PERSÖNLICHE HERAUSFORDERUNGEN DES ANSPRECHPARTNERS (PAIN POINTS):\n{position_pain_points}",
f"\nREFERENZKUNDEN (Rohdaten):\n{branch_data.get('references_DE', 'Keine spezifischen Referenzen vorhanden.')}",
f"\nREFERENZKUNDEN (Rohdaten):\n{references_for_prompt}",
"\n--- DEINE AUFGABE ---",
"1. **Subject:** ...",
"2. **Introduction_Textonly:** ...",
"3. **Industry_References_Textonly:** ...",
"\n--- BEISPIEL FÜR EINEN PERFEKTEN OUTPUT (Kombination Anlagenbau & IT) ---",
"1. **Subject:** Formuliere eine kurze Betreffzeile (max. 5 Wörter). Richte sie **direkt an einem der persönlichen Pain Points** des Ansprechpartners.",
"2. **Introduction_Textonly:** Formuliere einen Einleitungstext (2 Sätze).",
" - **Satz 1 (Die Brücke):** Knüpfe an die (uns unbekannte) operative Herausforderung an. Beschreibe subtil den Nutzen einer Lösung...",
" - **Satz 2 (Die Relevanz):** Schaffe die Relevanz für die Zielperson, indem du das Thema mit einem ihrer persönlichen Pain Points verknüpfst.",
"3. **Industry_References_Textonly:** Formuliere einen **strategischen Referenz-Block (ca. 2-3 Sätze)** nach folgendem Muster:",
" - **Satz 1 (Social Proof):** Beginne direkt mit den Referenzkunden. Integriere **alle** genannten Referenzen und quantitative Erfolge elegant.",
expertise_instruction, # HIER WIRD DIE DYNAMISCHE ANWEISUNG EINGEFÜGT
" - **Satz 3 (Rollen-Relevanz):** Schaffe den direkten Nutzen für die Zielperson. Formuliere z.B. 'Dieser Wissensvorsprung hilft uns, Ihre [persönlicher Pain Point der Rolle] besonders effizient zu lösen.'",
"\n--- BEISPIEL FÜR EINEN PERFEKTEN OUTPUT (MIT SPEZIFISCHEN REFERENZEN) ---",
'''
{
"Subject": "Nahtlose Systemintegration",
"Introduction_Textonly": "Genau hier setzt die digitale Unterstützung Ihrer Techniker an, um Serviceberichte direkt vor Ort zu erfassen und die Projektabrechnung zu beschleunigen. Für Sie als IT-Leiter ist dabei die nahtlose und sichere Integration in Ihre bestehende ERP-Landschaft von entscheidender Bedeutung.",
"Industry_References_Textonly": "Ihre Marktbegleiter wie Jungheinrich mit weltweit über 4.000 Technikern und Christ Wash Systems, wo 10 % Fahrtzeit eingespart wurde, profitieren bereits von unseren Lösungen. Durch die langjährige Zusammenarbeit sind wir mit den spezifischen Anforderungen von Anlagenbau-Unternehmen, wie der Anbindung an komplexe ERP-Systeme, bestens vertraut. Dieser Wissensvorsprung hilft uns, Ihre Integrations-Herausforderungen besonders effizient und sicher zu lösen."
"Introduction_Textonly": "Genau hier setzt die digitale Unterstützung Ihrer Techniker an... Für Sie als IT-Leiter ist dabei die nahtlose und sichere Integration... von entscheidender Bedeutung.",
"Industry_References_Textonly": "Ihre Marktbegleiter wie Jungheinrich mit weltweit über 4.000 Technikern und Christ Wash Systems... profitieren bereits... Durch die langjährige Zusammenarbeit sind wir mit den spezifischen Anforderungen von Anlagenbau-Unternehmen... bestens vertraut. Dieser Wissensvorsprung hilft uns, Ihre Integrations-Herausforderungen... zu lösen."
}
''',
"\n--- BEISPIEL FÜR EINEN PERFEKTEN OUTPUT (MIT FALLBACK-REFERENZEN) ---",
'''
{
"Subject": "Kostenkontrolle im Service",
"Introduction_Textonly": "Genau bei der Optimierung dieser Serviceprozesse können erhebliche Effizienzgewinne erzielt werden. Für Sie als Finanzleiter ist dabei die Sicherstellung der Profitabilität bei gleichzeitiger Kostentransparenz von zentraler Bedeutung.",
"Industry_References_Textonly": "Namhafte Unternehmen wie Jungheinrich, Vivawest und TK Elevators profitieren bereits von unseren Lösungen. Unsere Erfahrung zeigt, dass die grundlegenden Herausforderungen in der Einsatzplanung oft branchenübergreifend ähnlich sind. Dieser Wissensvorsprung hilft uns, Ihre Ziele bei der Kostenkontrolle und Profitabilitätssteigerung besonders effizient zu unterstützen."
}
''',
"\nErstelle jetzt das JSON-Objekt für die oben genannte Kombination aus Branche und Ansprechpartner."
])
def main(specific_branch=None):
"""Hauptfunktion zur Generierung der Marketing-Texte."""