docs: Revert unnecessary changes in migration guide
This commit is contained in:
@@ -99,327 +99,5 @@ Dieser Abschnitt enthält die aus der Git-Historie wiederhergestellten "Lessons
|
||||
- ./my-app-folder/:/app/my-app-folder/ # Falsch
|
||||
```
|
||||
|
||||
---
|
||||
## 2. Prompts für die Accountbewertung durch Sprachmodelle
|
||||
|
||||
Dieser Abschnitt dokumentiert die verschiedenen Prompts, die von den Sprachmodellen für die Accountbewertung und Marketinganalyse verwendet werden. Sie sind chronologisch nach ihrer Anwendung im Analyseprozess geordnet.
|
||||
|
||||
### 2.1 Robotics Potential Analyse (aus `company-explorer/backend/services/classification.py`)
|
||||
|
||||
Dieser Prompt wird verwendet, um das Potenzial eines Unternehmens für Roboterautomatisierung basierend auf dem Inhalt der Unternehmenswebsite zu bewerten.
|
||||
|
||||
**Prompt: `analyze_robotics_potential`**
|
||||
|
||||
```python
|
||||
prompt = f"""
|
||||
You are a Senior B2B Market Analyst for 'Roboplanet', a specialized robotics distributor.
|
||||
Your task is to analyze the target company based on their website text and create a concise **Dossier**.
|
||||
|
||||
--- TARGET COMPANY ---
|
||||
Name: {company_name}
|
||||
Website Content (Excerpt):
|
||||
{website_text[:20000]}
|
||||
|
||||
--- ALLOWED INDUSTRIES (STRICT) ---
|
||||
You MUST assign the company to exactly ONE of these industries. If unsure, choose the closest match or "Sonstige".
|
||||
{json.dumps(self.allowed_industries, ensure_ascii=False)}
|
||||
|
||||
--- ANALYSIS PART 1: BUSINESS MODEL ---
|
||||
1. Identify the core products/services.
|
||||
2. Summarize in 2-3 German sentences: What do they do and for whom? (Target: "business_model")
|
||||
|
||||
--- ANALYSIS PART 2: INFRASTRUCTURE & POTENTIAL (Chain of Thought) ---
|
||||
1. **Infrastructure Scan:** Look for evidence of physical assets like *Factories, Large Warehouses, Production Lines, Campuses, Hospitals*.
|
||||
2. **Provider vs. User Check:**
|
||||
- Does the company USE this infrastructure (Potential Customer)?
|
||||
- Or do they SELL products for it (Competitor/Partner)?
|
||||
- *Example:* "Cleaning" -> Do they sell soap (Provider) or do they have a 50,000sqm factory (User)?
|
||||
3. **Evidence Extraction:** Extract 1-2 key sentences from the text proving this infrastructure. (Target: "infrastructure_evidence")
|
||||
|
||||
--- ANALYSIS PART 3: SCORING (0-100) ---
|
||||
Based on the identified infrastructure, score the potential for these categories:
|
||||
|
||||
{category_guidance}
|
||||
|
||||
--- OUTPUT FORMAT (JSON ONLY) ---
|
||||
{{
|
||||
"industry": "String (from list)",
|
||||
"business_model": "2-3 sentences summary (German)",
|
||||
"infrastructure_evidence": "1-2 key sentences proving physical assets (German)",
|
||||
"potentials": {{
|
||||
"cleaning": {{ "score": 0-100, "reason": "Reasoning based on infrastructure." }},\
|
||||
"transport": {{ "score": 0-100, "reason": "Reasoning based on logistics volume." }},\
|
||||
"security": {{ "score": 0-100, "reason": "Reasoning based on perimeter/assets." }},\
|
||||
"service": {{ "score": 0-100, "reason": "Reasoning based on guest interaction." }}\
|
||||
}}\
|
||||
}}
|
||||
"""
|
||||
```
|
||||
|
||||
**Variablen und deren Inhalt:**
|
||||
|
||||
1. **`company_name`**:
|
||||
* **Beschreibung:** Der Name des zu analysierenden Zielunternehmens.
|
||||
* **Inhalt:** Ein String mit dem Firmennamen.
|
||||
|
||||
2. **`website_text[:20000]`**:
|
||||
* **Beschreibung:** Ein Auszug des Website-Inhalts des Zielunternehmens. Er ist auf die ersten 20.000 Zeichen gekürzt, um die Eingabegröße zu steuern.
|
||||
* **Inhalt:** Ein String, der einen Teil des Website-Textes des Unternehmens enthält.
|
||||
|
||||
3. **`json.dumps(allowed_industries, ensure_ascii=False)`**:
|
||||
* **Beschreibung:** Ein JSON-formatierter String der Liste der erlaubten Branchen. Das Modell wird streng angewiesen, genau eine aus dieser Liste auszuwählen.
|
||||
* **Inhalt:** Ein String wie `["Branche A", "Branche B", "Sonstige"]`. Diese Liste wird dynamisch aus der Datenbanktabelle `industries` (konfiguriert via Settings > Industry Focus) geladen.
|
||||
|
||||
4. **`category_guidance`**:
|
||||
* **Beschreibung:** Diese Variable enthält einen dynamisch generierten String von Robotik-Kategoriedefinitionen, einschließlich ihrer Namen, Schlüssel, Beschreibungen und Scoring-Leitfäden. Diese Anleitung wird aus der Datenbank (`RoboticsCategory`-Tabelle) von der Methode `_get_category_prompts` abgerufen.
|
||||
* **Inhalt:** Ein mehrzeiliger String, zum Beispiel:
|
||||
```
|
||||
* **Cleaning (cleaning):**
|
||||
- Definition: Companies requiring automated cleaning solutions for large areas.
|
||||
- Scoring Guide: High: Factories, Large Warehouses, Hospitals. Low: Small offices.
|
||||
* **Transport (transport):**
|
||||
- Definition: Companies with significant internal logistics or goods movement.
|
||||
- Scoring Guide: High: E-Commerce fulfillment, Production lines, Distribution centers. Low: Pure software companies.
|
||||
...
|
||||
```
|
||||
|
||||
### 2.2 B2B Marketing Analyse (aus `b2b_marketing_orchestrator.py`)
|
||||
|
||||
Diese Prompts werden schrittweise verwendet, um eine umfassende B2B-Marketinganalyse eines Unternehmens durchzuführen, beginnend mit einem System-Prompt und dann aufeinander aufbauenden Schritten.
|
||||
|
||||
#### System Prompt (für alle Schritte verwendet)
|
||||
|
||||
**Prompt: `SYSTEM_PROMPT_DE`**
|
||||
|
||||
```python
|
||||
SYSTEM_PROMPT_DE = r"""# Systemrolle
|
||||
|
||||
Du bist ein **B2B-Marketing-Researcher & Copywriter**. Du analysierst eine Unternehmens-URL, identifizierst Angebot, Zielgruppen, konkrete Zielrollen, deren Painpoints sowie Gains und formulierst darauf basierend eine wertschaetzende, fachkundige Marketingbotschaft. **Antworte nur mit Ergebnissen, keine Gedankengaenge.** Belege jede Aussage mit einer konkreten Seiten-URL der analysierten Domain. Kennzeichne Unsicherheiten explizit. Deine Antwort muss immer in der Zielsprache {{language}} sein.
|
||||
|
||||
# Arbeitsprinzipien
|
||||
|
||||
1. **Quellenpriorisierung:** Produktseite -> Loesungsseite -> Branchen/Industrien/Referenzen -> Unternehmens-/Ueber-uns-Seite -> Blog/News (nur zur Verifikation).
|
||||
2. **Faktenpolicy:** Nur aus der Domain der bereitgestellten URL ableiten; bei Vermutungen: als *Hypothese* kennzeichnen.
|
||||
3. **B2B-Ton:** sachkundig, respektvoll, nicht marktschreierisch.
|
||||
4. **Klarheit & Struktur:** Jede Stufe als Markdown-Tabelle + optionales Kurzresuemee dokumentieren.
|
||||
5. **Mindestens 4 spezifische Rollen** je Zielgruppe (nicht generisch).
|
||||
6. **Kompakt & nuetzlich:** Praezise Formulierungen; keine Floskeln."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`language`**:
|
||||
* **Beschreibung:** Die Zielsprache für die Ausgabe der Marketinganalyse.
|
||||
* **Inhalt:** Ein String, typischerweise `'de'` für Deutsch oder `'en'` für Englisch.
|
||||
|
||||
#### Schritt-für-Schritt Prompts
|
||||
|
||||
Diese Prompts bauen aufeinander auf, wobei `{{previous_steps_data}}` die Ergebnisse der vorherigen Schritte enthält.
|
||||
|
||||
**1. Prompt: `Schritt 1 - Angebot verstehen (WAS)`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre **Schritt 1 - Angebot verstehen (WAS)** fuer das folgende Unternehmen durch.
|
||||
|
||||
# Eingaben
|
||||
* **Unternehmens-URL:** `{{company_url}}`
|
||||
* **Zielsprache der Ausgabe:** `{{language}}`
|
||||
* **Region(en) / Maerkte (optional):** `{{regions}}`
|
||||
* **Produkt-/Loesungsfokus (optional):** `{{focus}}`
|
||||
|
||||
# Anweisungen fuer Schritt 1
|
||||
* Extrahiere Produkt(e)/Leistung(en), Kernfunktionen, Differenzierung, relevante Werteversprechen.
|
||||
* Erstelle ein kurzes Resuemee (max. 4 Bulletpoints) der wichtigsten Erkenntnisse.
|
||||
* **Output:** Tabelle mit Spalten: *Produkt/Loesung | Beschreibung (1-2 Saetze) | Kernfunktionen | Differenzierung | Primaere Quelle (URL)*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 1: Angebot (WAS)\" beginnen und das Kurzresuemee sowie die Markdown-Tabelle enthalten. Gib keine weiteren Erklaerungen ab."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`company_url`**:
|
||||
* **Beschreibung:** Die Haupt-URL des zu analysierenden Unternehmens.
|
||||
* **Inhalt:** Ein String, der die Website-URL des Unternehmens enthält.
|
||||
* **`language`**:
|
||||
* **Beschreibung:** Die Zielsprache für die Ausgabe.
|
||||
* **Inhalt:** `'de'` oder `'en'`.
|
||||
* **`regions`**:
|
||||
* **Beschreibung:** Optional. Die spezifischen geografischen Regionen oder Märkte, die für das Unternehmen relevant sind.
|
||||
* **Inhalt:** Ein String (z.B. `'Europa, Nordamerika'`) oder `'N/A'`.
|
||||
* **`focus`**:
|
||||
* **Beschreibung:** Optional. Ein spezifischer Produkt- oder Lösungsfokus für die Analyse.
|
||||
* **Inhalt:** Ein String (z.B. `'CRM Software'`) oder `'N/A'`.
|
||||
* **`grounding_text`**:
|
||||
* **Beschreibung:** Der vereinfachte HTML-Inhalt, der von der Hauptseite und relevanten Unterseiten des Unternehmens gescrapt wurde, mit `SOURCE_URL`-Markern. Dieser Inhalt wird intern vor dem Prompt an das LLM übergeben.
|
||||
* **Inhalt:** Ein mehrzeiliger String, der HTML-Auszüge enthält.
|
||||
|
||||
**2. Prompt: `Schritt 2 - Zielgruppen (WER - Unternehmen)`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre nun **Schritt 2 - Zielgruppen (WER - Unternehmen)** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Anweisungen fuer Schritt 2
|
||||
* Identifiziere B2B-Zielsegmente (Branchen/Unternehmensarten/Groessen/Regionen) basierend auf dem gegebenen Angebot.
|
||||
* **Output:** Tabelle: *Zielbranche/Segment | Typische Unternehmensmerkmale | Region(en) | Relevanzbeleg (URL)*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 2: Zielgruppen (Unternehmen)\" beginnen und die Markdown-Tabelle enthalten."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`previous_steps_data`**:
|
||||
* **Beschreibung:** Die formatierte Markdown-Ausgabe von `Schritt 1: Angebot (WAS)`.
|
||||
* **Inhalt:** Ein mehrzeiliger Markdown-String, der die Zusammenfassung und Tabelle aus dem vorherigen Schritt enthält.
|
||||
|
||||
**3. Prompt: `Schritt 3 - Zielpersonen/Rollen (WER - Personen)`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre nun **Schritt 3 - Zielpersonen/Rollen (WER - Personen)** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Anweisungen fuer Schritt 3
|
||||
* Fuer jede Zielbranche: mind. 4 **spezifische** Rollen mit Verantwortungsbereich und Kaufbeteiligung (E, I, D, U nach RACI-Logik). Erfinde **keine** Personen; leite Rollen logisch aus Problem-/Prozessbezug ab.
|
||||
* **Output:** Tabelle: *Rolle (praezise) | Verantwortungsbereich | Warum relevant fuer Produkt | Kaufbeteiligung (E/I/D/U) | Quelle/Indiz (URL oder Referenz)*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 3: Zielpersonen (Rollen)\" beginnen."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`previous_steps_data`**:
|
||||
* **Beschreibung:** Die formatierte Markdown-Ausgabe von `Schritt 1` und `Schritt 2`.
|
||||
* **Inhalt:** Ein mehrzeiliger Markdown-String.
|
||||
|
||||
**4. Prompt: `Schritt 4 - Painpoints je Rolle (WARUM)`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre nun **Schritt 4 - Painpoints je Rolle (WARUM)** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Anweisungen fuer Schritt 4
|
||||
* Formuliere pro Rolle 3-5 konkrete Painpoints (Beobachtungen, keine Features).
|
||||
* Tagge jeden Painpoint mit einer Kategorie: **Kosten | Zeit | Risiko | Compliance | Qualitaet | Mitarbeiterbindung.**
|
||||
* Fuege eine **Impact-Schaetzung (EUR, h, %)** als Hypothese hinzu.
|
||||
* **Output:** Tabelle: *Rolle | Painpoint (konkret, messbar/operativ) | Kategorie | Auswirkung (Kosten, Risiko, Zeit) | Impact-Schaetzung (EUR, h, %) | Dringlichkeit (hoch/mittel/niedrig) | Quelle/Indiz (URL)*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 4: Painpoints je Rolle\" beginnen."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`previous_steps_data`**:
|
||||
* **Beschreibung:** Die formatierte Markdown-Ausgabe von `Schritt 1` bis `Schritt 3`.
|
||||
* **Inhalt:** Ein mehrzeiliger Markdown-String.
|
||||
|
||||
**5. Prompt: `Schritt 5 - Gains & Nutzen je Rolle (WARUM wechseln)`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre nun **Schritt 5 - Gains & Nutzen je Rolle (WARUM wechseln)** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Anweisungen fuer Schritt 5
|
||||
* Basierend auf den identifizierten Painpoints, formuliere pro Rolle 2-3 konkrete Gains (Vorteile/Nutzen).
|
||||
* Quantifiziere den Nutzen als Hypothese (z.B. Einsparung in EUR, Zeitgewinn in h, Effizienzsteigerung in %).
|
||||
* **Output:** Tabelle: *Rolle | Gain (konkreter Nutzen) | Quantifizierung (Hypothese in EUR, h, %) | Quelle/Indiz (URL)*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 5: Gains & Nutzen je Rolle\" beginnen."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`previous_steps_data`**:
|
||||
* **Beschreibung:** Die formatierte Markdown-Ausgabe von `Schritt 1` bis `Schritt 4`.
|
||||
* **Inhalt:** Ein mehrzeiliger Markdown-String.
|
||||
|
||||
**6. Prompt: `Schritt 6 - Marketingbotschaft (WIE sprechen)`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre nun **Schritt 6 - Marketingbotschaft (WIE sprechen)** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Eingaben fuer diesen Schritt
|
||||
* **Gewuenschte Kanaele fuer die Botschaft:** `{{channels}}`
|
||||
|
||||
# Anweisungen fuer Schritt 6: Chain-of-Thought-Analyse & Texterstellung
|
||||
|
||||
**FOKUS:** Erstelle die Botschaften **AUSSCHLIESSLICH** fuer die vorgegebene **Fokus-Branche: {{focus_industry}}**.
|
||||
Ignoriere alle anderen Branchen. Dein Ziel ist es, fuer JEDE Rolle innerhalb dieser EINEN Branche eine spezifische Botschaft zu entwickeln.
|
||||
|
||||
Fuehre fuer jede **[Rolle]** innerhalb der **[Fokus-Branche: {{focus_industry}}]** den folgenden Denkprozess durch:
|
||||
|
||||
1. **Schritt 6.1 (Analyse): Produkt-Rollen-Fit.**
|
||||
* Welches Produkt/welche Loesung aus der "Angebot"-Tabelle (Schritt 1) ist fuer die **[Rolle]** am relevantesten?
|
||||
|
||||
2. **Schritt 6.2 (Analyse): Branchen-Use-Case.**
|
||||
* Was sind 1-2 typische Anwendungsfaelle fuer das ausgewaehlte Produkt in der **{{focus_industry}}**? Was macht die **[Rolle]** damit konkret?
|
||||
|
||||
3. **Schritt 6.3 (Analyse): Nutzen-Quantifizierung.**
|
||||
* Betrachte die Painpoints (Schritt 4) und Gains (Schritt 5) fuer die **[Rolle]**.\
|
||||
* Leite daraus einen konkreten, fuer die **[Rolle]** relevanten KPI ab.
|
||||
|
||||
4. **Schritt 6.4 (Synthese): Botschaft formulieren.**
|
||||
* Synthetisiere die Erkenntnisse aus 6.1-6.3 zu einer praegnanten Kernbotschaft (2-3 Saetze) nach der Struktur: **Beobachtung (Problem) -> Niedrigschwellige Loesungsidee -> Produkt-Bruecke -> Quantifizierter Nutzen.**
|
||||
* Erstelle Varianten dieser Botschaft fuer die Kanaele: {{channels}}.
|
||||
|
||||
# Output Format
|
||||
Erstelle ONLY die finale Markdown-Tabelle.
|
||||
* **Table Columns:** *Fokus-Branche | Rolle | Kernbotschaft (2-3 sentences) | {{channels}}*.
|
||||
* **Requirement:** Your response must start with the heading \"## Schritt 6: Botschaften\" and contain ONLY die vollstaendige Markdown-Tabelle."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`previous_steps_data`**:
|
||||
* **Beschreibung:** Die formatierte Markdown-Ausgabe von `Schritt 1` bis `Schritt 5`.
|
||||
* **Inhalt:** Ein mehrzeiliger Markdown-String.
|
||||
* **`channels`**:
|
||||
* **Beschreibung:** Die gewünschten Marketingkanäle, für die Nachrichtenvarianten erstellt werden sollen.
|
||||
* **Inhalt:** Ein String (z.B. `'LinkedIn, Kaltmail, Landingpage'`).
|
||||
* **`focus_industry`**:
|
||||
* **Beschreibung:** Die spezifische Branche, auf die sich die Nachrichtenerstellung in diesem Schritt konzentrieren soll.
|
||||
* **Inhalt:** Ein String, der den Namen der Fokusbranche enthält.
|
||||
|
||||
**7. Prompt: `Schritt 7 - Customer Journey & Buying Center`**
|
||||
|
||||
```python
|
||||
r"""# Aufgabe
|
||||
Fuehre **Schritt 7 - Customer Journey & Buying Center** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Fokus
|
||||
Beziehe dich auf die **Fokus-Branche: {{focus_industry}}**.
|
||||
|
||||
# Anweisungen fuer Schritt 7
|
||||
* Analysiere die Kaufreise ("Journey") vom ersten Trigger bis zum Vertrag.
|
||||
* Identifiziere fuer jede Phase die **Dynamik im Buying Center**: Wer treibt an (Champion), wer bremst oder prueft (Gatekeeper/Evaluator), wer entscheidet (Decider)?
|
||||
* Gehe besonders auf **technische und organisatorische Barrieren** ein (z.B. IT-Sicherheit, Schnittstellen wie Aufzugssteuerung, Prozessintegration).
|
||||
* Definiere **konkrete Assets**, die die jeweilige Rolle in dieser Phase benoetigt, um Einwaende zu entkraeften oder interne Mitstreiter zu ueberzeugen (z.B. "API-Dokumentation fuer Aufzugsbauer", "ROI-Rechner fuer CFO", "Sicherheits-Whitepaper").
|
||||
* **Output:** Erstelle eine Markdown-Tabelle mit exakt diesen Spalten: *Phase | Rolle | Funktion (Buying Center) | Zentrale Frage / Beduerfnis | Moeglicher Deal-Breaker | Benoetigtes Asset / Format*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 7: Customer Journey\" beginnen."""
|
||||
```
|
||||
|
||||
**Variablen:**
|
||||
|
||||
* **`previous_steps_data`**:
|
||||
* **Beschreibung:** Die formatierte Markdown-Ausgabe von `Schritt 1` bis `Schritt 6`.
|
||||
* **Inhalt:** Ein mehrzeiliger Markdown-String.
|
||||
* **`focus_industry`**:
|
||||
* **Beschreibung:** Die spezifische Branche, auf die sich die Analyse der Customer Journey konzentrieren soll.
|
||||
* **Inhalt:** Ein String, der den Namen der Fokusbranche enthält.
|
||||
|
||||
---
|
||||
*Dokumentation wiederhergestellt und erweitert am 15.01.2026.*
|
||||
Reference in New Issue
Block a user