← Zurück zu Projekte

Case Study

Eine kleine Symfony-Anwendung, um Symfonys brandneue offizielle AI-Komponente praktisch kennenzulernen: Ein Agent fasst beliebige Texte über die OpenAI-API (gpt-4o-mini) in drei Sätzen zusammen. Entstanden als Begleitcode zu einem deutschsprachigen Tutorial, das ich aufgenommen habe. Es ist ein kompaktes, ehrliches Demo statt einer Produktivanwendung, bei dem das neue AgentInterface end-to-end verdrahtet ist.

Meine Rolle

Ich habe das Projekt allein gebaut, um Symfonys neue AI-Integrationsschicht praktisch zu lernen, bevor ich sie in einem echten Projekt einsetze. Begleitcode zu einem deutschsprachigen YouTube-Tutorial, das ich aufgenommen habe. Produktionsthemen (Formular-Validierung, CSRF, Fehlerbehandlung, Streaming) habe ich bewusst weggelassen, da sie nicht der Punkt der Übung waren.

Ergebnis

Ein minimaler, funktionierender KI-Agent vom Formular über den Agent und OpenAI bis zu Twig, plus zwei dokumentierte Stolpersteine für den nächsten Entwickler (und mein zukünftiges Ich), der mit Symfony AI arbeitet.

Tech-Stack

  • Backend: PHP 8.4, Symfony 8.1
  • KI: Symfony AI Bundle v0.11.0 (ai-bundle, ai-agent, ai-open-ai-platform) mit OpenAI gpt-4o-mini
  • Frontend: Twig, Symfony UX Turbo

Herausforderungen & Lösungen

1. Symfony AI ist ein Baukasten aus 70+ Paketen, nicht eines

Das ai-bundle allein reicht nicht. Dazu kommen die Agent-Komponente ai-agent (Agent, MessageBag) und eine separate Anbieter-Bridge (hier: ai-open-ai-platform). Der Vorteil: Ein späterer Anbieterwechsel (Anthropic, Gemini, ein lokales Ollama-Modell) bedeutet nur das Austauschen der Bridge, nicht das Umschreiben der eigenen Anwendungslogik.

2. Turbo schluckt die Antwort

Das Symfony-Webapp-Skeleton bringt Symfony UX Turbo mit, das nach einem Formular-POST einen Redirect erwartet. Ohne data-turbo="false" am <form> antwortet der Server zwar korrekt, im Browser erscheint aber nichts. Das erinnert mich daran, bei „die UI tut nichts" den Network-Tab statt nur die Server-Logs zu prüfen.