{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "ce5cf325-1b49-462b-b5cc-2564a3ae356b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " duration ZusatzInfo complete \\\n", "0 25 Bitte geben Sie an, ob zusätzlich Fensterreini... 0 \n", "\n", " confidence missverständliche Aspekte \\\n", "0 0.3 Nicht spezifiziert, ob die 50 qm die gesamte R... \n", "\n", " Zu erbringende Leistungen: \\\n", "0 Reinigung aller Räume (Boden, Oberflächen), Gr... \n", "\n", " Rechenweg \\\n", "0 Annahme 5 Minuten pro 10 qm → 50 qm / 10 = 5 E... \n", "\n", " Kommentare \n", "0 Beschreibung unvollständig; weitere Angaben zu... \n" ] } ], "source": [ "import pandas as pd\n", "import json\n", "import re\n", "import unicodedata\n", "import numpy as np\n", "data = pd.read_csv(\"./umzugQuotationsSampleWithResponse.csv\", on_bad_lines='skip',sep=\";\")\n", "#imagecount = pd.read_csv(\"./quotationsSample.csv\", on_bad_lines='skip',sep=\";\")['n_Images']\n", "#data['n_Images'] = imagecount\n", "data[\"inquired\"] = data[\"inquired\"].apply(np.datetime64)\n", "\n", "import re, json\n", "def normalize_col(name: str) -> str:\n", " s = unicodedata.normalize(\"NFKC\", str(name)) # unify unicode\n", " s = s.replace(\"\\xa0\", \" \") # NBSP -> space\n", " s = re.sub(r\"\\s+\", \" \", s).strip() # collapse spaces\n", " s = re.sub(r\":+\\s*$\", \"\", s) # drop trailing colons\n", "\n", " return s\n", "def extract_json_from_response(raw: str) -> dict | None:\n", " \"\"\"\n", " Extract the JSON object that appears in content='...'.\n", " Returns a dict or None if not found / invalid.\n", " \"\"\"\n", " if not isinstance(raw, str):\n", " return None\n", "\n", " # 1) Prefer: content=' {...} ' or content=\" {...} \"\n", " m = re.search(r\"content=(?P['\\\"])(?P\\{.*?\\})(?P=q)\", raw, flags=re.DOTALL)\n", " if m:\n", " json_str = m.group(\"body\")\n", " try:\n", " # --- minimal normalization: collapse backslash runs before a quote to \\\" ---\n", " json_str = re.sub(r'\\\\+\"', r'\\\"', json_str) # <-- CHANGED\n", " return json.loads(json_str) # <-- CHANGED (removed early return of raw string)\n", " except json.JSONDecodeError:\n", " pass # fall through to brace-balanced fallback\n", "\n", " # 2) Fallback: find the first '{' after 'content=' and parse a balanced JSON object\n", " m2 = re.search(r\"content=([\\'\\\"])?.*?(\\{)\", raw, flags=re.DOTALL)\n", " if not m2:\n", " return None\n", "\n", " start = m2.start(2) # index of first '{'\n", " # Walk to matching closing '}' while tracking nesting\n", " depth = 0\n", " i = start\n", " in_string = False\n", " esc = False\n", " while i < len(raw):\n", " ch = raw[i]\n", " if in_string:\n", " if esc:\n", " esc = False\n", " elif ch == '\\\\':\n", " esc = True\n", " elif ch == '\"':\n", " in_string = False\n", " else:\n", " if ch == '\"':\n", " in_string = True\n", " elif ch == '{':\n", " depth += 1\n", " elif ch == '}':\n", " depth -= 1\n", " if depth == 0:\n", " json_str = raw[start:i+1]\n", " try:\n", " # --- same minimal normalization here ---\n", " json_str = re.sub(r'\\\\+\"', r'\\\"', json_str) # <-- CHANGED\n", " return json.loads(json_str) # <-- CHANGED (removed print/early return)\n", " except json.JSONDecodeError:\n", " return None\n", " i += 1\n", " return None\n", "\n", "# --- Example: single row ---\n", "raw = data.loc[1, \"response\"]\n", "parsed = extract_json_from_response(raw)\n", "if parsed is None:\n", " raise ValueError(\"Could not extract valid JSON from response cell.\")\n", "df_one = pd.DataFrame([parsed])\n", "print(df_one)\n", "\n", "# --- Expand ALL rows into columns ---\n", "parsed_rows = [extract_json_from_response(x) or {} for x in data[\"response\"]]\n", "expanded = pd.DataFrame(parsed_rows)\n", "\n", "# Normalize column names\n", "expanded.columns = [normalize_col(c) for c in expanded.columns]\n", "\n", "# Coalesce duplicate columns (row-wise first non-null)\n", "def coalesce_dupe_cols(df: pd.DataFrame) -> pd.DataFrame:\n", " out = {}\n", " for col in dict.fromkeys(df.columns): # preserves original order\n", " same = [c for c in df.columns if c == col]\n", " if len(same) == 1:\n", " out[col] = df[same[0]]\n", " else:\n", " out[col] = df[same].bfill(axis=1).iloc[:, 0] # pick first non-null per row\n", " return pd.DataFrame(out, index=df.index)\n", "\n", "expanded = coalesce_dupe_cols(expanded)\n", "\n", "# (optional) If you’d rather just drop duplicates and keep the first:\n", "# expanded = expanded.loc[:, ~expanded.columns.duplicated()]\n", "\n", "# Prefix to avoid collisions with original data\n", "expanded = expanded.add_prefix(\"resp_\")\n", "\n", "data_expanded = pd.concat(\n", " [data.reset_index(drop=True), expanded.reset_index(drop=True)], axis=1\n", ")\n", "\n", "\n", "data_expanded = pd.DataFrame(data_expanded)\n", "data_expanded = data_expanded.loc[data_expanded[\"resp_duration\"].notna()]\n", "data_expanded = data_expanded.loc[data_expanded[\"resp_duration\"]!=\"0\"]\n", "\n", "data_expanded[\"resp_duration\"] = pd.to_numeric(data_expanded[\"resp_duration\"])\n", "data_expanded[\"diff_duration\"] = data_expanded[\"duration\"] - data_expanded[\"resp_duration\"]#-50.88\n" ] }, { "cell_type": "code", "execution_count": null, "id": "d098d74e-0bad-49ea-a770-74501358c40f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "bb4a7f8c-784e-4c50-866a-da19625950cc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d5281345-9528-49ff-8e34-741ddeebbbba", "metadata": {}, "outputs": [], "source": [ "data_expanded[\"diff_duration\"]" ] }, { "cell_type": "code", "execution_count": 3, "id": "539a367a-dd9a-441f-9a6b-5563422b99d1", "metadata": {}, "outputs": [ { "data": { "image/png": "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MXjzzTexYMECW1eHiMjqOIaIiIiIXB67zIicnLFtEAxNHScichUMiIicmLorzJDFixcjOTkZ7D0nIlfGgIjIiUVERODo0aNGyxARuToOqiYiIiKXx8EDRERE5PLYZSaRSqXC5cuX4e/vL2nLAiIiIrI9IQRu3rxpdP9BBkQSXb58We9eTERERGTfLl68aHD1cwZEEvn7+wOov6EBAQE2ro10NTU12LVrFxITE/XuKu3oXKGNANvpbNhO5+EKbQQct50lJSWIjIzUfI7rw4BIInU3WUBAgMMFRL6+vggICHCoP2BTuEIbAbbT2bCdzsMV2gg4fjuNDXfhoGoiIiJyeQyIiIiIyOUxICIiIiKXx4CIiIiIXB4DIiIiInJ5DIiIiIjI5TEgIiIiIpfHgIiIiIhcHgMiIiIicnlcqZqIiMhK6lQCR3ILUXCzEqH+3ugbEwR3N24Ybg8YEBEREVlBWlYelmzPRl5xpeZYuMIbi8fHYkxcuA1rRgC7zIiIiFpcWlYenko5rhUMAUB+cSWeSjmOtKw8G9WM1BgQERERtaA6lcCS7dkQOs6pjy3Zno06la4SZC0MiIiIiFrQkdzCJpmhhgSAvOJKHMkttF6lqAkGRERERC2o4Kb+YMicctQyGBARERG1oFB/b4uWo5bBgIiIiKgF9Y0JQrjCG/om18tQP9usb0yQNatFjTAgIiIiakHubjIsHh8LAE2CIvXjxeNjuR6RjTEgIiIiamFj4sKx9qGeUCq0u8WUCm+sfagn1yGyA1yYkYiIyArGxIUjIVbJlartFAMiIiIiK3F3kyH+tmBbV4N0YJcZERERuTwGREREROTyGBARERGRy2NARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkctjQEREREQujwERERERuTwGREREROTyGBARERGRy2NARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkcvzsHUFiIjIcupUAkdyC1FwsxKh/t7oGxMEdzeZratFZPcYEBEROYm0rDws2Z6NvOJKzbFwhTcWj4/FmLhwG9aMyP6xy4yIyAmkZeXhqZTjWsEQAOQXV+KplONIy8qzUc2IHAMDIiIiB1enEliyPRtCxzn1sSXbs1Gn0lWCiAAbB0TLly9Hnz594O/vj9DQUNx99904c+aMVplHHnkEMplM61///v21ylRVVWHOnDkICQmBn58fJkyYgEuXLmmVKSoqQlJSEhQKBRQKBZKSknDjxo2WbiIRUYs7klvYJDPUkACQV1yJI7mF1qsUkYOxaUC0d+9ezJo1C4cOHUJ6ejpqa2uRmJiIsrIyrXJjxoxBXl6e5l9qaqrW+Xnz5mHr1q3YvHkzDhw4gNLSUowbNw51dXWaMtOmTUNmZibS0tKQlpaGzMxMJCUlWaWdRM2lHigL1H/48Zs+NVRwU38wZE45Ildk00HVaWlpWo/Xr1+P0NBQHDt2DEOGDNEcl8vlUCqVOq9RXFyMDz/8EBs3bsSoUaMAACkpKYiMjMTu3bsxevRo5OTkIC0tDYcOHUK/fv0AAOvWrUN8fDzOnDmD22+/vYVaSNR86oGyhaUVWNEXeOyjowhq5cOBsqQR6u9t0XJErsiuZpkVFxcDAIKCgrSOf//99wgNDUXr1q0xdOhQLF26FKGhoQCAY8eOoaamBomJiZryERERiIuLw8GDBzF69GhkZGRAoVBogiEA6N+/PxQKBQ4ePKgzIKqqqkJVVZXmcUlJCQCgpqYGNTU1lmt0C1PX1ZHqbCpnbuPunCt49rNMCAByt/qskNxNoKi0AvM+PYZVU7pjVOcw21bSwpz599mQJdvZo60/ogLluFJSqXMckQxAWIA3erT1t/p9dYXfpyu0EXDcdkqtr0wIYRe5dyEEJk6ciKKiIuzfv19z/LPPPkOrVq0QFRWF3NxcLFq0CLW1tTh27Bjkcjk2bdqERx99VCt4AYDExETExMTg/fffx7Jly7Bhwwb88ssvWmU6duyIRx99FAsXLmxSn+TkZCxZsqTJ8U2bNsHX19dCrSYiIqKWVF5ejmnTpqG4uBgBAQF6y9lNhmj27Nk4efIkDhw4oHV8ypQpmv+Pi4tD7969ERUVha+//hqTJk3Sez0hBGSyvxYja/j/+so0tHDhQjz33HOaxyUlJYiMjERiYqLBG2pvampqkJ6ejoSEBHh6etq6Oi3CWdt4JLcQj310VPNY7ibwam8VFv3ohirVX3+3/5neB31jgnRdwiE56++zsZZo5+6cK3j9m5+RX/LXWCFlgDdeGtvJZplEV/h9ukIbAcdtp7qHxxi7CIjmzJmDbdu2Yd++fWjbtq3BsuHh4YiKisLZs2cBAEqlEtXV1SgqKkJgYKCmXEFBAQYMGKApc+XKlSbXunr1KsLCdL9JyOVyyOXyJsc9PT0d6g9BzVHrbQpna+O18lpU1TUN2KtUMq3j18prnardas72+9THku0c27UtEuPa2OVK1a7w+3SFNgKO106pdbXpLDMhBGbPno0tW7Zgz549iImJMfoz169fx8WLFxEeXj+YtFevXvD09ER6erqmTF5eHrKysjQBUXx8PIqLi3HkyBFNmcOHD6O4uFhThsjecKAsmcPdTYb424IxsXsbxN8WbBfBEJEjsGmGaNasWdi0aRO++uor+Pv7Iz8/HwCgUCjg4+OD0tJSJCcn495770V4eDjOnTuHv//97wgJCcE999yjKTtjxgzMnz8fwcHBCAoKwoIFC9ClSxfNrLPOnTtjzJgxePzxx/H+++8DAJ544gmMGzeOM8zIbvWNCUK4whv5xfoHyioV3k7VXUZEZCs2zRCtXbsWxcXFGDZsGMLDwzX/PvvsMwCAu7s7Tp06hYkTJ6Jjx46YPn06OnbsiIyMDPj7+2uus2rVKtx9992YPHkyBg4cCF9fX2zfvh3u7u6aMp988gm6dOmCxMREJCYmomvXrti4caPV20wklbubDIvHxwKoD34aUj9ePD6WGQAiIguwaYbI2AQ3Hx8f7Ny50+h1vL29sWbNGqxZs0ZvmaCgIKSkpJhcRyJbGhMXjrUP9dSsQ6Sm5IadREQWZReDqolIvzFx4UiIVeLQrwW4lnMI/5neB/3bhzIzRERkQdzclcgBuLvJNGOF7GXWEBGRM2FARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkctjQEREREQujwERERERuTwGREREROTyGBARERGRy2NARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkctjQEREREQujwERERERuTwGREREROTyGBARERGRy2NARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkctjQEREREQujwERERERuTwGREREROTyGBARERGRy2NARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkctjQEREREQujwERERERuTybBkTLly9Hnz594O/vj9DQUNx99904c+aMVhkhBJKTkxEREQEfHx8MGzYMp0+f1ipTVVWFOXPmICQkBH5+fpgwYQIuXbqkVaaoqAhJSUlQKBRQKBRISkrCjRs3WrqJRERE5ABsGhDt3bsXs2bNwqFDh5Ceno7a2lokJiairKxMU2bFihVYuXIl3nnnHRw9ehRKpRIJCQm4efOmpsy8efOwdetWbN68GQcOHEBpaSnGjRuHuro6TZlp06YhMzMTaWlpSEtLQ2ZmJpKSkqzaXiIiIrJPHrZ88rS0NK3H69evR2hoKI4dO4YhQ4ZACIHVq1fj5ZdfxqRJkwAAH330EcLCwrBp0ybMnDkTxcXF+PDDD7Fx40aMGjUKAJCSkoLIyEjs3r0bo0ePRk5ODtLS0nDo0CH069cPALBu3TrEx8fjzJkzuP32263bcCIiIrIrdjWGqLi4GAAQFBQEAMjNzUV+fj4SExM1ZeRyOYYOHYqDBw8CAI4dO4aamhqtMhEREYiLi9OUycjIgEKh0ARDANC/f38oFApNGSIiInJdNs0QNSSEwHPPPYdBgwYhLi4OAJCfnw8ACAsL0yobFhaG8+fPa8p4eXkhMDCwSRn1z+fn5yM0NLTJc4aGhmrKNFZVVYWqqirN45KSEgBATU0NampqzGmiTajr6kh1NpUrtBFgO50N2+k8XKGNgOO2U2p97SYgmj17Nk6ePIkDBw40OSeTybQeCyGaHGuscRld5Q1dZ/ny5ViyZEmT47t27YKvr6/B57ZH6enptq5Ci3OFNgJsp7NhO52HK7QRcLx2lpeXSypnFwHRnDlzsG3bNuzbtw9t27bVHFcqlQDqMzzh4eGa4wUFBZqskVKpRHV1NYqKirSyRAUFBRgwYICmzJUrV5o879WrV5tkn9QWLlyI5557TvO4pKQEkZGRSExMREBAQDNaa101NTVIT09HQkICPD09bV2dFuEKbQTYTmfDdjoPV2gj4LjtVPfwGGPTgEgIgTlz5mDr1q34/vvvERMTo3U+JiYGSqUS6enp6NGjBwCguroae/fuxRtvvAEA6NWrFzw9PZGeno7JkycDAPLy8pCVlYUVK1YAAOLj41FcXIwjR46gb9++AIDDhw+juLhYEzQ1JpfLIZfLmxz39PR0qD8ENUettylcoY0A2+ls2E7n4QptBByvnVLratOAaNasWdi0aRO++uor+Pv7a8bzKBQK+Pj4QCaTYd68eVi2bBk6dOiADh06YNmyZfD19cW0adM0ZWfMmIH58+cjODgYQUFBWLBgAbp06aKZdda5c2eMGTMGjz/+ON5//30AwBNPPIFx48ZxhhkRERHZNiBau3YtAGDYsGFax9evX49HHnkEAPDCCy+goqICTz/9NIqKitCvXz/s2rUL/v7+mvKrVq2Ch4cHJk+ejIqKCowcORIbNmyAu7u7pswnn3yCuXPnamajTZgwAe+8807LNpCIiIgcgs27zIyRyWRITk5GcnKy3jLe3t5Ys2YN1qxZo7dMUFAQUlJSzKkmEREROTm7WoeIiIiIyBYYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8hgQERERkctjQEREREQujwERERERuTwGREREROTyGBARERGRy2NARERERC6PARERERG5PAZERERE5PIYEBEREZHLY0BERERELo8BEREREbk8BkRERETk8jxsXQEicj51KoEjuYUouFmJUH9v9I0JgrubzNbVIiLSiwEREVlUWlYelmzPRl5xpeZYuMIbi8fHYkxcuA1rRkSkH7vMiMhi0rLy8FTKca1gCADyiyvxVMpxpGXl2ahmRESGmZ0h+uWXX/D999+joKAAKpVK69w///nPZleMiBxLnUpgyfZsCB3nBAAZgCXbs5EQq2T3GRHZHbMConXr1uGpp55CSEgIlEolZLK/3txkMhkDIiIXdCS3sElmqCEBIK+4EkdyCxF/W7D1KkZEJIFZAdFrr72GpUuX4sUXX7R0fYjIQRXc1B8MmVOOiMiazBpDVFRUhPvvv9/SdSEiBxbq723RckRE1mRWQHT//fdj165dlq4LETmwvjFBCFd4Q9/oIBnqZ5v1jQmyZrWIiCQxq8usffv2WLRoEQ4dOoQuXbrA09NT6/zcuXMtUjkichzubjIsHh+Lp1KOQwZoDa5WB0mLx8dyQDUR2SWzAqIPPvgArVq1wt69e7F3716tczKZjAERkYsaExeOtQ/1bLIOkZLrEBGRnTMrIMrNzbV0PYjISYyJC0dCrJIrVRORQ2n2StVC1CfGG069JyLX5u4m49R6InIoZq9U/fHHH6NLly7w8fGBj48Punbtio0bN1qy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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from plot import plotVariables\n", "plotVariables(data_expanded[\"duration\"],data_expanded[\"resp_duration\"])" ] }, { "cell_type": "code", "execution_count": 6, "id": "584ab790-e5b7-4d52-af05-39f8d2f1692d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'role=\\'assistant\\' content=\\'{\"duration\":\"25\",\"ZusatzInfo\":\"Bitte geben Sie an, ob zusätzlich Fensterreinigung, Teppichreinigung, Bodenpflege, etc. erforderlich sind, sowie die genaue Aufteilung der 50\\\\u202fqm auf die einzelnen Räume.\",\"complete\":\"0\",\"confidence\":\"0.3\",\"missverständliche Aspekte\":\"Nicht spezifiziert, ob die 50\\\\u202fqm die gesamte Raumfläche oder die zu reinigende Bodenfläche umfasst; fehlende Angaben zu Fenstern, Bodenbelag, etc.\",\"Zu erbringende Leistungen:\":\"Reinigung aller Räume (Boden, Oberflächen), Grundreinigung.\",\"Rechenweg\":\"Annahme 5 Minuten pro 10\\\\u202fqm → 50\\\\u202fqm / 10 = 5 Einheiten × 5\\\\u202fMinuten = 25\\\\u202fMinuten.\",\"Kommentare\":\"Beschreibung unvollständig; weitere Angaben zu Fenstern, Bodenbelag und spezifischen Anforderungen nötig.\"}\\' thinking=\\'We need to respond only in JSON with specified fields: duration, ZusatzInfo, complete, confidence, missverständliche Aspekte, Zu erbringende Leistungen:, Rechenweg, Kommentare.\\\\n\\\\nThe user gave description: \"50qm Alle Räume bitte reinigen Küche und Wohnzimmer Abstellraum Schlafzimmer Badezimmer Wc Am 28.6.23\". It\\\\\\'s not specifying which specific tasks or details; only that total area is 50 qm and all rooms to be cleaned. We must interpret. But tasks are \"reinigungsaufträge zur Endreinigung\" for end cleaning after occupant moved out. The example durations given: windows, balcony, etc. But user didn\\\\\\'t mention windows, floor area? There\\\\\\'s mention of 50 qm total area. So we can assume floor cleaning area maybe 50 qm. But we don\\\\\\'t have tasks like windows, etc. So we need to interpret.\\\\n\\\\nWe must check if description is complete: It lists rooms but not details. We only have area 50qm, not each room area. So it\\\\\\'s incomplete. Should ask for more info. But per instruction: If no extra info needed, leave field empty. But we do need extra info: like details of windows, floor area, etc. So we should set ZusatzInfo empty? Wait \"Gibt es zusätzliche Informationen die du vom Kunden anfordern möchtest? Lass das feld leer, wenn nicht.\" So we can ask additional info. But the field \"ZusatzInfo\" is for extra info that we need? It says \"Gibt es zusätzliche Informationen die du vom Kunden anfordern möchtest? Lass das Feld leer, wenn nicht.\" So we should fill \"ZusatzInfo\" with the question we want to ask: like \"Bitte geben Sie an, ob zusätzliche Leistungen wie Fensterreinigung, Teppichreinigung etc. erforderlich sind.\" So we need to provide a question.\\\\n\\\\nWe must provide \"complete\" as 1 if description complete else 0. It\\\\\\'s incomplete, so 0.\\\\n\\\\nConfidence: how confident we are in interpretation? Maybe 0.3.\\\\n\\\\nMissverständliche Aspekte: likely lack of detail on area per room, whether windows included, floor area.\\\\n\\\\nZu erbringende Leistungen: we can list generic: Reinigung aller Räume (floor, surfaces), but we need to estimate duration based on area? They gave 50qm. Example durations: windows 20 min, balcony 20, altbau window 30, etc. For floor cleaning: Not specified. We might estimate 10 min per 10 sqm? Not given. But we can approximate? But no instructions for floor cleaning duration. The schema demands \"duration\": \"quoted integer\". So we must produce integer minutes. We could guess maybe 5 min per 10 sqm => 25 min. But uncertain. Since incomplete, we might leave duration as \"?\" But must provide integer. We can compute maybe 10 min per 10 sqm => 50sqm -> 50 min? Or 1 min per sqm? Not defined. Maybe safe: 5 min per 10sqm => 25 min. But mention uncertain. Provide explanation.\\\\n\\\\nRechenweg: explain calculation.\\\\n\\\\nKommentare: maybe note we need more info.\\\\n\\\\nSo produce JSON:\\\\n\\\\n{\\\\n \"duration\": \"25\",\\\\n \"ZusatzInfo\": \"Bitte geben Sie an, ob zusätzlich Fensterreinigung, Teppichreinigung, Bodenpflege, etc. erforderlich sind, sowie die genaue Aufteilung der 50 qm auf die einzelnen Räume.\",\\\\n \"complete\": \"0\",\\\\n \"confidence\": \"0.3\",\\\\n \"missverständliche Aspekte\": \"Nicht spezifiziert, ob die 50 qm die gesamte Raumfläche oder die zu reinigende Bodenfläche umfasst; fehlende Angaben zu Fenstern, Bodenbelag, etc.\",\\\\n \"Zu erbringende Leistungen:\": \"Reinigung aller Räume (Boden, Oberflächen), Grundreinigung.\",\\\\n \"Rechenweg\": \"Annahme 5 Minuten pro 10 qm → 50 qm / 10 = 5 Einheiten × 5 Minuten = 25 Minuten.\",\\\\n \"Kommentare\": \"Beschreibung unvollständig; weitere Angaben zu Fenstern, Bodenbelag und spezifischen Anforderungen nötig.\"\\\\n}\\\\n\\\\nMake sure JSON string quoting correct.\\' images=None tool_calls=None'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_expanded.loc[1,\"response\"]" ] }, { "cell_type": "code", "execution_count": null, "id": "9a522e83-df13-4cc9-a566-4bc1131a6e6e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "fc17b8bd-c764-429b-b59c-c81e38bdc19e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e8ba7982-709d-4f89-8bdf-b66d9e1f1610", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "58d01dcb-0ee5-428e-8d44-02db4c243389", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "74a72a6a-daed-48bf-9da5-594567fc8087", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "ea0f8f96-a3a5-4fcf-9567-28b9eb5ade74", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "921d4d2b-a01a-4f39-89f4-00ed5193df63", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "c934a31d-c55f-406e-a381-fd6cf9778dca", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "08eac323-951f-45f4-b2c7-925ea92c269e", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.11" } }, "nbformat": 4, "nbformat_minor": 5 }