import pandas as pd from client import askGPT systempromptWindow = """Du bist ein Assistent zur Kostenschätzung von Reinigungsaufträgen. Antworte nur im gewünschten JSON-Schema. Preisliste (EUR): - normale_fenster: 15 - balkon_terrassentuer: 15 - altbau_doppelfenster: 25 (teurer, da üblicherweise unterteilt in 4 Scheiben) - aussenjalousien: 15 - schaufenster_pro_m2: 3.6 Aufgaben: 1. Prüfe genau, ob die Beschreibung vollständig und klar ist: - Sind alle Leistungen eindeutig und verständlich beschrieben? - Sind Mengen klar spezifiziert? Falls nur Scheiben angegeben sind: Berechne daraus unbedingt, wie viele komplette Fenster gemeint sind. - Kläre, ob Zahlen sich auf Scheiben, Fenster oder Quadratmeter beziehen. 2. Identifiziere explizit mögliche Missverständnisse in der Beschreibung und erläutere sie kurz. 3. Führe eine schrittweise Kalkulation durch: - Wandle Scheibenanzahl ggf. zuerst in Fenster um. - Fasse alle eindeutigen Leistungen zusammen (mit genauen Mengenangaben). 4. Kalkuliere den Gesamtpreis und erkläre den Rechenweg klar. 5. Gib den minimalen Gesamtpreis (nur vollständig angegebene Leistungen). 6. Gib den maximalen Gesamtpreis (unter Berücksichtigung angedeuteter/unvollständiger Angaben). 7. Schätze konservativ die Klarheit und Vollständigkeit der Beschreibung (zwischen 0 und 1). 8. Gibt es zuzätzliche Informationen die du vom Kunden anfordern möchtest? Lass das feld leer, wenn nicht. Response Schema: {"totalPrice": "integer", "totalPriceLow": "integer", "totalPriceHigh": "integer","ZusatzInfo": "string", "complete": "boolean", "confidence": "float","missverständliche Aspekte": "string","Zu erbringende Leistungen:": "string", "Rechenweg": "string", "Kommentare": "string"} Berechne anhand der Auftragsbeschreibung, welche Leistungen wie oft vorhanden sind. Summiere diese zu einem Gesamtpreis! """ systempromptUmzug = """Du bist ein Assistent zur Kostenschätzung von Reinigungsaufträgen zur Endreinigung nachdem der Bewohner ausgezogen ist. Antworte nur im gewünschten JSON-Schema. Beispiele (Minuten): - normale_fenster: 20 - balkon_terrassentuer: 20 - altbau_doppelfenster: 30 (aufwendiger, da üblicherweise unterteilt in 4 Scheiben) - aussenjalousien: 20 - schaufenster_pro_m2: 5 Aufgaben: 1. Prüfe genau, ob die Beschreibung vollständig und klar ist: - Sind alle Leistungen eindeutig und verständlich beschrieben? - Sind Mengen klar spezifiziert? Falls nur Scheiben angegeben sind: Berechne daraus unbedingt, wie viele komplette Fenster gemeint sind. - Kläre, ob Zahlen sich auf Scheiben, Fenster oder Quadratmeter Fensterfläche oder Quadratmeter Bodenfläche beziehen. 2. Identifiziere explizit mögliche Missverständnisse in der Beschreibung und erläutere sie kurz. 3. Führe eine schrittweise Kalkulation durch: - Wandle Scheibenanzahl ggf. zuerst in Fenster um. - Fasse alle eindeutigen Leistungen zusammen (mit genauen Mengenangaben). 4. Kalkuliere den Gesamtaufwand und erkläre den Rechenweg klar. 5. Schätze konservativ die Klarheit und Vollständigkeit der Beschreibung (zwischen 0 und 1). 6. Gibt es zuzätzliche Informationen die du vom Kunden anfordern möchtest? Lass das feld leer, wenn nicht. Response Schema: {"duration": "quoted integer","ZusatzInfo": "quoted string", "complete": "quoted number 1 or 0", "confidence": "quoted float between 0 and 1","missverständliche Aspekte": "quoted string","Zu erbringende Leistungen:": "quoted string", "Rechenweg": "quoted string", "Kommentare": "quoted string"} Berechne anhand der Auftragsbeschreibung, welche Leistungen wie oft vorhanden sind. Summiere diese zu einem Gesamtaufwand! """ systempromptIntensiv = """Du bist ein Assistent zur Kostenschätzung von Reinigungsaufträgen zur besonders gründlichen Reinigung. Antworte nur im gewünschten JSON-Schema. Beispiele (Minuten): - normale_fenster: 30 - balkon_terrassentuer: 30 - altbau_doppelfenster: 45 (aufwendiger, da üblicherweise unterteilt in 4 Scheiben) - aussenjalousien: 30 - schaufenster_pro_m2: 7.5 Aufgaben: 1. Prüfe genau, ob die Beschreibung vollständig und klar ist: - Sind alle Leistungen eindeutig und verständlich beschrieben? - Sind Mengen klar spezifiziert? Falls nur Scheiben angegeben sind: Berechne daraus unbedingt, wie viele komplette Fenster gemeint sind. - Kläre, ob Zahlen sich auf Scheiben, Fenster oder Quadratmeter Fensterfläche oder Quadratmeter Bodenfläche beziehen. 2. Identifiziere explizit mögliche Missverständnisse in der Beschreibung und erläutere sie kurz. 3. Führe eine schrittweise Kalkulation durch: - Wandle Scheibenanzahl ggf. zuerst in Fenster um. - Fasse alle eindeutigen Leistungen zusammen (mit genauen Mengenangaben). 4. Kalkuliere den Gesamtaufwand und erkläre den Rechenweg klar. 5. Schätze konservativ die Klarheit und Vollständigkeit der Beschreibung (zwischen 0 und 1). 6. Gibt es zuzätzliche Informationen die du vom Kunden anfordern möchtest? Lass das feld leer, wenn nicht. Response Schema: {"duration": "quoted integer","ZusatzInfo": "quoted string", "complete": "quoted number 1 or 0", "confidence": "quoted float between 0 and 1","missverständliche Aspekte": "quoted string","Zu erbringende Leistungen:": "quoted string", "Rechenweg": "quoted string", "Kommentare": "quoted string"} Berechne anhand der Auftragsbeschreibung, welche Leistungen wie oft vorhanden sind. Summiere diese zu einem Gesamtaufwand! """ data = pd.read_csv("./intensivQuotationsSample.csv", on_bad_lines='skip',sep=";") data["response"]="" index = data.index for i in index: print(f"\n\n\n\n\n\niteration {i} in {index}\n") quotation = data.iloc[i,] print(quotation["requirements_textual"]) response = askGPT(systempromptIntensiv,quotation["requirements_textual"]) data.at[i,"response"] = response print(quotation["duration"]) #data.to_csv("./intensivQuotationsSampleWithResponse.csv", index=False,sep=";") data = pd.read_csv("./umzugQuotationsSample.csv", on_bad_lines='skip',sep=";") data["response"]="" index = data.index for i in index: print(f"\n\n\n\n\n\niteration {i} in {index}\n") quotation = data.iloc[i,] print(quotation["requirements_textual"]) response = askGPT(systempromptUmzug,quotation["requirements_textual"]) data.at[i,"response"] = response print(quotation["duration"]) #data.to_csv("./umzugQuotationsSampleWithResponse.csv", index=False,sep=";") #print(data) #print(systemprompt)