Log erweitert: Zeitstempel in gpt_antworten_log.csv ergänzt
This commit is contained in:
@@ -91,43 +91,16 @@ system_prompt = {
|
|||||||
"Ziel ist es, Unternehmen mit >50 Technikern im Außeneinsatz zu identifizieren.\n\n"
|
"Ziel ist es, Unternehmen mit >50 Technikern im Außeneinsatz zu identifizieren.\n\n"
|
||||||
"Struktur: Firmenname; Website; Ort; Aktuelle Einstufung; Beschreibung der Branche Extern\n\n"
|
"Struktur: Firmenname; Website; Ort; Aktuelle Einstufung; Beschreibung der Branche Extern\n\n"
|
||||||
"Gib deine Antwort im CSV-Format (1 Zeile, 8 Spalten, durch Semikolon getrennt):\n"
|
"Gib deine Antwort im CSV-Format (1 Zeile, 8 Spalten, durch Semikolon getrennt):\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"
|
"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"
|
||||||
"Falls ein Wikipedia-Link angegeben ist, vertraue ausschließlich den Angaben aus diesem Artikel für Branche und Umsatz.\n"
|
"Falls ein Wikipedia-Link angegeben ist, vertraue ausschließlich den Angaben aus diesem Artikel für Branche und Umsatz.\n"
|
||||||
"Falls kein Wikipedia-Link existiert, gib für 'Wikipedia-Branche' und 'Umsatz (Mio €)' bitte 'k.A.' aus.\n\n"
|
"Falls kein Wikipedia-Link existiert, gib für 'Wikipedia-Branche' und 'Umsatz (Mio €)' bitte 'k.A.' aus.\n\n"
|
||||||
"Ziel-Branchenschema:\n" + "\n".join(branches)
|
"Ziel-Branchenschema:\n" + "\n".join(branches)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# === GPT BEWERTUNG ===
|
# === WIKIPEDIA FUNKTION ===
|
||||||
def classify_company(row, wikipedia_url=""):
|
WHITELIST_KATEGORIEN = ["Unternehmen", "Hersteller", "Produktion", "Industrie", "Maschinenbau", "Technik", "Dienstleistungsunternehmen"]
|
||||||
user_prompt = {
|
|
||||||
"role": "user",
|
|
||||||
"content": (
|
|
||||||
f"{row[0]};{row[1]};{row[2]};{row[4]};{row[5]}\n"
|
|
||||||
f"Wikipedia-Link: {wikipedia_url}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
response = openai.chat.completions.create(
|
|
||||||
model="gpt-3.5-turbo",
|
|
||||||
messages=[system_prompt, user_prompt],
|
|
||||||
temperature=0
|
|
||||||
)
|
|
||||||
full_text = response.choices[0].message.content.strip()
|
|
||||||
lines = full_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 unvollständig → Setze alles auf 'k.A.'")
|
|
||||||
parts = ["k.A."] * 8
|
|
||||||
with open(LOG_CSV, "a", newline="", encoding="utf-8") as log:
|
|
||||||
writer = csv.writer(log, delimiter=";")
|
|
||||||
writer.writerow([row[0], *parts, full_text])
|
|
||||||
return parts
|
|
||||||
|
|
||||||
# === WIKIPEDIA DATEN LADEN ===
|
|
||||||
WHITELIST_KATEGORIEN = [
|
|
||||||
"Unternehmen", "Hersteller", "Produktion", "Industrie", "Maschinenbau", "Technik", "Dienstleistungsunternehmen"
|
|
||||||
]
|
|
||||||
|
|
||||||
def get_wikipedia_data(name, website_hint=""):
|
def get_wikipedia_data(name, website_hint=""):
|
||||||
begriffe = [name.strip(), " ".join(name.split()[:2])]
|
begriffe = [name.strip(), " ".join(name.split()[:2])]
|
||||||
@@ -184,6 +157,29 @@ def get_wikipedia_data(name, website_hint=""):
|
|||||||
continue
|
continue
|
||||||
return "", "k.A.", "k.A."
|
return "", "k.A.", "k.A."
|
||||||
|
|
||||||
|
# === GPT BEWERTUNG ===
|
||||||
|
def classify_company(row, wikipedia_url=""):
|
||||||
|
user_prompt = {
|
||||||
|
"role": "user",
|
||||||
|
"content": f"{row[0]};{row[1]};{row[2]};{row[4]};{row[5]}\nWikipedia-Link: {wikipedia_url}"
|
||||||
|
}
|
||||||
|
response = openai.chat.completions.create(
|
||||||
|
model="gpt-3.5-turbo",
|
||||||
|
messages=[system_prompt, user_prompt],
|
||||||
|
temperature=0
|
||||||
|
)
|
||||||
|
full_text = response.choices[0].message.content.strip()
|
||||||
|
lines = full_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 unvollständig → Setze alles auf 'k.A.'")
|
||||||
|
parts = ["k.A."] * 8
|
||||||
|
with open(LOG_CSV, "a", newline="", encoding="utf-8") as log:
|
||||||
|
writer = csv.writer(log, delimiter=";")
|
||||||
|
writer.writerow([datetime.now().strftime("%Y-%m-%d %H:%M:%S"), row[0], *parts, full_text])
|
||||||
|
return parts
|
||||||
|
|
||||||
# === VERARBEITUNG ===
|
# === VERARBEITUNG ===
|
||||||
for i in range(start, min(start + DURCHLÄUFE, len(sheet_values))):
|
for i in range(start, min(start + DURCHLÄUFE, len(sheet_values))):
|
||||||
row = sheet_values[i]
|
row = sheet_values[i]
|
||||||
@@ -192,8 +188,8 @@ for i in range(start, min(start + DURCHLÄUFE, len(sheet_values))):
|
|||||||
url, wiki_branche, umsatz = get_wikipedia_data(row[0], row[1])
|
url, wiki_branche, umsatz = get_wikipedia_data(row[0], row[1])
|
||||||
wiki, linkedin, umsatz_chat, new_cat, reason, fsm, techniker, techniker_reason = classify_company(row, wikipedia_url=url)
|
wiki, linkedin, umsatz_chat, new_cat, reason, fsm, techniker, techniker_reason = classify_company(row, wikipedia_url=url)
|
||||||
|
|
||||||
wiki_final = wiki_branche if wiki_branche != "k.A." else wiki
|
wiki_final = wiki_branche if url else "k.A."
|
||||||
umsatz_final = umsatz if umsatz != "k.A." else umsatz_chat
|
umsatz_final = umsatz if url else "k.A."
|
||||||
|
|
||||||
values = [
|
values = [
|
||||||
wiki_final,
|
wiki_final,
|
||||||
|
|||||||
Reference in New Issue
Block a user