diff --git a/readme.md b/readme.md index 3b299b01..0c724201 100644 --- a/readme.md +++ b/readme.md @@ -473,4 +473,25 @@ Das Modul `build_knowledge_base.py` ist dafür verantwortlich, eine umfassende W 3. **Dossier-Generierung:** Für jede ausgewählte Branche wird `generate_research_prompt` aufgerufen und ein Dossier von der KI erstellt. Dieses wird zur Nachvollziehbarkeit als Textdatei im `industries`-Ordner gespeichert. 4. **Daten-Extraktion:** Das generierte Dossier wird verwendet, um mit `generate_extraction_prompt` die strukturierten Daten (Zusammenfassung, Pain Points, Schlüsselbegriffe) zu extrahieren. 5. **Zusammenführung:** Die extrahierten Daten werden zusammen mit den Referenzkunden aus der `config.py` in die Wissensbasis-Struktur eingefügt. - 6. **Speichern:** Die vollständige, angereicherte Wissensbasis wird am Ende des Prozesses in die finale YAML-Datei (`marketing_wissen_final.yaml`) geschrieben. \ No newline at end of file + 6. **Speichern:** Die vollständige, angereicherte Wissensbasis wird am Ende des Prozesses in die finale YAML-Datei (`marketing_wissen_final.yaml`) geschrieben. +## expand_knowledge_base.py + +### Hauptfunktion + +Das Modul `expand_knowledge_base.py` dient dazu, eine bestehende Wissensbasis (`marketing_wissen.yaml`) gezielt zu erweitern. Es identifiziert, welche Branchen aus der zentralen Konfiguration (`config.py`) noch in der Wissensbasis fehlen, und generiert für diese fehlenden Branchen die entsprechenden Einträge. Der Prozess ist identisch mit dem von `build_knowledge_base.py`: Es wird ein KI-gestütztes Dossier erstellt, aus dem dann strukturierte Daten extrahiert und in die Wissensbasis integriert werden. Das Ergebnis wird in einer neuen, kompletten Datei (`marketing_wissen_komplett.yaml`) gespeichert. + +### Methodenbeschreibung + +- `call_openai_with_retry(prompt, is_extraction=False, ...)`: Eine Wrapper-Funktion für OpenAI-API-Aufrufe mit Wiederholungslogik, die sowohl Freitext-Generierung als auch JSON-Extraktion unterstützt. + +- `generate_research_prompt(branch_name)`: Erstellt einen Prompt für die KI, um ein Branchen-Dossier zu einem gegebenen Branchennamen zu erstellen. + +- `generate_extraction_prompt(dossier_content)`: Erstellt einen Prompt, um aus einem generierten Dossier-Text strukturierte Daten (Zusammenfassung, Pain Points, Schlüsselbegriffe) im JSON-Format zu extrahieren. + +- `main(branches_to_process=None)`: Die Hauptfunktion, die den Erweiterungsprozess steuert: + 1. **Initialisierung:** Lädt API-Schlüssel und die existierende Basis-Wissensdatei (`marketing_wissen.yaml`). + 2. **Delta-Ermittlung:** Vergleicht die Liste aller Branchen aus `config.py` mit den bereits in der Wissensbasis vorhandenen Branchen, um die Liste der zu bearbeitenden, fehlenden Branchen zu ermitteln. + 3. **Gezielte Verarbeitung:** Iteriert ausschließlich über die fehlenden Branchen (oder eine über Kommandozeilen-Argumente spezifizierte Teilmenge). + 4. **Dossier-Generierung & Extraktion:** Führt für jede neue Branche den zweistufigen Prozess aus: Zuerst wird das Dossier generiert und als Textdatei gespeichert, danach werden die strukturierten Daten extrahiert. + 5. **Aktualisierung:** Fügt die neu extrahierten Daten zur in-memory-Version der Wissensbasis hinzu. + 6. **Speichern:** Schreibt die erweiterte und nun vollständige Wissensbasis in eine neue Zieldatei (`marketing_wissen_komplett.yaml`).