
Eine kleine Hilfestellung bzw. Projektvorstellung für WordPress-Administratoren und Entwickler, die einen intelligenten Chatbot auf ihrer Seite integrieren möchten, ohne auf teure Drittanbieter-Tools oder starre if-else-Bots zurückgreifen zu müssen.
Das Problem bei vielen Standard-Chatbots ist, dass sie entweder mühsam mit vordefinierten Fragen gefüttert werden müssen oder, wenn sie KI-basiert sind, den eigentlichen Inhalt der eigenen Webseite überhaupt nicht kennen. Sie halluzinieren dann irgendwelche Antworten, die nichts mit den eigenen Beiträgen oder Dienstleistungen zu tun haben.
Dafür gibt es Abhilfe. Ich habe (mit etwas Unterstützung von Gemini) ein schlankes WordPress-Plugin geschrieben, das die Gemini API anzapft und der KI über einen optimierten System-Prompt beibringt, die WordPress-Datenbank als Kontext zu nutzen.
Das gesamte Projekt ist Open Source und auf GitHub zu finden: diehummel/gemini-wordpress-chatbot
Das Konzept & Funktionsweise
Das Plugin macht im Grunde drei Dinge:
- Admin-Interface: Es stellt eine Einstellungsseite im WordPress-Backend bereit, auf der man den API-Key, das gewünschte Gemini-Modell und den grundlegenden Prompt konfigurieren kann.
- Kontext-Injektion: Bei einer Anfrage scannt das Plugin die relevanten Beiträge und Seiten direkt aus der WordPress-Datenbank ab.
- Frontend-Chat: Es bettet ein einfaches Chat-Fenster für die Besucher ein.
Der entscheidende Trick liegt im Standard-Prompt, den das Plugin mitsendet. Die KI wird explizit angewiesen, ausschließlich auf Basis des mitgelieferten Webseiten-Kontexts zu antworten. Gibt es zu einer Frage keine Informationen auf der Seite, gesteht das die KI höflich ein, anstatt irgendetwas zu erfinden.
Plugin Setup
Nachdem das Plugin in das Verzeichnis /wp-content/plugins/gemini-wordpress-chatbot/ kopiert und im Backend aktiviert wurde, findet man unter Einstellungen -> Gemini Chatbot die Konfiguration.
Die wichtigsten Einstellungen im Überblick:
- Gemini API Key: Den besorgt man sich direkt über Google AI Studio.
- Modell: Standardmäßig z. B.
gemini-3.1-flash-litefür schnelle und kostengünstige Antworten. - System Prompt: Hier ist bereits die Logik hinterlegt, die der KI ihre Rolle zuweist.
Ein Blick in den Core-Code (gemini-chatbot.php)
Um den Kontext aus der Datenbank zu holen, nutzen wir eine saubere WordPress-Abfrage, die die letzten relevanten Beiträge lädt und als Text-Block zusammenfasst:
function gemini_chatbot_get_site_context() {
$args = array(
'post_type' => array('post', 'page'),
'post_status' => 'publish',
'posts_per_page' => -1, // Lädt alle veröffentlichten Seiten und Beiträge
);
$query = new WP_Query($args);
$context = "";
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$context .= "Titel: " . get_the_title() . "\nInhalt: " . wp_strip_all_tags(get_the_content()) . "\n---\n";
}
wp_reset_postdata();
}
return $context;
}
Dieser Kontext wird dann zusammen mit der Benutzerfrage via wp_remote_post per cURL an die Gemini API übermittelt.
Job- bzw. Chat-Einplanung im Frontend
Das Chatfenster wird über einen simplen Hook am unteren Rand der Webseite ausgegeben. Per AJAX werden die Nachrichten asynchron im Hintergrund übertragen, damit die Seite beim Chatten nicht neu laden muss.
Wer das Design anpassen möchte, kann die CSS-Klassen direkt im Plugin oder im eigenen Theme überschreiben.
Anmerkungen & Empfehlungen
- API-Kosten: Da wir bei jeder Anfrage den Kontext der Seite mitsenden, steigen die verbrauchten Tokens je nach Größe der Webseite. Für normale Blogs oder KMU-Seiten hält sich das mit Modellen wie Gemini 3.1 Flash Lite im Cent-Bereich, aber man sollte die Nutzung im Google AI Studio im Auge behalten. Oder nur das kostenlose API nutzen, wenn dieses ausreicht.
- Caching: Bei sehr großen Webseiten empfiehlt es sich, den generierten Kontext (
gemini_chatbot_get_site_context) über die WordPress Transients API für ein paar Stunden zu cachen, um die Datenbank nicht bei jedem Chat-Klick komplett zu belasten.
Wer Fehler findet oder Features ergänzen möchte (z. B. ein besseres UI oder Einschränkung auf bestimmte Kategorien), kann gerne direkt im GitHub Repository einen Pull Request eröffnen.
Happy Chatbot Coding! 😉