[{"data":1,"prerenderedAt":753},["ShallowReactive",2],{"blog-deepeval-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":35,"cover":90,"og":91,"expertise":92,"locales":93,"lang":95,"title":97,"description":98,"coverAlt":99,"metaTitle":100,"takeaways":101,"faq":107,"toc":120,"blocks":148,"others":513},"deepeval","2026-10-06",8,"llmops",[9,10,11,12,13],"LLM evaluation","pytest","LLM-as-a-judge","Red teaming","Open source",[4,15,16,17,18,19,20,21],"deepeval vs ragas","llm evaluation framework","pytest for llm outputs","g-eval metric","llm judge cost","deepeval pricing","llm red teaming open source",[23,26,29,32],{"name":24,"url":25},"DeepEval","https:\u002F\u002Fdeepeval.com",{"name":27,"url":28},"Confident AI","https:\u002F\u002Fwww.confident-ai.com",{"name":30,"url":31},"Pytest","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPytest",{"name":33,"url":34},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",[36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87],{"title":37,"url":38},"DeepEval documentation: getting started","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fgetting-started",{"title":40,"url":41},"GitHub: confident-ai\u002Fdeepeval, the README and licence","https:\u002F\u002Fgithub.com\u002Fconfident-ai\u002Fdeepeval",{"title":43,"url":44},"PyPI: deepeval, the latest release and Python requirement","https:\u002F\u002Fpypi.org\u002Fproject\u002Fdeepeval\u002F",{"title":46,"url":47},"DeepEval documentation: metrics introduction","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-introduction",{"title":49,"url":50},"DeepEval documentation: G-Eval","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-llm-evals",{"title":52,"url":53},"DeepEval documentation: Faithfulness","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-faithfulness",{"title":55,"url":56},"DeepEval documentation: Tool Correctness","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-tool-correctness",{"title":58,"url":59},"DeepEval documentation: generate goldens from documents","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fsynthesizer-generate-from-docs",{"title":61,"url":62},"DeepEval documentation: unit testing in CI\u002FCD","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fevaluation-unit-testing-in-ci-cd",{"title":64,"url":65},"DeepEval FAQ","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Ffaq",{"title":67,"url":68},"DeepEval documentation: data privacy","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fdata-privacy",{"title":70,"url":71},"GitHub: confident-ai\u002Fdeepteam, the red-teaming framework","https:\u002F\u002Fgithub.com\u002Fconfident-ai\u002Fdeepteam",{"title":73,"url":74},"Confident AI pricing","https:\u002F\u002Fwww.confident-ai.com\u002Fpricing",{"title":76,"url":77},"Confident AI documentation: data residency","https:\u002F\u002Fwww.confident-ai.com\u002Fdocs\u002Fsettings\u002Fdata-residency",{"title":79,"url":80},"Confident AI subprocessor list","https:\u002F\u002Fwww.confident-ai.com\u002Fsubprocessors-list",{"title":82,"url":83},"GitHub: explodinggradients\u002Fragas, the README","https:\u002F\u002Fgithub.com\u002Fexplodinggradients\u002Fragas",{"title":85,"url":86},"GitHub: promptfoo\u002Fpromptfoo, the README","https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo",{"title":88,"url":89},"Braintrust pricing","https:\u002F\u002Fwww.braintrust.dev\u002Fpricing","\u002Fimages\u002Fblog\u002Fdeepeval\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdeepeval\u002Fog.jpg","ai-engineer",[94,95,96],"en","de","hu","DeepEval-Test: pytest für LLM-Ausgaben, samt Richter-Rechnung","DeepEval führt LLM-Prüfungen als pytest-artige Tests aus, mit eingebauten Richter-Metriken. Die Bibliothek ist frei; Richter-Aufrufe und Datenfluss kosten.","Drei gestapelte Balken mit kleinen Quadraten am Ende, Pfeile führen zu einer hohen Säule neben einem Scheibenhaufen.","DeepEval-Test: pytest für LLM-Ausgaben · Balázs Csorba",[102,103,104,105,106],"DeepEval ist ein Apache-2.0-Framework für Python, das LLM-Prüfungen als Unit-Tests ausführt, und die Bibliothek funktioniert ohne Konto.","Die meisten vordefinierten Metriken nutzen ein anderes Modell als Richter, daher kann jeder Lauf Token kosten und einen anderen Wert liefern.","Mit den Standardeinstellungen ist der Richter OpenAI, Testfälle verlassen also dein Netz. Ein lokaler Richter wie Ollama hält sie drinnen, mit einer Qualität, die du messen musst.","Confident AI hat einen kostenlosen Tarif, Starter für $200 im Monat und Team für $2.000 im Monat, mit einem AVV für jeden Kunden und einer EU-Region in jedem Tarif.","Wähle Ragas, Promptfoo oder Braintrust für ein Apache-2.0-Metrik-Toolkit, eine deklarative CLI mit Red Teaming oder eine gehostete Oberfläche mit eigener Abrechnung.",[108,111,114,117],{"q":109,"a":110},"Sendet DeepEval meine Daten irgendwohin?","Ja, an das Richtermodell, das du konfigurierst. Ohne gesetztes Modell gilt laut FAQ OpenAI als Standard. Ergebnisse gehen nur an Confident AI, wenn du einen Schlüssel setzt, und der Standard-Speicherort sind die Vereinigten Staaten; die EU ist in jedem Tarif verfügbar.",{"q":112,"a":113},"Was kostet DeepEval?","Die Bibliothek ist unter Apache-2.0-Lizenz kostenlos. Confident AI hat einen kostenlosen Tarif mit zwei Plätzen und fünf Testläufen pro Woche, dazu Starter für $200 im Monat und Team für $2.000 im Monat, monatlich je Organisation abgerechnet. Richter-Aufrufe kommen extra hinzu und hängen vom Modell ab, das du wählst.",{"q":115,"a":116},"Sind die Werte wiederholbar?","Nicht genau. Die G-Eval-Doku sagt, die Metrik sei nicht deterministisch. Gib Schwellenwerten also etwas Spielraum und wiederhole einen fehlgeschlagenen Fall, bevor du ihn als Regression wertest. Tool Correctness ist anders, weil der Kernwert deterministisch ist.",{"q":118,"a":119},"Kann ich ein lokales Modell als Richter nutzen?","Ja. Die Metrikseite nennt Ollama unter den Richtern, und jedes andere Modell kannst du einbinden, indem du von DeepEvalBaseLLM ableitest. Prüfe den Richter an Fällen, die du selbst beschriftet hast, denn ein schwächerer Richter verschiebt jeden Wert.",[121,124,127,130,133,136,139,142,145],{"id":122,"title":123},"what-it-is","Was es ist",{"id":125,"title":126},"how-it-works","So funktioniert es",{"id":128,"title":129},"getting-started","Erste Schritte",{"id":131,"title":132},"metrics-and-judge-cost","Metriken und was der Richter kostet",{"id":134,"title":135},"goldens-red-teaming-and-ci","Goldens, Red Teaming und CI",{"id":137,"title":138},"cost-and-deployment","Kosten und Betrieb",{"id":140,"title":141},"where-it-falls-short","Wo es zu kurz greift",{"id":143,"title":144},"verdict","Fazit",{"id":146,"title":147},"sources","Quellen",[149,153,177,180,187,207,208,211,217,220,221,228,230,231,234,287,294,295,298,305,328,330,331,334,381,384,394,401,403,406,412,413,416,417,420,437,438],{"type":150,"content":151},"paragraph",[152],"DeepEval ist ein Open-Source-Framework für Python, das LLM-Prüfungen als Unit-Tests ausführt, mit mehr als dreißig eingebauten Metriken und einer optionalen Cloud-Plattform namens Confident AI. Das Urteil vorweg: Nimm es, wenn deine Entwickler:innen Python schreiben, Tests schon in der CI laufen lassen und das Verhalten des Modells bei jedem Pull Request prüfen wollen. Lass es weg, wenn der Standard-Richter OpenAI für deine Daten nicht akzeptabel ist oder wenn Nicht-Entwickler:innen zuerst einen gehosteten Arbeitsbereich brauchen.",{"type":150,"content":154},[155,156,161,162,166,167,171,172,176],"Es steht neben ",{"tag":157,"to":158,"children":159},"link","\u002Fblog\u002Fragas",[160],"Ragas",", ",{"tag":157,"to":163,"children":164},"\u002Fblog\u002Fpromptfoo",[165],"Promptfoo"," und ",{"tag":157,"to":168,"children":169},"\u002Fblog\u002Fbraintrust",[170],"Braintrust",", die ich separat besprochen habe. Zum Prozess rund um die Tests, vom Lesen der Traces von Hand bis zu einem Gate in der CI, siehe ",{"tag":157,"to":173,"children":174},"\u002Fblog\u002Fllm-evals-for-product-features",[175],"LLM-Evals für Produktfunktionen",".",{"type":178,"level":179,"id":122,"text":123},"heading",2,{"type":150,"content":181},[182,183,176],"DeepEval ist die Apache-2.0-Bibliothek hinter Confident AI, das sich selbst als Plattform für KI-Evals und Observability in Unternehmen beschreibt. Die Bibliothek läuft auf deinem Rechner und braucht kein Konto. Die aktuelle Version auf PyPI ist 4.2.8, veröffentlicht am 2. Oktober 2026, und sie braucht Python 3.9 oder neuer. Installiere sie mit ",{"tag":184,"children":185},"code",[186],"pip install -U deepeval",{"type":188,"ordered":189,"items":190},"list",false,[191,197,202],[192,196],{"tag":193,"children":194},"strong",[195],"Metriken. ","Mehr als dreißig benannte Metriken in neun Gruppen, von G-Eval und Agenten-Metriken bis zu Retrieval-, Mehrfach-Gesprächs-, Sicherheits- und Bildprüfungen.",[198,201],{"tag":193,"children":199},[200],"Richter. ","Fast alle vordefinierten Metriken nutzen ein LLM als Richter, und du kannst sie auf OpenAI, Azure OpenAI, Anthropic, Gemini, Ollama oder LiteLLM richten.",[203,206],{"tag":193,"children":204},[205],"Red Teaming. ","Ein eigenes Apache-2.0-Paket, DeepTeam, deckt Angriffe und Schwachstellen ab.",{"type":178,"level":179,"id":125,"text":126},{"type":150,"content":209},[210],"Ein Test ist gewöhnliches Python. Jede Metrik bekommt einen Testfall, der Eingabe, tatsächliche Ausgabe und je nach Metrik die erwartete Ausgabe, den Retrieval-Kontext oder die Werkzeuge enthält, die der Agent aufgerufen hat. Bei einer richterbasierten Metrik gehen Testfall und Kriterien an das Richtermodell, das einen Wert von 0 bis 1 und eine Begründung zurückgibt. Der Schwellenwert macht daraus Bestanden oder Nicht bestanden, und assert_test lässt den Test fehlschlagen, wenn der Wert darunter liegt.",{"type":212,"src":213,"alt":214,"wide":215,"caption":216},"image","\u002Fimages\u002Fblog\u002Fdeepeval\u002Fdiagram-7.webp","So entscheidet ein DeepEval-Test Ein Testfall aus Eingabe und Ausgabe geht an eine Metrik. Bei richterbasierten Metriken gibt das Richtermodell einen Wert von 0 bis 1 mit Begründung zurück. Der Schwellenwert entscheidet über Bestanden oder Nicht bestanden, pytest meldet das Ergebnis, und die CI blockiert den Merge bei einem Fehler. Ergebnisse gehen nur mit gesetztem Schlüssel an Confident AI, und der optionale Upload ist der gestrichelte Schritt.",true,"Bei richterbasierten Metriken ist das Richtermodell der einzige Schritt, der ein Modell aufruft, und Ergebnisse gehen nur mit gesetztem Schlüssel an Confident AI.",{"type":150,"content":218},[219],"Der Richter ist der Teil, der bei Kosten und Verlässlichkeit zählt. Die Metrikseite sagt, dass fast alle vordefinierten Metriken ein LLM als Richter nutzen und dass jeder Richter verwendet werden kann, darunter OpenAI, Azure OpenAI, Ollama, Anthropic, Gemini und LiteLLM. Du kannst auch dein eigenes Modell einbinden, indem du von DeepEvalBaseLLM ableitest. Die FAQ sagt, dass der Richter standardmäßig OpenAI ist, wenn du kein Modell angibst.",{"type":178,"level":179,"id":128,"text":129},{"type":150,"content":222},[223,224,227],"Setze einen OpenAI-Schlüssel für den Richter, installiere das Paket und schreibe den Test in eine Datei wie test_example.py. Das Beispiel prüft eine Antwort mit G-Eval, bei dem du die Kriterien in einfacher Sprache beschreibst und DeepEval daraus die Bewertungsschritte erzeugt. Starte es mit ",{"tag":184,"children":225},[226],"deepeval test run test_example.py",". Der Test schlägt fehl, wenn der Korrektheitswert unter 0,5 liegt.",{"type":184,"code":229},"# test_example.py\nfrom deepeval import assert_test\nfrom deepeval.metrics import GEval\nfrom deepeval.test_case import LLMTestCase, SingleTurnParams\n\n\ndef test_refund_answer():\n    correctness = GEval(\n        name='Correctness',\n        criteria='Is the actual output a correct answer to the input, consistent with the expected output?',\n        evaluation_params=[\n            SingleTurnParams.INPUT,\n            SingleTurnParams.ACTUAL_OUTPUT,\n            SingleTurnParams.EXPECTED_OUTPUT,\n        ],\n        threshold=0.5,\n    )\n    test_case = LLMTestCase(\n        input='Can I return shoes after 30 days?',\n        actual_output='You can return them within 30 days of delivery, if they are unworn.',\n        expected_output='Returns are accepted within 30 days of delivery if the item is unworn.',\n    )\n    assert_test(test_case, [correctness])",{"type":178,"level":179,"id":131,"text":132},{"type":150,"content":232},[233],"Die Wahl der Metrik entscheidet über die Rechnung. Faithfulness extrahiert die Behauptungen in einer Antwort, prüft jede gegen den Retrieval-Kontext und bewertet den Anteil der Behauptungen, die dem Kontext nicht widersprechen, mit einem Standard-Schwellenwert von 0,5. Der Richter hat mehr zu lesen, wenn eine Antwort viele Behauptungen macht, also wächst die Rechnung mit der Länge der Antwort. evaluate() bringt Caching, Parallelisierung, Kostenverfolgung und Fehlerbehandlung mit, während ein einzelner measure()-Aufruf diese Optimierungen verliert. Die Doku warnt außerdem, dass viele Metrikaufrufe gleichzeitig Rate-Limit-Fehler auslösen können, deshalb begrenze die Parallelität auf das Limit deines Anbieters.",{"type":235,"head":236,"rows":241},"table",[237,239],[238],"Gruppe",[240],"Benannte Metriken",[242,247,252,257,262,267,272,277,282],[243,245],[244],"Benutzerdefiniert",[246],"G-Eval, DAG, Arena G-Eval, JevEval und eigene Code-Metriken wie BLEU oder ROUGE",[248,250],[249],"Agenten, Verlauf",[251],"Task Completion, Step Efficiency, Plan Adherence, Plan Quality",[253,255],[254],"Agenten, Komponenten",[256],"Tool Correctness, Argument Correctness",[258,260],[259],"Retriever",[261],"Contextual Relevancy, Contextual Precision, Contextual Recall",[263,265],[264],"Generator",[266],"Answer Relevancy, Faithfulness",[268,270],[269],"Mehrfach-Chatbots",[271],"Knowledge Retention, Role Adherence, Conversation Completeness, Conversation Relevancy",[273,275],[274],"Sicherheit",[276],"Bias, Toxicity, Non-Advice, Misuse, PIILeakage, Role Violation",[278,280],[279],"Bild",[281],"Image Coherence, Image Helpfulness, Image Reference, Text-to-Image, Image-Editing",[283,285],[284],"Sonstige",[286],"Hallucination, JSON Correctness, Summarization, Ragas",{"type":288,"variant":289,"title":290,"body":291},"callout","note","Deterministisch, wo es geht",[292],[293],"Tool Correctness ist die Ausnahme von der Richter-zuerst-Regel. Der Kernwert zählt, wie viele der aufgerufenen Werkzeuge mit den erwarteten übereinstimmen, und dabei ist kein Modell beteiligt. Eine optionale zweite Prüfung nutzt ein LLM, um die Werkzeugauswahl zu beurteilen, aber nur, wenn du die verfügbaren Werkzeuge übergibst, und der Endwert ist der niedrigere der beiden.",{"type":178,"level":179,"id":134,"text":135},{"type":150,"content":296},[297],"Handgeschriebene Testfälle gehen schnell aus, deshalb kann DeepEval sie erzeugen. generate_goldens_from_docs nimmt eine Liste von Dokumentpfaden, liest .txt-, .docx-, .pdf- und Markdown-Dateien, legt die Abschnitte in chromadb ab und lässt ein Kritikermodell jeden Abschnitt von 0 bis 1 bewerten. Standardmäßig bekommt jedes Golden auch eine erwartete Ausgabe. Ohne OpenAI-Schlüssel musst du ein eigenes Embedding-Modell und ein eigenes LLM stellen, denn der Standard-Embedder ist text-embedding-3-small. Die Doku beschreibt keinen Prüfschritt, also lass jemanden eine Stichprobe lesen, bevor ein erzeugter Satz zur Regressionssuite wird.",{"type":150,"content":299},[300,301,304],"Red Teaming ist ein eigenes Paket. DeepTeam ist ein Apache-2.0-Framework, um LLMs und KI-Agenten im Red Teaming zu prüfen, mit mehr als 50 fertigen Schwachstellen und mehr als 20 forschungsbasierten Angriffsmethoden, mit Einzel- und Mehrfachgesprächen. Seine richterbasierten Metriken laufen auf deinem Rechner und liefern Bestanden oder Nicht bestanden mit Begründung. Es ordnet seine Prüfungen den OWASP Top 10 für LLMs 2025, den OWASP Top 10 für Agenten 2026, dem NIST AI RMF und MITRE ATLAS zu, und es wird mit ",{"tag":184,"children":302},[303],"pip install -U deepteam"," installiert. Das KI-Red-Teaming-Modul der Plattform liegt laut Preisseite im Tarif Enterprise ++.",{"type":150,"content":306},[307,308,311,312,315,316,319,320,323,324,327],"Das CI-Muster in der Doku ist kurz. Lege den Richter-Schlüssel als ",{"tag":184,"children":309},[310],"OPENAI_API_KEY"," in den Secrets ab, füge ",{"tag":184,"children":313},[314],"CONFIDENT_API_KEY"," nur hinzu, wenn die Ergebnisse auf der Plattform landen sollen, und führe ",{"tag":184,"children":317},[318],"deepeval test run"," aus. Ohne den Schlüssel laufen dieselben Tests trotzdem lokal. Mit ",{"tag":184,"children":321},[322],"--official"," (oder ",{"tag":184,"children":325},[326],"-o",") markierst du einen Lauf als offizielle Baseline auf Confident AI.",{"type":184,"code":329},"- name: Run LLM tests\n  env:\n    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n    CONFIDENT_API_KEY: ${{ secrets.CONFIDENT_API_KEY }}\n  run: poetry run deepeval test run test_llm_app.py",{"type":178,"level":179,"id":137,"text":138},{"type":150,"content":332},[333],"Die Bibliothek kostet außer dem Richter nichts im Betrieb. Die Plattform hat vier Tarife, monatlich je Organisation abgerechnet, und die Preisseite trägt kein Datum, also prüfe sie erneut, bevor du planst.",{"type":235,"head":335,"rows":344},[336,338,340,342],[337],"Tarif",[339],"Preis",[341],"Enthalten",[343],"Was dazukommt",[345,354,363,372],[346,348,350,352],[347],"Free",[349],"$0",[351],"2 Plätze, 1 Projekt, 1 GB-Monat Trace-Daten",[353],"5 Testläufe pro Woche",[355,357,359,361],[356],"Starter",[358],"$200 im Monat",[360],"Unbegrenzte Plätze, 5 Projekte, 5 GB-Monate, danach $1 pro GB-Monat",[362],"Online-Evals, Annotations-Warteschlangen, Echtzeit-Warnungen",[364,366,368,370],[365],"Team",[367],"$2.000 im Monat",[369],"Unbegrenzte Plätze und Projekte, 75 GB-Monate, danach $1 pro GB-Monat",[371],"SOC 2, SSO, eigene Rollen, individuelle Verträge und SLAs",[373,375,377,379],[374],"Enterprise",[376],"Individuell",[378],"Unbegrenzte Nutzung",[380],"On-Prem, eigene Datenresidenz, 24x7-Support, Red-Teaming-Modul (Enterprise ++)",{"type":150,"content":382},[383],"Zum Vergleich: Die Starter-Stufe von Braintrust ist kostenlos mit 14 Tagen Aufbewahrung, und der Pro-Tarif kostet $249 im Monat, mit verarbeiteten Daten zu $3 pro GB und Scores zu $1,50 pro 1.000 über den enthaltenen Mengen. Der Starter-Tarif von Confident AI kostet pauschal $200 im Monat ohne Gebühr pro Platz und enthält Online-Evals und Annotations-Warteschlangen.",{"type":150,"content":385},[386,387,389,390,393],"Es gibt drei getrennte Datenflüsse, die verschiedene Fragen beantworten. Der Richter bekommt den Testfall, also geht ohne konfiguriertes Modell dieser Inhalt an OpenAI, von deinem Laptop oder vom CI-Runner aus. Confident AI bekommt Ergebnisse nur, wenn ",{"tag":184,"children":388},[314]," gesetzt ist, und die GitHub-README sagt, dass bei Nutzung der Cloud-Plattform alle Testfälle automatisch protokolliert werden. Telemetrie ist der dritte Fluss: Standardmäßig sendet DeepEval grundlegende, nicht identifizierende Zählwerte, etwa wie viele Auswertungen liefen und welche Metriken genutzt wurden, und die Datenschutzseite nennt PostHog als einziges Ziel. Mit ",{"tag":184,"children":391},[392],"DEEPEVAL_TELEMETRY_OPT_OUT=1"," schaltest du das ab.",{"type":150,"content":395},[396,397,400],"Auf der Plattform speichert die FAQ die Daten in einer privaten AWS-Cloud, auf die nur deine Organisation zugreifen kann. Die Standardregion sind die Vereinigten Staaten, und die EU ist in jedem Tarif verfügbar. Wähle sie beim Login oder bei der Anmeldung, oder führe ",{"tag":184,"children":398},[399],"deepeval set-confident-region EU"," aus, was nur DeepEval konfiguriert. Die Regionsseite ergänzt, dass ein API-Schlüssel allein nicht bestimmt, wohin die Daten gehen, also setze auch die beiden Endpunkte.",{"type":184,"code":402},"deepeval set-confident-region EU\nexport CONFIDENT_BASE_URL=https:\u002F\u002Feu.api.confident-ai.com\nexport CONFIDENT_OTEL_ENDPOINT=https:\u002F\u002Feu.otel.confident-ai.com\u002Fv1\u002Ftraces",{"type":150,"content":404},[405],"Für den Vertrag gilt: Die Liste der Unterauftragsverarbeiter, zuletzt geändert am 18. Februar 2026, sagt, dass jeder Kunde einen Auftragsverarbeitungsvertrag (AVV) bekommt. Personenbezogene Daten bleiben in der gewählten Region, außer sie müssen aus Gründen der Leistung oder Verfügbarkeit oder nach Vereinbarung verschoben werden. Die Liste nennt OpenAI für die Ausführung von KI-Modellen, nur USA, und AWS, ClickHouse, Supabase und PostHog als USA und Europa. Eine Aufbewahrungsfrist für die Cloud habe ich auf keiner der geöffneten Seiten gefunden, also verlange sie schriftlich, bevor Produktionsdaten hineinkommen. Selbst hosten ist eine Enterprise-Option, und die On-Prem-Variante richtet dieselben zwei Variablen auf deine eigenen Hosts.",{"type":288,"variant":407,"title":408,"body":409},"warn","Was die EU-Option nicht ändert",[410],[411],"Die Regionseinstellung legt fest, wo Confident AI Plattformdaten speichert und verarbeitet. Den Richter verschiebt sie nicht. Ist der Richter OpenAI, gehen die Aufrufe weiterhin an OpenAI, egal wo deine Plattformdaten liegen. Für ein strikt europäisches Setup betreibe den Richter selbst, zum Beispiel mit Ollama, und miss seine Werte an Fällen, die du selbst beschriftet hast, bevor du dich darauf verlässt.",{"type":178,"level":179,"id":140,"text":141},{"type":150,"content":414},[415],"Drei Schwächen wiegen am schwersten. Erstens sind die Werte nicht wiederholbar: Die G-Eval-Doku sagt, die Metrik sei nicht deterministisch, also kippt ein Wert nahe am Schwellenwert gelegentlich, und der Richter begrenzt die Qualität alles, was du mit ihm misst. Zweitens ist die Oberfläche groß. Die Metrikliste ist lang, der Dokumentweg für erzeugte Goldens braucht chromadb und mehrere LangChain-Pakete, und die Doku zeigt einen TypeScript-Befehl neben dem Python-Befehl, obwohl alles, was ich für diese Rezension geprüft habe, Python ist. Drittens sind die Preisstufen grob. Der Free-Tarif mit fünf Testläufen pro Woche trägt keine stark genutzte Pipeline, und der Sprung von $200 auf $2.000 im Monat ist groß für ein Team, das nur einen gemeinsamen Verlauf will.",{"type":178,"level":179,"id":143,"text":144},{"type":150,"content":418},[419],"DeepEval ist der richtige Standard für ein Python-Team, das LLM-Verhaltenstests im selben Runner und im selben Pull Request wie den Rest seiner Suite haben will. Bibliothek und DeepTeam sind beide Apache-2.0, die Metrikliste deckt Agenten, Retrieval, Gespräche und Sicherheit ab, ohne dass du eigene Richter schreibst, und der lokale Modus funktioniert ohne Konto. Ich würde es nicht einsetzen, wenn die Testdaten keinen Richter erreichen dürfen, dem du vertraust, oder wenn Nicht-Entwickler:innen vom ersten Tag an einen gehosteten Arbeitsbereich brauchen. Wähle in diesen Fällen eine Alternative.",{"type":188,"ordered":215,"items":421},[422,427,432],[423,426],{"tag":193,"children":424},[425],"Ragas, wenn ","du ein Apache-2.0-Toolkit mit vorgefertigten Metriken und Testdaten-Generierung willst und die Plattform von Confident AI nicht brauchst.",[428,431],{"tag":193,"children":429},[430],"Promptfoo, wenn ","du deklarative Konfigurationen willst, die Prompts und Modelle in der Kommandozeile und in der CI vergleichen, mit Red Teaming im selben Werkzeug. Das MIT-lizenzierte Repository sagt jetzt, dass Promptfoo Teil von OpenAI ist, also wäge das gegen deine Anbieter-Regeln ab.",[433,436],{"tag":193,"children":434},[435],"Braintrust, wenn ","du eine gehostete Oberfläche und einen Klick-AVV im Pro-Tarif willst und du seine Abrechnung akzeptierst, bei der Nutzung über die enthaltenen Daten und Scores hinaus zusätzlich zu den $249 im Monat berechnet wird.",{"type":178,"level":179,"id":146,"text":147},{"type":188,"ordered":189,"items":439},[440,445,449,453,457,461,465,469,473,477,481,485,489,493,497,501,505,509],[441],{"tag":442,"href":38,"children":443},"a",[444],"DeepEval-Dokumentation: Erste Schritte",[446],{"tag":442,"href":41,"children":447},[448],"GitHub: confident-ai\u002Fdeepeval, README und Lizenz",[450],{"tag":442,"href":44,"children":451},[452],"PyPI: deepeval, neueste Version und Python-Anforderung",[454],{"tag":442,"href":47,"children":455},[456],"DeepEval-Dokumentation: Einführung in die Metriken",[458],{"tag":442,"href":50,"children":459},[460],"DeepEval-Dokumentation: G-Eval",[462],{"tag":442,"href":53,"children":463},[464],"DeepEval-Dokumentation: Faithfulness",[466],{"tag":442,"href":56,"children":467},[468],"DeepEval-Dokumentation: Tool Correctness",[470],{"tag":442,"href":59,"children":471},[472],"DeepEval-Dokumentation: Goldens aus Dokumenten erzeugen",[474],{"tag":442,"href":62,"children":475},[476],"DeepEval-Dokumentation: Unit-Tests in CI\u002FCD",[478],{"tag":442,"href":65,"children":479},[480],"DeepEval-FAQ",[482],{"tag":442,"href":68,"children":483},[484],"DeepEval-Dokumentation: Datenschutz",[486],{"tag":442,"href":71,"children":487},[488],"GitHub: confident-ai\u002Fdeepteam, das Red-Teaming-Framework",[490],{"tag":442,"href":74,"children":491},[492],"Confident AI: Preise",[494],{"tag":442,"href":77,"children":495},[496],"Confident AI-Dokumentation: Datenresidenz",[498],{"tag":442,"href":80,"children":499},[500],"Confident AI: Liste der Unterauftragsverarbeiter",[502],{"tag":442,"href":83,"children":503},[504],"GitHub: explodinggradients\u002Fragas, README",[506],{"tag":442,"href":86,"children":507},[508],"GitHub: promptfoo\u002Fpromptfoo, README",[510],{"tag":442,"href":89,"children":511},[512],"Braintrust: Preise",[514,571,639,699],{"slug":515,"published":516,"minutes":517,"category":7,"tags":518,"keywords":524,"about":538,"sources":546,"cover":565,"og":566,"expertise":92,"locales":567,"lang":95,"title":568,"description":569,"coverAlt":570},"deepseek-v4-1-flash-1017","2026-10-17",15,[519,520,521,522,523],"DeepSeek","Open-weight models","KV cache","Mixture of experts","LLM cost",[525,526,527,528,529,530,531,532,533,534,535,536,537],"DeepSeek V4.1 Flash 1017","DeepSeek V4.1 Flash","Causal Encoder-Decoder","Compressed Sparse Attention 2","CSA2","FP4 KV cache","KV cache compression","SWA Bounded Replay","Engram conditional memory","DSpark speculative decoding","DeepSeek pricing","DeepSWE benchmark","open-weight coding model",[539,541,543],{"name":519,"url":540},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDeepSeek",{"name":522,"url":542},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMixture_of_experts",{"name":544,"url":545},"Transformer (deep learning architecture)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTransformer_(deep_learning_architecture)",[547,550,553,556,559,562],{"title":548,"url":549},"DeepSeek-AI: DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression (arXiv:2609.19969)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2609.19969",{"title":551,"url":552},"Hugging Face: deepseek-ai\u002FDeepSeek-V4.1-Flash-1017 model card","https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-V4.1-Flash-1017",{"title":554,"url":555},"OpenRouter: DeepSeek V4.1 Flash 1017, pricing and providers","https:\u002F\u002Fopenrouter.ai\u002Fdeepseek\u002Fdeepseek-v4.1-flash-1017",{"title":557,"url":558},"The Decoder: Deepseek V4.1 Flash 1017 beats larger rivals in agentic tasks while once again massively cutting per-task costs","https:\u002F\u002Fthe-decoder.com\u002Fdeepseek-v4-1-flash-1017-beats-larger-rivals-in-agentic-tasks-while-once-again-massively-cutting-per-task-costs\u002F",{"title":560,"url":561},"AI Weekly: DeepSeek opens V4.1-Flash-1017 weights and $0.75 Search API","https:\u002F\u002Faiweekly.co\u002Falerts\u002Fdeepseek-opens-v41-flash-1017-weights-and-075-search-api",{"title":563,"url":564},"DeepSeek on X: DeepSeek-V4.1-Flash-1017 announcement","https:\u002F\u002Fx.com\u002Fdeepseek_ai\u002Fstatus\u002F2111375640717033777","\u002Fimages\u002Fblog\u002Fdeepseek-v4-1-flash-1017\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdeepseek-v4-1-flash-1017\u002Fog.jpg",[94,95,96],"DeepSeek V4.1 Flash 1017: 890 Byte KV-Cache pro Token, und was ein Agent davon hat","Technischer Deep Dive zu DeepSeek V4.1 Flash 1017: Encoder-Decoder-Aufteilung, CSA2-Cache-Sharing, FP4-KV-Cache, Benchmarks und die echten Kosten pro Agenten-Task.","Links ein hoher Stapel dünner Karten, ein Pfeil, rechts dieselben Karten auf ein Viertel der Höhe zusammengepresst.",{"slug":572,"published":516,"minutes":573,"category":7,"tags":574,"keywords":580,"about":592,"sources":602,"cover":633,"og":634,"expertise":92,"locales":635,"lang":95,"title":636,"description":637,"coverAlt":638},"llm-rate-limits-retries-provider-fallback",10,[575,576,577,578,579],"Rate limits","Retries","Fallback","Reliability","LLM gateway",[581,582,583,584,585,586,587,588,589,590,591],"llm rate limit handling","429 too many requests llm api","exponential backoff with jitter","anthropic 529 overloaded error","openai rate limit retry","llm provider fallback","litellm fallbacks","retry-after header","llm circuit breaker","multi provider llm failover","claude api rate limits",[593,596,599],{"name":594,"url":595},"Token bucket","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FToken_bucket",{"name":597,"url":598},"Exponential backoff","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FExponential_backoff",{"name":600,"url":601},"Circuit breaker design pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCircuit_breaker_design_pattern",[603,606,609,612,615,618,621,624,627,630],{"title":604,"url":605},"Claude Platform Docs: Rate limits","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Frate-limits",{"title":607,"url":608},"Claude Platform Docs: API errors","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Ferrors",{"title":610,"url":611},"OpenAI API Docs: Rate limits","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frate-limits",{"title":613,"url":614},"AWS Builders Library: Timeouts, retries and backoff with jitter","https:\u002F\u002Fbuilder.aws.com\u002Fcontent\u002F3EumjoZascWd1oZiEgL8ORlv3qE\u002Ftimeouts-retries-and-backoff-with-jitter",{"title":616,"url":617},"MDN: Retry-After header","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTTP\u002FReference\u002FHeaders\u002FRetry-After",{"title":619,"url":620},"Martin Fowler: Circuit Breaker (2014)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FCircuitBreaker.html",{"title":622,"url":623},"LiteLLM Docs: Router, retries and cooldowns","https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Frouting",{"title":625,"url":626},"LiteLLM Docs: Proxy fallbacks and reliability","https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Fproxy\u002Freliability",{"title":628,"url":629},"OpenRouter Docs: Model fallbacks","https:\u002F\u002Fopenrouter.ai\u002Fdocs\u002Fguides\u002Frouting\u002Fmodel-fallbacks",{"title":631,"url":632},"AI SDK Docs: Settings (maxRetries, timeout)","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Fsettings","\u002Fimages\u002Fblog\u002Fllm-rate-limits-retries-provider-fallback\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-rate-limits-retries-provider-fallback\u002Fog.jpg",[94,95,96],"LLM-Rate-Limits in Produktion: Retries, Backoff und Provider-Fallback","Wie LLM-Rate-Limits funktionieren, welche Fehler man wiederholt, Backoff mit Jitter, Retries in nur einer Schicht und Fallback-Ketten ohne kaputte Ausgaben.","Kleine Quadrate steigen drei Stufen zu einem breiten Rechteck, dahinter zwei weitere in einer Reihe.",{"slug":640,"published":516,"minutes":6,"category":7,"tags":641,"keywords":647,"about":658,"sources":668,"cover":693,"og":694,"expertise":92,"locales":695,"lang":95,"title":696,"description":697,"coverAlt":698},"prompt-versioning-management",[642,643,644,645,646],"Prompt management","Versioning","LLMOps","Evals","Langfuse",[648,649,650,651,652,653,654,655,656,657],"prompt versioning","prompt management","prompt registry","version control for prompts","langfuse prompt management","mlflow prompt registry","prompts in git","openai prompt object deprecation","prompt rollback production","prompt ci evaluation",[659,662,665],{"name":660,"url":661},"Prompt engineering","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_engineering",{"name":663,"url":664},"Version control","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVersion_control",{"name":666,"url":667},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[669,672,675,678,681,684,687,690],{"title":670,"url":671},"OpenAI API Docs: Migrate from prompt objects","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting\u002Fmigrate-from-prompt-object",{"title":673,"url":674},"OpenAI API Docs: Prompt engineering (reusable prompts deprecation note)","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-engineering",{"title":676,"url":677},"Langfuse Docs: Prompt version control","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Fprompt-version-control",{"title":679,"url":680},"Langfuse Docs: Prompt caching in the SDKs","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Fcaching",{"title":682,"url":683},"Langfuse Docs: Link prompts to traces","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Flink-to-traces",{"title":685,"url":686},"MLflow Docs: Prompt Registry","https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002F",{"title":688,"url":689},"Promptfoo Docs: GitHub Action","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintegrations\u002Fgithub-action\u002F",{"title":691,"url":692},"Claude Platform Docs: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fprompt-caching","\u002Fimages\u002Fblog\u002Fprompt-versioning-management\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fprompt-versioning-management\u002Fog.jpg",[94,95,96],"Prompt-Versionierung in Produktion: Git, Registries, Labels und Rollbacks","Prompts in Produktion versionieren: was zu einer Version gehört, Git oder Prompt-Registry, Labels und Rollbacks, Eval-Gates in CI und Folgen für Caches.","Fünf aufrechte Karten in einer Reihe, die dritte schwenkt an einem Bogenpfeil zurück, ein Tor vor der letzten.",{"slug":700,"published":516,"minutes":701,"category":7,"tags":702,"keywords":707,"about":718,"sources":726,"cover":747,"og":748,"expertise":92,"locales":749,"lang":95,"title":750,"description":751,"coverAlt":752},"llm-batch-api-offline-workloads",9,[703,704,644,705,706],"Batch API","Cost","Prompt caching","Data pipelines",[708,709,710,711,712,713,714,715,716,717],"llm batch api","anthropic message batches api","openai batch api","gemini batch mode","batch inference llm cost","batch api 50 percent discount","openai flex processing","bedrock batch inference","llm offline processing","batch api prompt caching",[719,722,725],{"name":720,"url":721},"Batch processing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBatch_processing",{"name":723,"url":724},"JSON Lines","https:\u002F\u002Fjsonlines.org\u002F",{"name":33,"url":34},[727,730,732,733,736,739,741,744],{"title":728,"url":729},"Claude Platform Docs: Batch processing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fbatch-processing",{"title":731,"url":605},"Claude Platform Docs: Rate limits (Message Batches API)",{"title":691,"url":692},{"title":734,"url":735},"OpenAI API Docs: Batch API","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fbatch",{"title":737,"url":738},"OpenAI API Docs: Flex processing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fflex-processing",{"title":740,"url":611},"OpenAI API Docs: Rate limits (batch queue limits)",{"title":742,"url":743},"Google AI for Developers: Gemini Batch API","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fbatch-api",{"title":745,"url":746},"Amazon Bedrock User Guide: Batch inference","https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fbatch-inference.html","\u002Fimages\u002Fblog\u002Fllm-batch-api-offline-workloads\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-batch-api-offline-workloads\u002Fog.jpg",[94,95,96],"LLM-Batch-APIs: Inferenz zum halben Preis für Arbeit, die warten kann","Wann sich die Batch-APIs von Anthropic, OpenAI und Gemini lohnen, wie Limits, Zuordnung und Fehler funktionieren und wie sich Rabatte mit Caching addieren.","Eine breite Kiste mit acht kleinen Quadraten, Zulauf von links, ein langer Pfeil kehrt zurück.",1792261157276]