Bugfix Robuster Umgang mit k.A.

This commit is contained in:
2025-03-29 21:46:28 +00:00
parent 87412374f9
commit 88f8ffb323

View File

@@ -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")
print("✅ Durchläufe abgeschlossen")