From 52c32bc15b67cd44f8cc1d7bb6f93cf8789cf561 Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 23 Jul 2025 15:18:54 +0000 Subject: [PATCH] expand_knowledge_base.py aktualisiert --- expand_knowledge_base.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/expand_knowledge_base.py b/expand_knowledge_base.py index e129f554..5ed76f25 100644 --- a/expand_knowledge_base.py +++ b/expand_knowledge_base.py @@ -5,8 +5,8 @@ import yaml import logging import time import openai -import argparse # NEU: Für Kommandozeilen-Argumente -from config import Config, BRANCH_GROUP_MAPPING +import argparse +from config import Config # --- Konfiguration --- BASE_KNOWLEDGE_FILE = "marketing_wissen.yaml" @@ -60,7 +60,6 @@ def main(branches_to_process=None): """Erweitert die Wissensbasis um die fehlenden Branchen und speichert die Recherche-Dossiers.""" logging.info("Starte Erweiterung der Wissensbasis...") - # ... (Code zum Laden der API-Keys und der Basis-Wissensdatei bleibt unverändert) ... Config.load_api_keys() openai.api_key = Config.API_KEYS.get('openai') if not openai.api_key: @@ -74,12 +73,10 @@ def main(branches_to_process=None): logging.critical(f"FEHLER: Basis-Wissensdatei '{BASE_KNOWLEDGE_FILE}' nicht gefunden.") return - all_branches = set(BRANCH_GROUP_MAPPING.keys()) + all_branches = set(Config.BRANCH_GROUP_MAPPING.keys()) existing_branches = set(knowledge_base.get('Branchen', {}).keys()) - # --- NEUE LOGIK ZUR BRANCHEN-AUSWAHL --- if branches_to_process: - # Modus: Nur die übergebenen Branchen verarbeiten target_branches = [b for b in branches_to_process if b in all_branches] if not target_branches: logging.error("Keine der angegebenen Branchen ist gültig. Bitte prüfen Sie die Schreibweise.") @@ -87,7 +84,6 @@ def main(branches_to_process=None): return logging.info(f"Verarbeite die {len(target_branches)} explizit angegebenen Branchen...") else: - # Modus: Alle fehlenden Branchen verarbeiten target_branches = sorted(list(all_branches - existing_branches)) if not target_branches: logging.info("Glückwunsch! Alle Branchen sind bereits in der Wissensbasis vorhanden.") @@ -96,7 +92,8 @@ def main(branches_to_process=None): logging.info(f"Zu verarbeitende Branchen: {', '.join(target_branches)}") - DOSSIER_FOLDER = "generated_dossiers" + # KORRIGIERTE ZEILE + DOSSIER_FOLDER = "industries" os.makedirs(DOSSIER_FOLDER, exist_ok=True) for branch in target_branches: @@ -106,8 +103,6 @@ def main(branches_to_process=None): logging.info(f"\n--- Verarbeite Branche: {branch} ---") - # Stufe 1: Recherche-Dossier erstellen - # ... (Rest der Logik innerhalb der Schleife bleibt unverändert) ... logging.info(" -> Stufe 1: Generiere Recherche-Dossier...") research_prompt = generate_research_prompt(branch) dossier = call_openai_with_retry(research_prompt) @@ -123,7 +118,6 @@ def main(branches_to_process=None): time.sleep(2) - # Stufe 2: Informationen extrahieren logging.info(" -> Stufe 2: Extrahiere strukturierte Daten aus dem Dossier...") extraction_prompt = generate_extraction_prompt(dossier) extracted_data_str = call_openai_with_retry(extraction_prompt, is_extraction=True) @@ -139,7 +133,7 @@ def main(branches_to_process=None): knowledge_base['Branchen'][branch] = extracted_data logging.info(f" -> {branch} erfolgreich zur Wissensbasis hinzugefügt.") except Exception as e: - logging.error(f" Fehler beim Parsen der extrahierten Daten für {branch}: {e}") + logging.error(f" -> Fehler beim Parsen der extrahierten Daten für {branch}: {e}") time.sleep(2) @@ -151,11 +145,10 @@ def main(branches_to_process=None): logging.error(f"Fehler beim Speichern der finalen YAML-Datei: {e}") if __name__ == "__main__": - # NEU: Argument Parser für die Kommandozeile parser = argparse.ArgumentParser(description="Erweitert die Marketing-Wissensbasis um fehlende Branchen.") parser.add_argument( "--branches", - nargs='+', # Erlaubt mehrere Werte, z.B. --branches "Branche A" "Branche B" + nargs='+', type=str, help="Eine oder mehrere spezifische Branchen, die verarbeitet werden sollen. Bei Angabe werden nur diese bearbeitet." )