{ "modell": "Qwen3.6-27B Uncensored Q6_K_P", "reasoning": false, "max_tokens": 900, "terminal": [ { "id": "term01", "titel": "Zeilen zaehlen", "ok": true, "grund": "", "antwort": "wc -l < log.txt", "tps": 30.059044551798177, "prompt_tps": 164.82773042055672, "tokens": 7, "prompt_tokens": 67, "denk_zeichen": 0, "antwort_zeichen": 15, "abbruch": "stop", "ttft": 0.406, "sekunden": 0.69 }, { "id": "term02", "titel": "Muster mit Zeilennummer", "ok": true, "grund": "", "antwort": "grep -n \"WARN\" log.txt", "tps": 16.793895978608308, "prompt_tps": 369.4039696267847, "tokens": 9, "prompt_tokens": 63, "denk_zeichen": 0, "antwort_zeichen": 22, "abbruch": "stop", "ttft": 0.171, "sekunden": 0.92 }, { "id": "term03", "titel": "Groesste Datei", "ok": true, "grund": "", "antwort": "ls -S | head -n 1", "tps": 19.370084840971604, "prompt_tps": 384.5526370988417, "tokens": 10, "prompt_tokens": 66, "denk_zeichen": 0, "antwort_zeichen": 17, "abbruch": "stop", "ttft": 0.172, "sekunden": 0.9 }, { "id": "term04", "titel": "Spalte aus CSV", "ok": true, "grund": "", "antwort": "tail -n +2 messwerte.csv | cut -d';' -f1", "tps": 20.347673921742846, "prompt_tps": 355.6690649331728, "tokens": 18, "prompt_tokens": 83, "denk_zeichen": 0, "antwort_zeichen": 40, "abbruch": "stop", "ttft": 0.233, "sekunden": 1.33 }, { "id": "term05", "titel": "Doppelte Zeilen", "ok": true, "grund": "", "antwort": "sort namen.txt | uniq -c | sort -rn", "tps": 28.917265294221128, "prompt_tps": 152.13076692630318, "tokens": 12, "prompt_tokens": 65, "denk_zeichen": 0, "antwort_zeichen": 35, "abbruch": "stop", "ttft": 0.427, "sekunden": 1.07 }, { "id": "term06", "titel": "Summe einer Spalte", "ok": false, "grund": "Ausgabe falsch: '29'", "antwort": "awk -F';' 'NR>1{sum+=$2} END{print sum}' messwerte.csv", "tps": 23.46490627725351, "prompt_tps": 413.1943140169463, "tokens": 24, "prompt_tokens": 77, "denk_zeichen": 0, "antwort_zeichen": 54, "abbruch": "stop", "ttft": 0.186, "sekunden": 1.65 }, { "id": "term07", "titel": "Numerisch sortieren", "ok": false, "grund": "Ausgabe falsch: 'pumpe;6;47.3;ok\\nmotor;6;231.5;ok\\nkompressor;6;18.7;warn\\nvent'", "antwort": "tail -n +2 messwerte.csv | sort -t ';' -k2 -nr", "tps": 20.87863906437324, "prompt_tps": 363.1630275555048, "tokens": 19, "prompt_tokens": 89, "denk_zeichen": 0, "antwort_zeichen": 46, "abbruch": "stop", "ttft": 0.245, "sekunden": 1.4 }, { "id": "term08", "titel": "JSON-Feld lesen", "ok": true, "grund": "", "antwort": "jq -r '.port' config.json", "tps": 29.673297000029674, "prompt_tps": 337.09948367595746, "tokens": 9, "prompt_tokens": 60, "denk_zeichen": 0, "antwort_zeichen": 25, "abbruch": "stop", "ttft": 0.178, "sekunden": 0.88 }, { "id": "term09", "titel": "Ersetzen in Datei", "ok": true, "grund": "", "antwort": "sed -i 's/WARN/ACHTUNG/g' log.txt", "tps": 27.489755770701077, "prompt_tps": 429.63653796781915, "tokens": 16, "prompt_tokens": 82, "denk_zeichen": 0, "antwort_zeichen": 33, "abbruch": "stop", "ttft": 0.191, "sekunden": 1.2 }, { "id": "term10", "titel": "Gefiltert zaehlen", "ok": true, "grund": "", "antwort": "awk -F';' 'NR>1 && $2==6{c++}END{print c}' messwerte.csv", "tps": 23.663038334122103, "prompt_tps": 452.58545658909713, "tokens": 27, "prompt_tokens": 91, "denk_zeichen": 0, "antwort_zeichen": 56, "abbruch": "stop", "ttft": 0.201, "sekunden": 1.79 } ], "code": [ { "id": "code01", "titel": "Intervalle zusammenfassen", "ok": true, "grund": "", "bestanden": 5, "gesamt": 5, "code": "def merge_intervalle(intervalle):\n if not intervalle:\n return []\n \n sortierte = sorted(intervalle, key=lambda x: x[0])\n merged = [sortierte[0]]\n \n for start, ende in sortierte[1:]:\n letzter = merged[-1]\n if start <= letzter[1]:\n merged[-1] = (letzter[0], max(letzter[1], ende))\n else:\n merged.append((start, ende))\n \n return merged", "tps": 23.37059909252694, "prompt_tps": 476.44663029278416, "tokens": 128, "prompt_tokens": 124, "denk_zeichen": 0, "antwort_zeichen": 419, "abbruch": "stop", "ttft": 0.26, "sekunden": 6.15 }, { "id": "code02", "titel": "Verschachteltes dict flach machen", "ok": true, "grund": "", "bestanden": 6, "gesamt": 6, "code": "def flatten(d, sep='.'):\n result = {}\n for key, value in d.items():\n if isinstance(value, dict):\n if not value:\n continue\n sub = flatten(value, sep)\n for sub_key, sub_value in sub.items():\n result[f\"{key}{sep}{sub_key}\"] = sub_value\n else:\n result[key] = value\n return result", "tps": 22.899236983259243, "prompt_tps": 467.12072810559937, "tokens": 97, "prompt_tokens": 93, "denk_zeichen": 0, "antwort_zeichen": 386, "abbruch": "stop", "ttft": 0.199, "sekunden": 4.84 }, { "id": "code03", "titel": "Roemische Zahlen lesen", "ok": true, "grund": "", "bestanden": 6, "gesamt": 6, "code": "def roemisch_zu_int(s: str) -> int:\n romer_werte = {\n 'I': 1,\n 'V': 5,\n 'X': 10,\n 'L': 50,\n 'C': 100,\n 'D': 500,\n 'M': 1000\n }\n \n ergebnis = 0\n i = 0\n \n while i < len(s):\n # Wenn es ein naechstes Zeichen gibt und der aktuelle Wert kleiner ist\n if i + 1 < len(s) and romer_werte[s[i]] < romer_werte[s[i + 1]]:\n ergebnis += romer_werte[s[i + 1]] - romer_werte[s[i]]\n i += 2\n else:\n ergebnis += romer_werte[s[i]]\n i += 1\n \n return ergebnis", "tps": 22.73269413038807, "prompt_tps": 433.78756375929277, "tokens": 225, "prompt_tokens": 87, "denk_zeichen": 0, "antwort_zeichen": 599, "abbruch": "stop", "ttft": 0.201, "sekunden": 10.55 }, { "id": "code04", "titel": "Wortfrequenz mit Gleichstand", "ok": true, "grund": "", "bestanden": 5, "gesamt": 5, "code": "import re\nfrom collections import Counter\n\ndef top_woerter(text, n):\n # Extrahiere alle Wörter (Folgen aus Buchstaben und Ziffern)\n woerter = re.findall(r'[a-zA-Z0-9]+', text)\n \n # Konvertiere alle Wörter in Kleinbuchstaben\n woerter = [wort.lower() for wort in woerter]\n \n # Zähle die Häufigkeit der Wörter\n zaehler = Counter(woerter)\n \n # Sortiere nach Anzahl (absteigend) und dann alphabetisch (aufsteigend)\n sortierte_woerter = sorted(zaehler.items(), key=lambda x: (-x[1], x[0]))\n \n # Gib die n häufigsten Wörter zurück\n return sortierte_woerter[:n]", "tps": 22.385186379061793, "prompt_tps": 432.39570383982834, "tokens": 190, "prompt_tokens": 112, "denk_zeichen": 0, "antwort_zeichen": 609, "abbruch": "stop", "ttft": 0.259, "sekunden": 9.01 }, { "id": "code05", "titel": "Klammern pruefen", "ok": true, "grund": "", "bestanden": 7, "gesamt": 7, "code": "def klammern_ok(s):\n stack = []\n matching = {')': '(', ']': '[', '}': '{'}\n for char in s:\n if char in matching.values():\n stack.append(char)\n elif char in matching:\n if not stack or stack.pop() != matching[char]:\n return False\n return not stack", "tps": 22.568406832439138, "prompt_tps": 444.0833463698709, "tokens": 85, "prompt_tokens": 88, "denk_zeichen": 0, "antwort_zeichen": 322, "abbruch": "stop", "ttft": 0.198, "sekunden": 4.19 }, { "id": "code06", "titel": "Suche im rotierten Feld", "ok": true, "grund": "", "bestanden": 6, "gesamt": 6, "code": "def suche_rotiert(arr, ziel):\n if not arr:\n return -1\n \n links, rechts = 0, len(arr) - 1\n \n while links <= rechts:\n mitte = (links + rechts) // 2\n \n if arr[mitte] == ziel:\n return mitte\n \n # Bestimme, welcher Teil sortiert ist\n if arr[links] <= arr[mitte]:\n # Linker Teil ist sortiert\n if arr[links] <= ziel < arr[mitte]:\n rechts = mitte - 1\n else:\n links = mitte + 1\n else:\n # Rechter Teil ist sortiert\n if arr[mitte] < ziel <= arr[", "tps": 23.08083179530167, "prompt_tps": 277.85495971103086, "tokens": 195, "prompt_tokens": 105, "denk_zeichen": 0, "antwort_zeichen": 728, "abbruch": "stop", "ttft": 0.378, "sekunden": 9.05 }, { "id": "code07", "titel": "Werktage zwischen zwei Daten", "ok": true, "grund": "", "bestanden": 5, "gesamt": 5, "code": "from datetime import datetime, timedelta\n\ndef werktage(von, bis):\n if not isinstance(von, str) or not isinstance(bis, str):\n return 0\n \n try:\n start_date = datetime.strptime(von, '%Y-%m-%d')\n end_date = datetime.strptime(bis, '%Y-%m-%d')\n except ValueError:\n return 0\n \n if end_date < start_date:\n return 0\n \n count = 0\n current_date = start_date\n while current_date <= end_date:\n if current_date.weekday() < 5: # Monday to Friday\n count += 1\n current_date += timedelta(days=1)\n \n return count", "tps": 23.126009586148914, "prompt_tps": 262.2263012980202, "tokens": 166, "prompt_tokens": 90, "denk_zeichen": 0, "antwort_zeichen": 604, "abbruch": "stop", "ttft": 0.343, "sekunden": 7.75 }, { "id": "code08", "titel": "LRU-Zwischenspeicher", "ok": true, "grund": "", "bestanden": 5, "gesamt": 5, "code": "class LRU:\n def __init__(self, groesse):\n self.groesse = groesse\n self.cache = {}\n self.order = []\n\n def get(self, schluessel):\n if schluessel in self.cache:\n self.order.remove(schluessel)\n self.order.append(schluessel)\n return self.cache[schluessel]\n return None\n\n def put(self, schluessel, wert):\n if schluessel in self.cache:\n self.order.remove(schluessel)\n elif len(self.cache) >= self.groesse:\n oldest = self.order.pop(0)\n del self.cache[oldest]\n self.cache[schlue", "tps": 23.19626009646056, "prompt_tps": 506.39851659502204, "tokens": 181, "prompt_tokens": 133, "denk_zeichen": 0, "antwort_zeichen": 664, "abbruch": "stop", "ttft": 0.263, "sekunden": 8.28 }, { "id": "code09", "titel": "Wiederholung nach Fehlschlag", "ok": true, "grund": "", "bestanden": 4, "gesamt": 4, "code": "def wiederhole(fn, versuche=3):\n for i in range(versuche):\n try:\n return fn()\n except Exception as e:\n if i == versuche - 1:\n raise", "tps": 24.525379168931245, "prompt_tps": 502.50065182867576, "tokens": 56, "prompt_tokens": 106, "denk_zeichen": 0, "antwort_zeichen": 199, "abbruch": "stop", "ttft": 0.211, "sekunden": 2.99 }, { "id": "code10", "titel": "CSV sortieren und als JSON", "ok": true, "grund": "", "bestanden": 3, "gesamt": 3, "code": "import csv\nimport json\nimport io\n\ndef csv_nach_json(text, spalte):\n reader = csv.DictReader(io.StringIO(text), delimiter=';')\n rows = list(reader)\n \n # Check if all values in the specified column are numeric\n try:\n for row in rows:\n float(row[spalte])\n numeric = True\n except (ValueError, KeyError):\n numeric = False\n \n if numeric:\n rows.sort(key=lambda x: float(x[spalte]))\n else:\n rows.sort(key=lambda x: x[spalte])\n \n return json.dumps(rows, ensure_ascii=False)", "tps": 22.718219628388255, "prompt_tps": 556.4025725952017, "tokens": 148, "prompt_tokens": 127, "denk_zeichen": 0, "antwort_zeichen": 557, "abbruch": "stop", "ttft": 0.228, "sekunden": 6.96 } ], "messungen": [ { "tps": 30.059044551798177, "prompt_tps": 164.82773042055672, "tokens": 7, "prompt_tokens": 67, "denk_zeichen": 0, "antwort_zeichen": 15, "abbruch": "stop", "ttft": 0.406, "sekunden": 0.69 }, { "tps": 16.793895978608308, "prompt_tps": 369.4039696267847, "tokens": 9, "prompt_tokens": 63, "denk_zeichen": 0, "antwort_zeichen": 22, "abbruch": "stop", "ttft": 0.171, "sekunden": 0.92 }, { "tps": 19.370084840971604, "prompt_tps": 384.5526370988417, "tokens": 10, "prompt_tokens": 66, "denk_zeichen": 0, "antwort_zeichen": 17, "abbruch": "stop", "ttft": 0.172, "sekunden": 0.9 }, { "tps": 20.347673921742846, "prompt_tps": 355.6690649331728, "tokens": 18, "prompt_tokens": 83, "denk_zeichen": 0, "antwort_zeichen": 40, "abbruch": "stop", "ttft": 0.233, "sekunden": 1.33 }, { "tps": 28.917265294221128, "prompt_tps": 152.13076692630318, "tokens": 12, "prompt_tokens": 65, "denk_zeichen": 0, "antwort_zeichen": 35, "abbruch": "stop", "ttft": 0.427, "sekunden": 1.07 }, { "tps": 23.46490627725351, "prompt_tps": 413.1943140169463, "tokens": 24, "prompt_tokens": 77, "denk_zeichen": 0, "antwort_zeichen": 54, "abbruch": "stop", "ttft": 0.186, "sekunden": 1.65 }, { "tps": 20.87863906437324, "prompt_tps": 363.1630275555048, "tokens": 19, "prompt_tokens": 89, "denk_zeichen": 0, "antwort_zeichen": 46, "abbruch": "stop", "ttft": 0.245, "sekunden": 1.4 }, { "tps": 29.673297000029674, "prompt_tps": 337.09948367595746, "tokens": 9, "prompt_tokens": 60, "denk_zeichen": 0, "antwort_zeichen": 25, "abbruch": "stop", "ttft": 0.178, "sekunden": 0.88 }, { "tps": 27.489755770701077, "prompt_tps": 429.63653796781915, "tokens": 16, "prompt_tokens": 82, "denk_zeichen": 0, "antwort_zeichen": 33, "abbruch": "stop", "ttft": 0.191, "sekunden": 1.2 }, { "tps": 23.663038334122103, "prompt_tps": 452.58545658909713, "tokens": 27, "prompt_tokens": 91, "denk_zeichen": 0, "antwort_zeichen": 56, "abbruch": "stop", "ttft": 0.201, "sekunden": 1.79 }, { "tps": 23.37059909252694, "prompt_tps": 476.44663029278416, "tokens": 128, "prompt_tokens": 124, "denk_zeichen": 0, "antwort_zeichen": 419, "abbruch": "stop", "ttft": 0.26, "sekunden": 6.15 }, { "tps": 22.899236983259243, "prompt_tps": 467.12072810559937, "tokens": 97, "prompt_tokens": 93, "denk_zeichen": 0, "antwort_zeichen": 386, "abbruch": "stop", "ttft": 0.199, "sekunden": 4.84 }, { "tps": 22.73269413038807, "prompt_tps": 433.78756375929277, "tokens": 225, "prompt_tokens": 87, "denk_zeichen": 0, "antwort_zeichen": 599, "abbruch": "stop", "ttft": 0.201, "sekunden": 10.55 }, { "tps": 22.385186379061793, "prompt_tps": 432.39570383982834, "tokens": 190, "prompt_tokens": 112, "denk_zeichen": 0, "antwort_zeichen": 609, "abbruch": "stop", "ttft": 0.259, "sekunden": 9.01 }, { "tps": 22.568406832439138, "prompt_tps": 444.0833463698709, "tokens": 85, "prompt_tokens": 88, "denk_zeichen": 0, "antwort_zeichen": 322, "abbruch": "stop", "ttft": 0.198, "sekunden": 4.19 }, { "tps": 23.08083179530167, "prompt_tps": 277.85495971103086, "tokens": 195, "prompt_tokens": 105, "denk_zeichen": 0, "antwort_zeichen": 728, "abbruch": "stop", "ttft": 0.378, "sekunden": 9.05 }, { "tps": 23.126009586148914, "prompt_tps": 262.2263012980202, "tokens": 166, "prompt_tokens": 90, "denk_zeichen": 0, "antwort_zeichen": 604, "abbruch": "stop", "ttft": 0.343, "sekunden": 7.75 }, { "tps": 23.19626009646056, "prompt_tps": 506.39851659502204, "tokens": 181, "prompt_tokens": 133, "denk_zeichen": 0, "antwort_zeichen": 664, "abbruch": "stop", "ttft": 0.263, "sekunden": 8.28 }, { "tps": 24.525379168931245, "prompt_tps": 502.50065182867576, "tokens": 56, "prompt_tokens": 106, "denk_zeichen": 0, "antwort_zeichen": 199, "abbruch": "stop", "ttft": 0.211, "sekunden": 2.99 }, { "tps": 22.718219628388255, "prompt_tps": 556.4025725952017, "tokens": 148, "prompt_tokens": 127, "denk_zeichen": 0, "antwort_zeichen": 557, "abbruch": "stop", "ttft": 0.228, "sekunden": 6.96 } ], "summe": { "terminal_ok": 8, "terminal_n": 10, "code_ok": 10, "code_n": 10, "code_testfaelle_ok": 52, "code_testfaelle_n": 52, "tps_median": 23.1, "tps_min": 16.8, "tps_max": 30.1, "prompt_tps_median": 429.6, "tokens_gesamt": 1622, "sekunden_gesamt": 81.6, "anfragen": 20, "tokens_je_aufgabe": 81.1, "denk_zeichen_gesamt": 0, "antwort_zeichen_gesamt": 5430, "am_limit": 0 } }