diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 29ca1d9f..e3bb1ceb 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -93,7 +93,7 @@ system_prompt = { "- Berücksichtige dabei alle vorliegenden Informationen (auch externe Beschreibung, Wikipedia, LinkedIn, Website) sowie die bisherige Einstufung.\n" "- Wenn die bisherige Einstufung korrekt ist, bestätige sie – wenn nicht, schlage eine neue Einstufung vor und begründe diese.\n" "- Gib zusätzlich an, ob das Unternehmen FSM-relevant ist (Ja / Nein / k.A. mit Begründung).\n" - "- Schätze die Anzahl mobiler Techniker anhand öffentlich verfügbarer Infos und gib eine Stufe an: <50 / >50 / >100 / >500, mit Begründung.\n\n" + "- Schätze die Anzahl mobiler Techniker anhand öffentlich verfügbarer Infos und gib eine Stufe an und begründe diese: <50 / >50 / >100 / >500\n\n" "Gib das Ergebnis ausschließlich im folgenden CSV-Format aus (eine Zeile, 8 Spalten, getrennt durch Semikolon):\n" "Wikipedia-Branche;LinkedIn-Branche;Umsatz (Mio €);Empfohlene Neueinstufung;Begründung;FSM-Relevanz (Ja/Nein/k.A. mit Begründung);Techniker-Einschätzung;Techniker-Begründung\n\n" "Ziel-Branchenschema:\n" + "\n".join(branches) @@ -122,10 +122,10 @@ def get_wikipedia_data(name): if not branche: cats = page.categories branche = cats[0] if cats else "" - return url, branche, umsatz + return url, branche or "k.A.", umsatz or "k.A." except: continue - return "", "", "" + return "", "k.A.", "k.A." def classify_company(row): user_prompt = { @@ -138,9 +138,12 @@ def classify_company(row): temperature=0 ) text = response.choices[0].message.content.strip() - parts = [v.strip().strip('"') for v in text.split(";")] - while len(parts) < 8: - parts.append("k.A.") + lines = text.splitlines() + csv_line = next((l for l in lines if ";" in l and not l.lower().startswith("wikipedia-branche")), "") + parts = [v.strip().strip('"') for v in csv_line.split(";")] if csv_line else [] + if len(parts) != 8: + print("⚠️ Antwort konnte nicht korrekt gelesen werden. Setze alle Werte auf 'k.A.'") + parts = ["k.A."] * 8 return parts # === VERARBEITUNG === @@ -152,9 +155,9 @@ for i in range(start, min(start + DURCHLÄUFE, len(sheet_values))): wiki, linkedin, umsatz_chat, new_cat, reason, fsm, techniker, techniker_reason = classify_company(row) values = [ - wiki or wiki_branche, + wiki, linkedin, - umsatz_chat or umsatz, + umsatz_chat, new_cat, reason, fsm, @@ -168,4 +171,4 @@ for i in range(start, min(start + DURCHLÄUFE, len(sheet_values))): sheet.update(range_name=f"G{i+2}:P{i+2}", values=[values]) time.sleep(5) -print("✅ Durchläufe abgeschlossen") \ No newline at end of file +print("✅ Durchläufe abgeschlossen")