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.
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.
- 01Neue RetoureKommentar des Kunden geht einShopify Webhook
- 02OrchestrierungWorkflow nimmt den Kommentar entgegenn8n
- 03KlassifikationLokales Modell ordnet eine Kategorie zuLM Studio
- 04SpeicherungErgebnis je Retoure ablegenSheets / DB
- 05ReportKategorien je SKU aggregierenPandas
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_DEFECTbei 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.