KI-gestützte Retourenanalyse & Klassifizierung

01 Herausforderung

Freitext-Kommentare zu Retouren enthalten die eigentlichen Gründe – Excel-Filter und RegEx scheitern aber an Tippfehlern, Nuancen und widersprüchlichen Aussagen.

02 Ansatz

Eine lokale KI-Pipeline: Qwen 2.5 14B läuft in LM Studio, ein Python-Skript klassifiziert jeden Kommentar per OpenAI-kompatibler API in eine von sechs Kategorien.

03 Ergebnis

Aus Freitext werden strukturierte Kategorien je Artikel – eine Auswertung, aus der Produktmanagement, Qualitätssicherung und Kundenservice direkt Maßnahmen ableiten können.

Stack
PythonPandasLM StudioQwen 2.5 14Bn8n

Retouren sind der größte „Profit-Killer“ im E-Commerce. Besonders wertvoll – aber oft ungenutzt – sind die Freitext-Kommentare der Kunden. Aussagen wie „Fällt obenrum eng aus aber an der Hüfte zu weit“ lassen sich mit einfachen Excel-Filtern oder klassischen Keyword-Such-Algorithmen (RegEx) kaum erfassen. Oft scheitern starre Regeln schon an Tippfehlern („zu kleib“) oder Nuancen.

In diesem Projekt habe ich eine lokale KI-Pipeline entwickelt, die diese Kommentare semantisch versteht und automatisch kategorisiert.

Kategorien
6
2× Passform, Qualität, Optik, Geschmack, Sonstiges
Parameter
14B
Qwen 2.5 Instruct, 4-bit quantisiert
externe APIs
0
Kundendaten bleiben lokal
Quantisierung
4-bit
läuft auf lokaler Hardware

Keyword-Suche vs. Sprachmodell

Excel-Filter & RegEx

  • Scheitert an Tippfehlern wie „zu kleib“
  • Reagiert auf einzelne Wörter wie „Passt“ – ohne Kontext
  • Unbekannte Mängel bleiben unsichtbar, solange kein Keyword existiert

Lokales LLM

  • Versteht den Kommentar semantisch, auch mit Tippfehlern
  • „Passt eigentlich gut, aber nach dem Waschen total verzogen“ → QUALITY_DEFECT
  • Macht Häufungen neuer Mängel sichtbar, ohne dass jemand danach sucht

Die Architektur

Statt externe APIs wie OpenAI zu nutzen (was Datenschutzfragen aufwirft), betreibe ich das Modell lokal mittels LM Studio. Diese Software stellt einen OpenAI-kompatiblen Server bereit, den wir mit Python ansteuern können.

  • Software: LM Studio (Server)
  • Modell: Qwen 2.5 14B Instruct (hervorragende Leistung in Deutsch, quantisiert)
  • Schnittstelle: Python-Skript

Jeder Kommentar wird genau einer von sechs Kategorien zugeordnet:

Kategorie Bedeutung
FIT_ISSUE_SMALL Artikel kleiner, kürzer oder enger als erwartet
FIT_ISSUE_LARGE Artikel größer, länger oder weiter als erwartet
QUALITY_DEFECT Material, Nähte, Beschädigungen, Gerüche
VISUAL_DISCREPANCY Farbe oder Stil weicht von den Produktfotos ab
PREFERENCE Gefällt einfach nicht, kein objektiver Mangel
OTHER Alles andere

1. Technische Umsetzung

Die Anbindung erfolgt über die Standard-Python-Bibliothek, da LM Studio die API-Struktur von OpenAI emuliert. Dies macht den Code extrem portabel.

from openai import OpenAI
import pandas as pd
import tqdm

# Verbindung zum lokalen LM Studio Server
# Vorteil: Keine Kosten, volle Datenhoheit & Datenschutz
client = OpenAI(base_url="http://127.0.0.1:1234/v1", api_key="local-deployment")

def classify_smart(comment):
    # Optimierter System-Prompt für präzise Klassifikation im JSON-Format
    system_prompt = """You are a Senior Quality Assurance Analyst for an E-Commerce brand.
    Your task is to analyze unstructured customer return feedback and identify the root cause.
    
    Classify the text into exactly one of the following technical categories:
    - FIT_ISSUE_SMALL (Indicates item is smaller/shorter/tighter than expected)
    - FIT_ISSUE_LARGE (Indicates item is larger/longer/looser than expected)
    - QUALITY_DEFECT (Material issues, stitching, damaged updates, odors)
    - VISUAL_DISCREPANCY (Color or style does not match product photos)
    - PREFERENCE (Customer simply didn't like it, no objective fault)
    - OTHER (Everything else)

    Responds strictly with the category name only."""
    
    try:
        response = client.chat.completions.create(
            model="model-identifier", # Nutzt das aktuell geladene Modell (z.B. Qwen 2.5)
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": f"Feedback: '{comment}'"}
            ],
            temperature=0.0 # Temperatur 0 für maximale Determinismus
        )
        return response.choices[0].message.content.strip()
    except Exception as e:
        return "ERROR"

# Laden der Daten
df = pd.read_csv('retouren_rohdaten.csv')

# Analyse eines Beispiel-Kommentars
sample = "Dachte das blau wäre heller, außerdem kratzt die Wolle."
print(f"Input: {sample}\nKategorie: {classify_smart(sample)}")
# Output: QUALITY_DEFECT (Priorisierung von Defekten vor optischen Mängeln)

2. Skalierung & Integration (n8n)

Dies ist ein vereinfachtes Code-Beispiel („Proof of Concept“). In einer produktiven Unternehmensumgebung würde man dieses Skript idealerweise in eine Automatisierungs-Plattform wie n8n integrieren.

  1. 01Neue RetoureKommentar des Kunden geht einShopify Webhook
  2. 02OrchestrierungWorkflow nimmt den Kommentar entgegenn8n
  3. 03KlassifikationLokales Modell ordnet eine Kategorie zuLM Studio
  4. 04SpeicherungErgebnis je Retoure ablegenSheets / DB
  5. 05ReportKategorien je SKU aggregierenPandas
Abb. 1 — Produktiver Workflow von der neuen Retoure bis zum Report

Moderne quantisierte Modelle (z.B. Qwen 2.5 14B mit 4-bit-Quantisierung) sind mittlerweile extrem performant und bieten ein Verständnis, das oft über kommerzielle Cloud-Lösungen hinausgeht.

# Iteration über den DataFrame mit Fortschrittsbalken
df['ai_category'] = [classify_smart(c) for c in tqdm.tqdm(df['customer_comment'])]

# Aggregation der Ergebnisse
report = df.groupby(['product_sku', 'ai_category']).size().unstack().fillna(0)

Business Value

Der Einsatz des LLMs liefert nicht nur „Daten“, sondern Handlungsanweisungen.

Content-Loop: Produkte mit hoher FIT_ISSUE_SMALL-Rate werden automatisch geflaggt, damit das Content-Team den Hinweis „Fällt klein aus“ im Shop ergänzt.

Die Kategorien lassen sich direkt einzelnen Teams zuordnen:

  • Produktmanagement: Artikel mit auffällig vielen VISUAL_DISCREPANCY-Retouren brauchen bessere Produktfotos oder genauere Beschreibungen.
  • Qualitätssicherung: Ein plötzlicher Anstieg von QUALITY_DEFECT bei einem Lieferanten deutet auf ein Problem in einer Produktionscharge hin – bevor es sich ausweitet.
  • Kundenservice: Statt eines generischen „Das tut uns leid“ erhält der Kunde eine Antwort, die zu seinem konkreten Problem passt.

Datenschutz als Vorteil

Weil das Modell lokal läuft, ist die Pipeline DSGVO-konform:

  • Keine Kundendaten verlassen das Unternehmensnetz.
  • Keine Auftragsverarbeitungsverträge mit externen KI-Anbietern nötig.
  • Volle Kontrolle über Speicherung und Löschung der Daten.
  • Keine Abhängigkeit von Verfügbarkeit oder Preisen einer Dritt-API.

Fazit

Daten sind nutzlos, wenn sie keine Entscheidungen treiben. Mit lokalen Modellen wie Qwen können Kaufleute mächtige Intelligence-Tools bauen, die Retouren nicht nur verwalten, sondern proaktiv verhindern. Das Ergebnis: echte Profitabilität durch weniger Rücksendungen und bessere Lieferanten-Qualität.