KI-gestützte Funktionen in Symfony entwickeln

· Silas Joisten · 2 Minuten zum Lesen
AI and Symfony

KI verändert die Webentwicklung – und mit php-llm/llm-chain können PHP-Entwickler ganz einfach leistungsstarke LLM-Funktionen in Symfony-Anwendungen integrieren. Dieses Tutorial zeigt dir, wie du mit Chatbots, intelligenten Assistenten und mehr loslegst.

Warum KI in Symfony?

Künstliche Intelligenz ist längst keine Zukunftsvision mehr – sie gehört heute ganz selbstverständlich zum modernen Tech-Stack. Von Chatbots über Content-Enrichment bis hin zu semantischer Suche: KI-basierte Features sind überall. Dank der Bibliothek php-llm/llm-chain war es noch nie so einfach, diese Möglichkeiten in dein Symfony-Projekt zu integrieren.

Einführung

php-llm/llm-chain ist eine native PHP-Bibliothek, mit der du mit sogenannten Large Language Models (LLMs) interagieren kannst, darunter:

Die Bibliothek unterstützt eine Vielzahl von Plattformen (OpenAI, Azure, Replicate usw.) und ermöglicht dir:

  • Inhalte zu generieren

  • Externe Tools (PHP-Funktionen) durch das LLM aufrufen zu lassen

  • Dokumente zu embedden und semantisch zu durchsuchen

  • Mehrstufige LLM-Ketten mit Logik zu bauen

Die Integration in Symfony erfolgt über das offizielle Bundle php-llm/llm-chain-bundle, das automatische Serviceregistrierung, Dependency Injection und eine Konfiguration über YAML ermöglicht.

Installation des Symfony-Bundles

Installiere das Paket mit Composer:

composer require php-llm/llm-chain-bundle

Füge deine API-Zugangsdaten zur .env hinzu:

OPENAI_API_KEY=dein-api-key-hier

Konfiguriere das Bundle in config/packages/llm_chain.yaml:

llm_chain:
  platform:
    openai:
      api_key: '%env(OPENAI_API_KEY)%'

  chain:
    default:
      model:
        name: 'gpt4o-mini'

Verwendung von KI in deinem Symfony-Service

Ein einfaches Beispiel für einen Service, der eine Anfrage an ein LLM schickt und eine Antwort erhält:

use PhpLlm\LlmChain\ChainInterface;
use PhpLlm\LlmChain\Model\Message\Message;
use PhpLlm\LlmChain\Model\Message\MessageBag;
use PhpLlm\LlmChain\Model\Response\ResponseInterface;

final class SmartAssistant
{
    public function __construct(
        private ChainInterface $chain
    ) {
    }

    public function ask(string $question): ResponseInterface
    {
        $messages = new MessageBag(
            Message::forSystem('You are a helpful assistant.'),
            Message::ofUser($question),
        );

        return $this->chain->call($messages);
    }
}

Du kannst diesen Service anschließend in einem Controller, einem Konsolenbefehl oder einem Worker verwenden.

Tool Calling: LLMs mit Funktionen interagieren lassen

Möchtest du, dass dein LLM echte PHP-Funktionen aufruft? Verwende das #[AsTool] Attribut:

use PhpLlm\LlmChain\Toolbox\Attribute\AsTool;

#[AsTool('current_time', 'Returns the current server time')]
final class ClockTool
{
    public function __invoke(): string
    {
        return (new \DateTimeImmutable())->format('Y-m-d H:i:s');
    }
}

Das LLM kann nun eigenständig entscheiden, wann es diese Funktion aufruft – ganz wie bei ChatGPT Plugins… nur eben in PHP.

Embeddings & Suche

llm-chain unterstützt auch Embeddings für semantische Suche. Du kannst Vektoren in folgenden Anbietern speichern:

Das ist ideal für Retrieval-Augmented Generation (RAG) – eine Technik, bei der relevante Dokumente zuerst gesucht und dann zur Beantwortung von Nutzerfragen genutzt werden.

Testen: Symfony-Demo-Projekt

Du willst das Ganze direkt ausprobieren? Das php-llm/llm-chain Team stellt eine Symfony-Demo bereit mit Chatbot und Vektorsuche:

php-llm/llm-chain-symfony-demo

Kosten und Tokens im Griff behalten

LLMs sind nicht kostenlos – deshalb solltest du auf Effizienz achten:

  • Wiederholte Antworten cachen

  • Kurze Prompts verwenden

  • Tokenverbrauch mit Logs überwachen

  • Systemnachrichten begrenzen

Fazit

Mit nur wenigen Zeilen Code und Konfiguration kannst du mächtige KI-Features in deine Symfony-Anwendung integrieren. Ob du Aufgaben automatisieren, Inhalte anreichern oder Fragen beantworten willst – llm-chain ist der perfekte Einstieg.

Symfony ist bereit für die KI-Zukunft. Und du?

Bereit für intelligentere Symfony-Anwendungen?

Starte noch heute mit llm-chain – KI-Funktionen sind nur wenige Codezeilen entfernt.

Das könnte dich auch interessieren

Fabien Potencier
Elise Hamimi

SymfonyCon Amsterdam 2025: Unser Rückblick und die Highlights

Nach einer legendären ersten Ausgabe im Jahr 2019 feierte die SymfonyCon ihr großes Comeback in Amsterdam. Von Anfang an war die Energie einer mit Spannung erwarteten Konferenz zu spüren: mehr als 1.200 Teilnehmer, 39 Nationalitäten, das größte Treffen der Symfony-Community des Jahres, großartige Entdeckungen ... und eine ausgelassene Atmosphäre. Dieses Jahr war etwas ganz Besonderes, denn es war das 20-jährige Jubiläum von Symfony. SensioLabs war dabei: Wir berichten Ihnen ausführlich über unsere Erfahrungen dort!

Mehr erfahren
Chart going up
Silas Joisten

Warum Tests? Für das Management erklärt

Für Entscheidungsträger: Warum Tests wichtig sind mit Fokus auf ROI, Risikoreduktion und Agilität. Mit Zahlen, Fallstudien und Management-Perspektive.

Mehr erfahren
Code happy in lights
Imen Ezzine

Code-Review: Arten, Organisation und bewährte Verfahren

Der Code-Review ist ein wesentlicher Schritt im Softwareentwicklungszyklus, der es ermöglicht, die Qualität des Codes zu verbessern, Fehler zu reduzieren und den Wissensaustausch innerhalb des Teams zu fördern. GitLab und GitHub, zwei der beliebtesten Plattformen für die Codeverwaltung, bieten erweiterte Funktionen, um diesen Prozess zu vereinfachen. Dieser Artikel befasst sich mit den verschiedenen Arten von Code-Reviews, der Organisation und der Nutzung von Vorlagen und Checklisten zur Verbesserung der Effizienz von PRs (Pull Requests).

Mehr erfahren
Many Lego figurines on a white table with hands playing with them
Alexandre Nesson

Scrum Guide Expansion Pack (2025): Wichtige Erkenntnisse, die du kennen musst

Ein neuer Baustein bereichert den Scrum Guide! Ist das nur Fassade oder bietet es echten Mehrwert? Lass es uns gemeinsam in diesem Artikel herausfinden, der von einem unserer Experten verfasst wurde!

Mehr erfahren
The SensioLabs team celebrating the 20th anniversary of Symfony with balloons
Jules Daunay

Die Geschichte geht weiter: SensioLabs feiert 20 Jahre Symfony

Die Zeit vergeht wie im Flug – besonders, wenn man an der Zukunft der Entwicklung schreibt! Das SensioLabs-Team hat gerade die 20 Kerzen des Symfony-Frameworks ausgeblasen. Wir haben den Anlass im Büro gefeiert, doch die Party ist noch nicht vorbei. Das Datum für eine XXL-Feier steht bereits fest: die SymfonyCon Amsterdam vom 27. bis 28. November 2025.

Mehr erfahren
PHP 8.5 URI extension
Oskar Stark

PHP 8.5's neue URI-Erweiterung: Ein Game-Changer für URL-Parsing

PHP 8.5 führt eine leistungsstarke neue URI-Erweiterung ein, die die URL-Verarbeitung modernisiert. Mit Unterstützung für RFC 3986 und WHATWG-Standards bietet die neue Uri-Klasse unveränderliche Objekte, fluent Interfaces und korrekte Validierung - und behebt alle Einschränkungen der veralteten parse_url()-Funktion. Dieser Leitfaden zeigt praktische Vorher/Nachher-Beispiele und erklärt, wann welcher Standard zu verwenden ist.

Mehr erfahren
Open in new tab
Silas Joisten

Die Tab-Falle: Warum das Erzwingen neuer Tabs eine schlechte UX ist

Wir haben es alle schon getan — target="_blank" zu einem Link hinzugefügt, um „Benutzern zu helfen", auf unserer Website zu bleiben. Aber was sich wie eine harmlose Bequemlichkeit anfühlt, führt oft zu Verwirrung, beeinträchtigt die Barrierefreiheit und birgt versteckte Sicherheitsrisiken.

Mehr erfahren
3 dog heads
Mathieu Santostefano

Lass die Nutzer des SDK ihren eigenen HTTP-Client nutzen

Befreie dich von starren Abhängigkeiten in deinen PHP-SDKs. Erfahre, wie du die Standards PSR-7, PSR-17 und PSR-18 zusammen mit PHP-HTTP/Discovery nutzt, um deinen Benutzern die Verwendung ihres bevorzugten HTTP-Clients zu ermöglichen – sei es Guzzle, Symfony HttpClient oder ein anderes Tool. Ein Muss für PHP- und Symfony-Entwickler.

Mehr erfahren
Image