Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Struktur vor Zufall: Verlässlichere KI-Systeme ...

Struktur vor Zufall: Verlässlichere KI-Systeme bauen mit Pydantic AI

LLMs sind für viele Anwendungsfälle eine interessante Lösung – aber dabei oft unberechenbar.
Für einen ernsthaften Einsatz ist es nötig, Lösungen zu entwickeln, die Antworten in nachvollziehbarer, strukturierter Form liefern und dabei intensiv getestet und überwacht werden. Dieses Vorgehen schauen wir uns am Beispiel von Pydantic AI an. Die Stärke dieses Frameworks sind Mechanismen, um Ausgaben zu validieren, Systeme beobachtbar zu machen und Qualität mit automatisierten Evals zu prüfen – inklusive des Einsatzes von LLMs als Judge. Dabei ist das Ganze einfach aufzusetzen, ohne zur Raketenwissenschaft zu werden. Ziel des Vortrags ist es, Appetit auf die Arbeit mit LLMs zu machen und dabei die Qualitäten klassischer Softwareentwicklung nicht außer Acht zu lassen.

Avatar for Joerg Mueller

Joerg Mueller

October 08, 2025
Tweet

More Decks by Joerg Mueller

Other Decks in Programming

Transcript

  1. From a software engineers point of view, you can think

    of LLMs as the worst database you've ever heard of, but worse. If LLMs weren't so bloody useful, we'd never touch them. https://ai.pydantic.dev/logfire/
  2. Das Ergebnis ist schlecht zu Parsen User: Was ist die

    Hauptstadt von Deutschland? LLM: Die Hauptstadt von Deutschland ist Berlin. Sie liegt umgeben vom im wunderschönen Brandenburg, direkt neben Potsdam.
  3. Die Ausgabe sieht jedes Mal anders aus User: Was ist

    die Hauptstadt von Deutschland? LLM: Berlin ist die Hauptstadt von Deutschland. Es hat knapp 4 Mio. Einwohner.
  4. Das Wissen ist nicht aktuell User: Was ist letzte Woche

    in Berlin passiert? LLM: Das kann ich leider nicht beantworten, mein Cut-Off Date war Januar 2025
  5. Struktur • • • • • • • • •

    • Die Ausgaben des LLM in eine Struktur bringen Format ist dabei egal JSON YAML Markdown? Verschiedene Wege, dass zu erreichen Prompting Structured Output Tool Calling …
  6. Anreicherung • • • • • • • Dem LLM

    die Informationen geben, die es braucht, aber nicht hat Beispiel-Methoden: Tool-Calling RAG MCP Built-in tools der LLM Anbieter In gewissem Maß zählen auch Code-Interpreter dazu
  7. Tests • • • • • Die gesamte Test-Pyramide Den

    Code rund um das LLM nicht vergessen! Deterministische Ausgaben deterministisch testen Nicht deterministische Ausgaben durch LLMs ​ prüfen lassen (LLM as a Judge) Tests als Experimente sehen
  8. Observability • • • • • Den Betrieb nicht vergessen

    Es gibt inzwischen viele Tools, die auf LLM Observibility spezialisiert sind Cloud-Modelle ändern sich! Aus der Frustration der Nutzer lernen Achtung: DSGVO klären
  9. https://ai.pydantic.dev https://github.com/pydantic/pydantic-ai Pydantic AI is a Python agent framework designed

    to help you quickly, confidently, and painlessly build production grade applications and workflows with Generative AI.
  10. Ein paar Fakten • • • • • • •

    • Von Pydantic Inc. Pydantic (ohne AI): Datenvalidierung in Python In vielen anderen LLM - APIs enthalten Pydantic AI Abstraktes "Agent" Framework unterstützt das meiste, was man für ​ die Implementierung eigener Agenten braucht mehr Details folgen
  11. Struktur • • • • • • • • •

    • Die Ausgaben des LLM in eine Struktur bringen Format ist dabei egal JSON YAML Markdown? Verschiedene Wege, dass zu erreichen Prompting Structured Output Tool Calling …
  12. Zusammenfassung Struktur-Demo • • • • • Aufruf unterschiedlichster Modelle

    möglich Struktur über Pydantic classes Pydantic realisiert Strukturierte Rückgabe per Default mit Tool-Call Automatische Feedback-Loop bei Fehlern Logging leicht zu integrieren
  13. Anreicherung • • • • • • • Dem LLM

    die Informationen geben, die es braucht, aber nicht hat Beispiel-Methoden: Tool-Calling RAG MCP Built-In Tools der LLM Anbieter In gewissem Maß zählen auch Code-Interpreter dazu
  14. Weitere Methoden via Pydantic AI • • • • •

    • • • Built-In tools https://ai.pydantic.dev/builtin-tools/ MCP Support für Client und Server https://ai.pydantic.dev/mcp/overview/ RAG Kein spezifischer Support Das ist aber sowieso vorgelagert
  15. Tests • • • • • Die gesamte Test-Pyramide Den

    Code rund um das LLM nicht vergessen! Deterministische Ausgaben deterministisch testen Nicht deterministische Ausgaben durch LLMs ​ prüfen lassen (LLM as a Judge) Tests als Experimente sehen
  16. Unit Tests und Dependencies • • • Unit Tests grundsätzlich

    über pytest Tool Calls etc. bekommen Context Einfache Form der Dependency Injection
  17. Das Model selbst • • • • • • •

    • Model mocken, für deterministische Tests des umgebenden Codes Zwei Varianten in Pydantic TestModel Versucht selbst (ohne LLM) Paramter für Calls etc. zu generieren FunctionModel Simulation eines LLMs durch eigene Funktion Agent.override Auch wichtig: ALLOW_MODEL_REQUESTS=False
  18. Was kann ich mit Evals prüfen • • • •

    Verschiedene Prompts Verschiedene Modelle Aber auch komplett andere Workflows Quasi Massenintegrationstests mit Qualitativem Ergebnis
  19. Observability • • • • • Den Betrieb nicht vergessen

    Es gibt inzwischen viele Tools, die auf LLM Observibility spezialisiert sind Cloud-Modelle ändern sich! Aus der Frustration der Nutzer lernen Achtung: DSGVO klären
  20. Bei Pydantic • • • Daten werden im Open Telemetry

    Format geliefert Logfire als Plattform von Pydantic Inc. sehr leicht integriert Auch bei Evals genutzt
  21. Da ist noch mehr • • • • • •

    • • Pydantic Graphs Workflow-artige Koordination mehrerer Agents A2A Kommunikation zwischen Agenten AG-UI Schnittstelle zum User Interface Durable (long running) Agents Agenten robust für lange Laufzeiten bauen
  22. Danke! Fragen? www.innoq.com innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim

    +49 2173 333660 Ohlauer Str. 43 10999 Berlin Ludwigstr. 180E 63067 Offenbach Kreuzstr. 16 80331 München Wendenstr. 130 20537 Hamburg Spichernstr. 44 50672 Köln Jörg Müller [email protected] @[email protected] @joergm.bsky.social www.linkedin.com/in/joerg-m