← Alle Projekte
In Produktion G-Man Auto Parts · 2025–2026

Semantische KI-Suche für Autoteile

Käufer und Lieferanten mussten das genau passende Teil für genau ihr Auto finden können, indem sie einfache Worte in ihrer eigenen Sprache eintippen. Ich habe die Suche von Anfang bis Ende gebaut, dazu eine Testsuite. Sie belegte, dass die Suche die 95 % Genauigkeit erreichte, die ein staatliches F&E-Programm verlangte.

Meine Rolle
Ich war allein für KI/ML zuständig. Design, Embeddings, Entitätserkennung, LLM-Schritte, Evaluation und Produktivbetrieb lagen bei mir.
Ergebnis
Mindestens 95 % Genauigkeit im 3.000-Teile-Test eines staatlichen F&E-Programms. Das Projekt wurde genehmigt.
Stack
Python, Django REST Framework, Weaviate, spaCy, OpenAI API (GPT-4o-mini), Celery, PostgreSQL, AWS S3
Größenordnung
Ein Katalog mit über 2 Mio. Teiledatensätzen und über 300.000 Angeboten, die zum Verkauf stehen und durchsuchbar sind, für Autos von Kia, Hyundai, SsangYong und Chevrolet

Das Problem

Menschen beschreiben dasselbe Teil auf viele Arten: „headlight“ oder „head lamp“, umgangssprachliche Namen oder andere Sprachen. Die richtige Antwort ist aber eine Teilenummer für ein ganz bestimmtes Auto: Marke, Modell, Baujahr, Kraftstoff, Getriebe, Generation und Seite (links oder rechts, vorne oder hinten).

Starre Stichwortfilter kamen damit nicht zurecht. Das Unternehmen brauchte eine Suche, die Alltagssprache versteht und fast immer das richtige Teil liefert. Die Suche war außerdem Teil eines Projekts, das bei einem staatlichen F&E-Programm eingereicht wurde. Um genehmigt zu werden, musste sie in einem festen Test mit 3.000 Teilen 95 % Genauigkeit erreichen.

So läuft eine Suchanfrage ab

  1. Sprachprüfung Zuerst läuft eine kleine Spracherkennung, damit das LLM nur bei Bedarf aufgerufen wird.
  2. LLM-Normalisierung Anfragen, die nicht auf Englisch sind, werden übersetzt und bereinigt (GPT-4o-mini).
  3. Entitätsextraktion spaCy-NER erkennt Marke, Modell, Baujahr, Kraftstoff, Getriebe, Teilename, Seite und Generation.
  4. Gefilterte Vektorsuche Die Entitäten werden zu exakten Filtern über einer semantischen Suche in Weaviate.
  5. LLM-Re-Ranking Ein LLM-Nachfilter entfernt klar falsche Treffer und sortiert den Rest neu.
  6. Ergebnisse Produktsuche für Käufer oder Katalogabgleich für Lieferanten.
  • Django REST APIStellt beide Suchmodi für den Shop und die Admin-Tools bereit
  • Testsuite für die GenauigkeitFührt dieselbe Pipeline auf einem festen Testdatensatz aus
  • S3-BerichteJeder Testlauf wird gespeichert und übersteht Redeployments
Die Such-Pipeline im Produktivbetrieb. Der gestrichelte Schritt läuft nur bei Anfragen, die nicht auf Englisch sind.

Beispiel: eine Anfrage, Schritt für Schritt

  1. Die Anfrage, auf Koreanisch eingegeben 현대 쏘나타 2019 왼쪽 헤드라이트
  2. Nach der LLM-Normalisierung Hyundai Sonata 2019 left headlight
  3. Entitäten, als exakte Filter genutzt
    • brand: Hyundai
    • model: Sonata
    • year: 2019
    • side: left
    • part: headlight
    Die Alias-Liste macht aus „headlight“ den Katalognamen Head Lamp Assembly.
  4. Ergebnisse nach Vektorsuche und LLM-Re-Ranking
    • Head Lamp Assembly · Left an erster Stelle
    • Fog Lamp · Left vom LLM aussortiert
Eine ausgedachte Anfrage, die die Schritte veranschaulicht.

Was ich gebaut habe

  • Kern der Vektorsuche. Ich habe den Teilekatalog in Weaviate eingebettet und den Suchdienst mit Django REST Framework gebaut. Ich habe festgelegt, welcher Text zu jedem Teil eingebettet wird, etwa Feldbezeichnungen, die Einbauseite, das Baujahr und kuratierte Synonyme, damit mehr von den richtigen Teilen gefunden werden.
  • Entitäten als harte Filter. spaCy zieht strukturierte Fakten aus einer Freitext-Anfrage und macht daraus exakte Filter. Die Vektorsuche kümmert sich um die Formulierung, und die Filter sorgen dafür, dass Auto und Seite stimmen.
  • Zwei Suchmodi. Käufer bekommen eine Produktsuche. Lieferanten bekommen einen automatischen Abgleich: Wenn sie ein Teil hochladen, ordnet die Suche es Katalogdatensätzen zu, und jede eindeutige Teilenummer wird zu einem eigenen Treffer.
  • Mehrsprachige Anfragen. Ein LLM übersetzt und bereinigt Anfragen, die nicht auf Englisch sind. Der Wechsel von GPT-3.5-Turbo zu GPT-4o-mini brachte bessere Qualität bei geringeren Kosten, und die Sprachprüfung hält die Zahl der LLM-Aufrufe niedrig.
  • Relevanz-Tuning. Ein LLM-Re-Ranker entfernt klar falsche Treffer. Eine Alias-Liste bildet Alltagswörter auf Katalognamen ab, sodass „headlight“ Head Lamp Assembly findet. Das erhöhte die Genauigkeit bei alltäglichen Formulierungen.
  • Anbindung ans Frontend. Ich habe den Onlineshop und die Admin-Tools an die Such-APIs angebunden. Die Filter der Seite fließen in die Anfrage ein, ein Treffer füllt das Formular des Lieferanten aus, und Ergebnisse werden nach Relevanz sortiert und unterhalb einer Konfidenzschwelle abgeschnitten.

Genauigkeit messen

Die Genauigkeit musste gemessen und nicht geschätzt werden. Ich habe eine interne Testseite gebaut, die dieselbe Pipeline wie die Produktivsuche auf einem festen, kuratierten Testdatensatz ausführt.

  • Metriken: accuracy@1 und accuracy@3, Precision, Recall, F1, eine Konfusionsmatrix und Kreuzvalidierung.
  • Wiederholbare Läufe: automatisch oder manuell. Jeder Lauf hält fest, wer ihn gestartet hat und ob der LLM-Schritt aktiv war.
  • Von Grund auf sicher: Testdaten liegen in eigenen Collections, mit Schutzmechanismen, damit ein Test nie Produktionsdaten berühren kann.
  • Fehleranalyse: Wenn eine Anfrage nichts lieferte, habe ich die Ursache aufgespürt, etwa einen veralteten Testdatensatz, ein Angebot, das nicht zu seinem Katalogeintrag passte, zwei Entitätsmuster, die kollidierten, oder eine Karosseriefarbe in der Anfrage, und jede davon behoben.

Ergebnisse

  • 95 %+Genauigkeit im 3.000-Teile-Test des staatlichen Programms
  • Genehmigtdas F&E-Projekt, nachdem es den Test bestanden hatte
  • 300.000+Angebote, die zum Verkauf stehen und durchsuchbar sind, aus einem Katalog mit über 2 Mio. Teiledatensätzen

Die Suche ging für Käufer und Lieferanten in Produktion. Außerdem habe ich die automatisierten Genauigkeitstests in der Produktivumgebung ausgeführt und die gefundenen Probleme behoben.

Diese Seite enthält keinen Code des Arbeitgebers, keine internen Daten und keine privaten URLs.