KI-gestützte Funktionen in Symfony entwickeln

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?