PrestaShop Künstliche Intelligenz

DataFirefly Semantisches KI-Internlinking — Vektor-Embeddings, Kosinus-Ähnlichkeit und halbautomatisches Einfügen mit intelligenten Ankern für PrestaShop 8 & 9 (Mistral, OpenAI)

Semantisches internes Linking, gesteuert durch KI-Embeddings für PrestaShop. Ihre Inhalte werden vektorisiert (Mistral oder OpenAI), über Kosinus-Ähnlichkeit verglichen, und das Modul schlägt die relevantesten Links mit Ankern vor, die wörtlich aus dem Quelltext extrahiert wurden.

Die meisten Module für internes Linking machen nur ein Suchen-Ersetzen bei Schlüsselwörtern. Das Ergebnis ist starr, zerstört bestehende Links und verpasst die Mehrheit der Linking-Möglichkeiten — alle jene, in denen das exakte Schlüsselwort nicht vorkommt, obwohl die Bedeutung sehr nah ist. DataFirefly Semantisches KI-Internlinking arbeitet anders: Jedes Produkt, jede Kategorie und jede CMS-Seite wird in einen Embedding-Vektor verwandelt (Mistral mistral-embed oder OpenAI text-embedding-3-small, Ihre Wahl). Das Modul vergleicht dann die Vektoren über Kosinus-Ähnlichkeit und schlägt die semantisch nächsten Inhaltspaare vor, unabhängig vom verwendeten Vokabular. Für jeden Vorschlag extrahiert ein Anker-Generator N-Gramme aus dem Zieltitel, die wörtlich im Quellkörper vorkommen — der Anker ist also gleichzeitig SEO-optimiert und im Text natürlich. Halbautomatisches Einfügen mit Einzel- oder Bulk-Validierung, sauberer Rollback per eindeutiger Markierung, persistente Warteschlange, CLI-Worker für große Kataloge, Auto-Reindexierung bei jeder Änderung. Mehrsprachig, Multishop, zwei umschaltbare KI-Anbieter, kein Abonnement.

PrestaShop 8.0 → 9.x PHP 8.1+ Mistral · OpenAI Vektor-Embeddings Kosinus-Ähnlichkeit Anker wörtlich extrahiert Halbautomatisches Einfügen Rollback per eindeutiger Markierung CLI-Worker Auto-Reindexierung Mehrsprachig & Multishop Kein Abonnement
  • 30 Tage Rückgaberecht
  • 12 Monate Updates
  • 24-h-Support
www.datafirefly.com/de/
DataFirefly Semantisches KI-Internlinking — Vektor-Embeddings, Kosinus-Ähnlichkeit und halbautomatisches Einfügen mit intelligenten Ankern für PrestaShop 8 & 9 (Mistral, OpenAI)
v1.0.0 · aktualisiert 2026-05-15
Was es leistet

Die Kurzfassung.

01

Mistral- oder OpenAI-Vektor-Embeddings

Jedes Produkt, jede Kategorie und jede CMS-Seite wird vom KI-Anbieter Ihrer Wahl in einen Embedding-Vektor verwandelt: Mistral mistral-embed (1024 Dimensionen, ~0,10 EUR pro Million Tokens) oder OpenAI text-embedding-3-small (1536 Dimensionen, ~0,02 USD pro Million Tokens). Vektoren werden als gepacktes float32 BLOB mit vorberechneter L2-Norm gespeichert — die Kosinus-Ähnlichkeit wird dann in PHP berechnet, ohne externe Abhängigkeit (kein pgvector oder Elasticsearch nötig). Anbieterwechsel über ein einfaches Dropdown, nichts manuell zu reindexieren.

02

Wörtlich aus dem Quelltext extrahierte Anker

Das ist es, was das Modul hervorhebt. Für jeden Vorschlag extrahiert der Anker-Generator N-Gramme aus dem Zieltitel (2 bis 6 Wörter), die wörtlich im Quellkörper vorkommen, und ordnet sie nach Länge und Relevanz. Der vorgeschlagene Anker ist daher natürlich (er ist bereits in Ihrem Text, Sie erzwingen nichts) und SEO-optimiert (er enthält die exakten Schlüsselwörter des Zieltitels). FR- und EN-Stoppwörter integriert. Sie behalten die Kontrolle: Dropdown-Menü mit allen Kandidaten oder freies Feld zur Eingabe eines benutzerdefinierten Ankers.

03

Halbautomatisches Einfügen mit Validierung

Jeder Vorschlag gelangt mit dem Status Ausstehend in die Warteschlange. Sie validieren oder lehnen einzeln ab, oder in Bulk mit Mehrfachauswahl und Bulk-Aktionsbuttons. Das Einfügen verwendet eine robuste Regex, die a-, code-, pre-Tags und bereits verlinkte HTML-Bereiche umgeht — null Risiko, einen bestehenden Link zu zerstören. Jeder eingefügte Link erhält ein data-dfasl-Attribut mit einem UUID-ähnlichen eindeutigen Identifikator, was einen chirurgischen Rollback ermöglicht: Link-Entfernung aus dem Tab Eingefügte Links, ohne den Rest des HTML zu berühren, ohne riskante Regex, ohne Risiko, die Beschreibung zu beschädigen.

04

CLI-Worker + Auto-Reindexierung über Hooks

Für Kataloge ab 1.000 Entitäten wird die Backoffice-Oberfläche langsam. Das Modul liefert einen CLI-Worker (bin/analyze.php) mit Optionen --enqueue-all, --loop, --max-batches, --sleep — geeignet für einen Cron, der alle 15 Minuten läuft, um die Warteschlange zu verarbeiten. Bei jeder Produkt-, Kategorie- oder CMS-Änderung legen PrestaShop-Hooks die betroffene Entität im Hintergrund in die Warteschlange: Der Index bleibt ohne Eingriff aktuell. Die Warteschlange persistiert die Status Ausstehend, In Bearbeitung, Erledigt, Fehler und setzt automatisch Einträge zurück, die seit mehr als 30 Minuten blockiert sind.

Die ausführliche Fassung

Alles, was Sie wissen sollten bevor Sie installieren.

Ein detaillierter Blick darauf, wie DataFirefly Semantisches KI-Internlinking — Vektor-Embeddings, Kosinus-Ähnlichkeit und halbautomatisches Einfügen mit intelligenten Ankern für PrestaShop 8 & 9 (Mistral, OpenAI) funktioniert, warum wir es so gebaut haben und der Gedanke hinter den Funktionen oben.

§ 01

Warum semantisches internes Linking dem schlüsselwortbasierten überlegen ist

Klassische Module für internes Linking arbeiten mit Schlüsselwort-zu-URL-Regeln. Sie geben Berber-Teppich ein und verknüpfen die URL der Kategorie berber-teppich. Die Engine führt dann ein Suchen-Ersetzen im HTML Ihrer Artikel, Produkte oder Seiten durch. Dieser Ansatz hat zwei große Einschränkungen. Er ist starr: Er löst einen Link nur aus, wenn das exakte Schlüsselwort vorkommt, was alle Seiten ausschließt, auf denen das Thema mit anderer Formulierung behandelt wird (marokkanischer Teppich, Kilim, traditioneller Teppich). Und er ist blind für den semantischen Kontext: Die Engine weiß nicht, ob die Zielseite tatsächlich für den Quellinhalt relevant ist, sie macht nur einen Zeichenkettenabgleich. Semantisches Linking funktioniert anders: Jeder Inhalt wird durch einen Vektor von mehreren hundert Dimensionen dargestellt, der seine Bedeutung kodiert — Produkt, Kategorie, CMS-Seite, Blog. Zwei Inhalte sind verknüpft, wenn sie in diesem Vektorraum nahe beieinander liegen, unabhängig von den verwendeten Wörtern. Das Modul erkennt so Linking-Möglichkeiten, die eine Schlüsselwort-Engine niemals sehen würde, und vermeidet falsche Positive, bei denen ein Schlüsselwort in einem irrelevanten Kontext vorkommt.

§ 02

KI-Embeddings: wie es in der Praxis funktioniert

Bei der ersten Indexierung durchläuft das Modul alle aktiven Entitäten Ihres Shops für die aktivierten Typen (Produkte, Kategorien, CMS-Seiten). Für jede Entität wird der Textinhalt extrahiert und bereinigt: Titel, meta_title, meta_description, Kurzbeschreibung und Langbeschreibung (HTML wird sauber entfernt). Der bereinigte Text wird dann in Batches an den konfigurierten KI-Anbieter (Mistral oder OpenAI) gesendet, der einen Embedding-Vektor pro Item zurückgibt — eine Liste von Fließkommazahlen, die die Semantik des Textes repräsentiert. Dieser Vektor wird in der Datenbank als float32-BLOB in Little-Endian gepackt gespeichert, mit seiner vorberechneten L2-Norm, um spätere Ähnlichkeitsberechnungen zu beschleunigen. Die Ähnlichkeit zwischen zwei Inhalten wird dann in PHP über das normalisierte Skalarprodukt (Kosinus-Ähnlichkeit) berechnet, eine extrem schnelle Operation, sobald die Normen vorberechnet sind. Bei einem Katalog von 5.000 Entitäten dauert die vollständige Berechnung aller Paare in einer Sprache nur wenige Sekunden.

§ 03

Warum zwei Anbieter statt nur einem

Jeder Anbieter hat seinen Sweet Spot. Mistral mistral-embed ist der empfohlene Standard: 1024 Dimensionen, sehr niedrige Latenz, Hosting in Europa (EU-Souveränität für sensible Shops), Kosten von etwa 10 Cent pro Million Tokens — deutlich unter einem Euro, um einen mehrsprachigen Katalog von mehreren tausend Entitäten zu indexieren. OpenAI text-embedding-3-small ist die Alternative: 1536 Dimensionen (reichhaltigerer Vektorraum), exzellent für nicht-europäische Sprachen, Kosten von etwa 2 Cent pro Million Tokens (fünfmal günstiger als Mistral in USD). Das Modul vereint beide Anbieter hinter einer gemeinsamen Schnittstelle: gleiches Rückgabeformat, gleicher Batch-Mechanismus, gleiche Fehlerbehandlung mit PrestaShopLogger. Sie können über das Konfigurations-Dropdown von einem Anbieter zum anderen wechseln — das Modul erkennt die Dimensionsänderung und fordert eine Reindexierung an (ein Klick auf Alles reindexieren).

§ 04

Der Anker-Generator, das eigentliche Herzstück des Moduls

Das ist der Punkt, der den Unterschied zu einem rohen Vorschlagsmodul macht. Für jedes Paar (Quelle, Ziel) über dem Ähnlichkeitsschwellenwert wendet der Anker-Generator den folgenden Algorithmus an: Er extrahiert den Titel des Ziels, teilt ihn in N-Gramme von 2 bis 6 Wörtern auf, entfernt Stoppwörter (Französisch und Englisch) und sucht dann nach jedem dieser N-Gramme wörtlich im Quellkörper. Die gefundenen N-Gramme werden nach absteigender Länge sortiert (längere sind diskriminativer und SEO-optimierter) und im Backoffice-Dropdown präsentiert. Der standardmäßig ausgewählte Anker ist der längste gefundene — typischerweise ein 3- oder 4-Wort-Anker, der die Hauptkeywords des Zieltitels enthält. Wenn kein N-Gramm des Zieltitels in der Quelle vorkommt, schlägt das Modul den rohen Zieltitel vor (Fallback-Modus). Sie behalten natürlich die Kontrolle: editierbares Dropdown, Option Benutzerdefiniert zur Eingabe eines beliebigen Ankertexts. Beim Einfügen wählt das Modul das erste Vorkommen des Ankertexts im Quellkörper, das nicht bereits in einem a-, code- oder pre-Tag steht — null Risiko, einen bestehenden Link zu zerstören oder bereits verlinkten Text erneut zu verlinken.

§ 05

Chirurgischer Rollback per eindeutiger Markierung

Das ist die Funktion, die jeden vorsichtigen Händler mit seinen Beschreibungen beruhigt. Jeder eingefügte Link erhält ein data-dfasl-HTML-Attribut mit einem eindeutigen 36-Zeichen-Identifikator, der beim Einfügen zufällig generiert wird (UUID-ähnliches Format). Der Identifikator wird auch in der Datenbank in der Tabelle dfasl_inserted_link gespeichert, zusammen mit der Quell-Entität, dem Ziel, dem Anker, dem Einfügedatum und der ID des Mitarbeiters, der validiert hat. Um einen Link zu entfernen, gehen Sie zum Tab Eingefügte Links, klicken auf Entfernen neben der betreffenden Zeile: Das Modul führt eine Regex aus, die genau dem a-data-dfasl-Anker-Muster mit diesem eindeutigen Identifikator entspricht, entfernt das a-Tag unter Beibehaltung des Ankertexts und markiert den Link als entfernt in der Datenbank. Kein anderes Tag in der Beschreibung wird berührt, kein manueller Link ist in Gefahr. Bei 500 Links, die das Modul über 200 Produktseiten eingefügt hat, können Sie einen einzigen mit einem Klick entfernen, ohne die anderen 499 zu berühren.

§ 06

CLI-Worker und Verarbeitungsstrategie für große Kataloge

Bei einem Katalog von einigen Dutzend Produkten kann alles aus dem Back-Office erledigt werden: Alles reindexieren und dann Batch verarbeiten genügt. Bei mehreren tausend Entitäten wird die Oberfläche langsam und der Nutzer möchte seinen Browser nicht stundenlang offen halten. Das Modul stellt einen CLI-Worker bereit (bin/analyze.php), der per PHP-Befehlszeile mit vier Optionen ausgeführt wird. --shop zum Anvisieren eines bestimmten Shops in einer Multishop-Umgebung. --enqueue-all zum erneuten Einreihen aller aktiven Entitäten vor dem Verarbeiten — nützlich für eine vollständige Reindexierung nach einem Anbieter- oder Modellwechsel. --loop, um zu schleifen, solange Items zu verarbeiten sind. --max-batches zur Begrenzung der Anzahl der in einem einzigen Lauf verarbeiteten Batches (Anti-Runaway-Sicherheit). --sleep zum Einfügen einer Pause zwischen Batches (nützlich, um unter den API-Rate-Limits zu bleiben). Der typische Befehl für einen Cron alle 15 Minuten lautet: php modules/dfaisemanticlinks/bin/analyze.php --loop --max-batches=50 --sleep=1. Der Worker setzt automatisch Einträge zurück, die seit mehr als 30 Minuten im Status In Bearbeitung blockiert sind (Fall, in dem ein vorheriger Worker abgestürzt wäre), behandelt API-Fehler durch Markieren der betroffenen Items als Fehler mit der Meldung und verarbeitet die gesunden Items des Batches weiter.

§ 07

Auto-Reindexierung und Index-Frische

Ein Index, der vom Katalog abdriftet, hat keinen Wert mehr. Das Modul verwaltet die Frische über native PrestaShop-Hooks. Bei jeder Änderung eines Produkts, einer Kategorie oder einer CMS-Seite (Hooks actionObjectProductUpdateAfter, actionObjectCategoryUpdateAfter, actionObjectCmsUpdateAfter) wird die betroffene Entität wieder mit Status Ausstehend in die Warteschlange gestellt, in allen aktiven Sprachen — der nächste Worker verarbeitet sie automatisch. Beim Löschen (Hooks actionObjectProductDeleteAfter, actionObjectCategoryDeleteAfter, actionObjectCmsDeleteAfter) werden zugehörige Embeddings und Vorschläge kaskadiert gelöscht. Das Modul enthält auch einen Inhalts-Hash (SHA-256 des bereinigten Texts): Wenn eine Entität wieder in die Warteschlange gestellt wird, ohne dass sich ihr tatsächlicher Inhalt geändert hat (z. B. weil ein Mitarbeiter nur den Bestand berührt hat), erkennt der Indexierungs-Batch den unveränderten Hash und überspringt den API-Aufruf — Token-Einsparung. Die Auto-Reindexierung ist in den Einstellungen umschaltbar (Option DFASL_AUTO_INDEX), nützlich, um sie während eines großen CSV-Imports zu pausieren und mit einem Alles reindexieren wieder aufzunehmen, sobald der Import abgeschlossen ist.

§ 08

Native Multishop- und Mehrsprachigkeit

Das Modul ist nativ Multishop- und mehrsprachenfähig. Embeddings sind nach dem Tripel (Entität, Sprache, Shop) gescoped — dasselbe Produkt in zwei Shops hat zwei unabhängige Embeddings, wenn sich die Beschreibungen unterscheiden, und dasselbe Produkt auf Französisch und Englisch hat zwei verschiedene Embeddings, auch wenn das Produktblatt dasselbe ist. Vorschläge überschreiten niemals Sprachgrenzen: Ein französisches Produkt erhält nie einen Link-Vorschlag zu einem englischen Produkt (was SEO-technisch keinen Sinn machen würde). Shop-Grenzen werden gleich respektiert. Die Konfiguration kann pro Shop unterschiedlich sein (API-Schlüssel, Ähnlichkeitsschwellenwert, indizierte Typen, Anzeige-Hook) — nützlich, wenn Sie einen B2B-Shop mit technischem Inhalt und einen B2C-Shop mit allgemeinem Inhalt in derselben Infrastruktur haben.

§ 09

Typische Anwendungsfälle

Mehrsprachiger Mode-Shop mit einem Katalog von 2.000 Produkten — semantisches Linking erkennt Produktpaare, die visuell oder stilistisch nahe beieinander liegen (z. B. zwei Variationen eines Kleidschnitts), die Schlüsselwortregeln systematisch verpassen würden. Technischer B2B-Shop mit dichten Beschreibungen — semantisches Linking verbindet Produkte, die denselben industriellen Anwendungsfall teilen, ohne identisches Vokabular. E-Commerce-Blog — jeder Artikel kann automatisch auf die semantisch relevantesten Produkte, Kategorien und anderen Artikel verweisen, mit wörtlich aus dem Artikeltext extrahierten Ankern (das Gegenteil von mechanischem Suchen-Ersetzen). Katalogüberarbeitung — nach einem großen Import oder einer Reorganisation baut ein Alles reindexieren das Linking in wenigen Minuten neu auf, wo eine manuelle Strategie Wochen redaktioneller Arbeit gekostet hätte. Katalog mit stark spezialisiertem Vokabular (Bio-Kosmetik, medizinische Geräte, technische Produkte) — das Modul erkennt semantische Nähen, die Nicht-Experten nicht sehen würden, und lässt das SEO-Team nicht offensichtliche Linking-Möglichkeiten entdecken.

§ 10

Interne Architektur und PrestaShop-8-und-9-Kompatibilität

Das Modul ist in PHP 8.1+ mit strikten Typen, readonly-Klassen und modernen Features (match, enums) gebaut. Der Autoload ist PSR-4 unter dem Namespace DataFirefly/AiSemanticLinks/ gemappt auf src/. Admin-Controller verwenden Legacy-ModuleAdminController (nicht Symfony Grid) — bewusste Wahl, um stabile Kompatibilität zwischen PrestaShop 8.0 und 9.x zu garantieren, ohne zwei Codevarianten pflegen zu müssen. Ein winziger hauseigener Service-Container (ServiceContainer) verdrahtet Repositories und Business-Services — isoliert das Modul von Symfony-Container-Unterschieden zwischen PrestaShop-Versionen und vermeidet eine Abhängigkeit, die bei jedem großen Update brechen würde. Fünf SQL-Tabellen mit Präfix dfasl_: embedding (Vektoren und Hashes), queue (Arbeitswarteschlange), suggestion (vorgeschlagene Paare), inserted_link (aktive Links), job (Bulk-Operationen). Die Deinstallation löscht die 5 Tabellen sauber und bereinigt alle DFASL_*-Konfigurationsvariablen. Quellcode wird unverschlüsselt geliefert, PSR-konform — Sie können ihn nach Belieben überschreiben, auditieren oder erweitern.