← Zurück zum Blog
Intent-ErkennungChat-KlassifikationChoice-FragenTutorialProduktion

Jev Intent-Erkennung für Nachrichten: Das komplette Playbook für die Chat-Klassifikation

·3 Min. Lesezeit

Jev Intent-Erkennung für Nachrichten: Das komplette Playbook für die Chat-Klassifikation

Die Intent-Erkennung bei Nachrichten ist eines dieser Probleme, das Menschen im Handumdrehen lösen und das Regeln nie richtig hinbekommen. Eine Kollegin schreibt: „Ich habe mir den Vorschlag mal angesehen — da sind einige Ideen drin. Angesichts des Stils Ihres Teams hätte ich allerdings einen ausgereifteren Ansatz erwartet. Danke trotzdem~". Das ist keine Frage. Das ist kein Lob. Das ist passiv-aggressiv — und ein Keyword-Router wird das nie erfahren.

Dieser Guide führt durch ein komplettes Jev-Setup zur Intent-Erkennung bei Nachrichten: State-Design, Formulierung der Fragen, Wahrscheinlichkeits-Schwellenwerte und wie Sie das Ganze in Produktion bringen, ohne ein LLM im Hot Path zu haben.

TL;DR: Geben Sie Jev den rohen Chat-Text als state, stellen Sie eine Choice-Frage mit drei sich gegenseitig ausschließenden Optionen (echte Frage / passiv-aggressiv / lockeres Geplauder) und verzweigen Sie anhand der confidence. Unter 0,55–0,7 fallen Sie auf einen Menschen oder ein langsameres Modell zurück. Typische Latenz: ~140 ms.


Warum Nachrichten-Intent ein System-One-Problem ist

Kahnemans Thinking, Fast and Slow beschreibt zwei Modi des Urteilens. System One ist schnell, intuitiv und mustererkennend — genau so lesen Menschen den Tonfall in Chats. System Two ist langsames Schlussfolgern. Die meisten Produktfunktionen, die eine Antwort auf „ist das dringend / ist das sarkastisch / ist das Spam" brauchen, sind Aufgaben für System One.

LLMs können das zwar, aber sie wurden auf Generierung im System-Two-Stil trainiert: lange Antworten, Erklärungen, Tool-Aufrufe. Bei der Chat-Intent-Klassifikation in großem Volumen zahlen Sie für Tokens, die Sie nicht brauchen, und parsen anschließend Fließtext, den Sie nie wollten.

Jev ist für das Gegenteil gebaut: typisierte probabilistische Entscheidungen auf einer festen Label-Menge.


Die dreiteilige Intent-Taxonomie

Achten Sie darauf, dass die Optionen gegenseitig ausschließend und natürlich formuliert sind:

Option Was sie abdeckt Beispielsignal
Echte Frage Ernst gemeinte Bitte um Information oder Hilfe Fragezeichen, klare Anfrage
Passiv-aggressiv Indirekte Kritik, höfliche Feindseligkeit Schein-Komplimente, „trotzdem~", Auslassungspunkte
Lockeres Geplauder Unverbindlicher sozialer Smalltalk Emojis, Grüße, themafremdes Geplänkel

Warum keine Option „Sonstiges" hinzufügen?

„Sonstiges" wird zum Magneten für Unsicherheit. Sie sehen nicht mehr, welches echte Label dem Modell eigentlich unsicher ist. Bevorzugen Sie eine gleichmäßige Verteilung über die echten Optionen und nutzen Sie dann einen Konfidenz-Schwellenwert für die unbekannte Masse.


Schritt 1 — Den State entwerfen (Rohtext einfügen)

{
  "state": "Kollegin: Ich habe mir den Vorschlag mal angesehen — da sind einige Ideen drin. Angesichts des Stils Ihres Teams hätte ich allerdings einen ausgereifteren Ansatz erwartet. Danke trotzdem~"
}

Regeln für gute Zustandstexte in der Intent-Erkennung bei Nachrichten:

  1. Behalten Sie Tonfall-Marker bei. Zeichensetzung, Füllwörter, Abschwächungen, Emojis — sie sind das Signal.
  2. Nehmen Sie Sprecher-Labels auf, wenn Sie welche haben („Kollegin:", „Kunde:").
  3. Bereinigen Sie nichts vorab zu Zusammenfassungen. „Die Kollegin kritisiert uns" entfernt genau die Belege, die Jev braucht.
  4. Lassen Sie personenbezogene Daten (PII) weg, wenn Ihre Compliance das verlangt — Bestell-IDs helfen, Zahlungsdaten nicht.

Schritt 2 — Die Frage definieren

{
  "type": "choice",
  "text": "Was ist die eigentliche Absicht hinter dieser Nachricht?",
  "options": ["Echte Frage", "Passiv-aggressiv", "Lockeres Geplauder"]
}

Checkliste für die Formulierung der Optionen

  • Verwenden Sie Wörter, die Annotatoren ohne Styleguide wählen würden („passiv-aggressiv" ja; „negatives soziales Signal mit indirekter Formulierung" nein).
  • Nehmen Sie bei Choice-Fragen lieber 3–5 Optionen.
  • Eine Entscheidung pro Frage. Die Dringlichkeit der Antwort ist eine separate Frage (Score oder Choice), keine zweite Option in dieser.

Eine zweite Frage zur Dringlichkeit sieht oft so aus:

{
  "type": "score",
  "text": "Wie schnell sollte ich antworten?",
  "options": ["Heute", "Innerhalb von 3 Tagen", "Nicht dringend"]
}

Schritt 3 — Jev aufrufen (über OpenRouter)

Modell-ID: typesafe/jev-1.13

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "messages": [{
      "role": "user",
      "content": {
        "state": "…roher Chat-Text…",
        "questions": [{
          "type": "choice",
          "text": "Was ist die eigentliche Absicht hinter dieser Nachricht?",
          "options": ["Echte Frage", "Passiv-aggressiv", "Lockeres Geplauder"]
        }]
      }
    }]
  }'

Beispielantwort

{
  "answers": [{
    "type": "choice",
    "text": "Was ist die eigentliche Absicht hinter dieser Nachricht?",
    "selected": "Passiv-aggressiv",
    "confidence": 0.71,
    "distribution": {
      "Passiv-aggressiv": 0.71,
      "Lockeres Geplauder": 0.15,
      "Echte Frage": 0.14
    }
  }]
}

confidence ist die Wahrscheinlichkeit der Top-Option. Protokollieren Sie immer die vollständige distribution — die Entropie ist Ihr Frühwarnsignal für Drift.


Schwellenwert-Tuning für die Chat-Intent-Klassifikation

Testen Sie an einer gelabelten Stichprobe von 50–100 Nachrichten:

Wahrscheinlichkeit der Top-Option Aktion
≥ 0,85 Automatisches Routing / automatische Priorisierung
0,55 – 0,85 Weiche Aktion (vorgeschlagenes Label in der UI)
< 0,55 Menschliche Prüfung oder langsameres LLM

Intent-Klassifikation läuft in großem Volumen und bei geringen Einsätzen — bis sie es nicht mehr tut. Ein Tonfall-Detektor im Kundensupport, der Sarkasmus falsch einordnet, ist ärgerlich; ein Compliance-Triage, der Bedrohungen falsch einordnet, ist es nicht.


Produktions-Checkliste für die Intent-Erkennung bei Nachrichten

  • Speichern Sie selected, confidence, distribution, Latenz und Modell-ID
  • Alarmieren Sie, wenn die durchschnittliche Entropie von Woche zu Woche steigt (Drift kommt vor dem Genauigkeitsverlust)
  • Prüfen Sie die Schwellenwerte nach dem Launch neuer Produktbereiche erneut (das Vokabular verschiebt sich)
  • Halten Sie ein Golden Set mit 30 schwierigen Fällen für Regressionstests bereit
  • Übergeben Sie bei Timeouts an die menschliche Prüfung — blockieren Sie nicht den Nutzer

Wann Sie stattdessen ein LLM einsetzen

Setzen Sie ein LLM ein, wenn Sie eine neu formulierte Antwort, mehrstufiges Schlussfolgern oder offene Labels brauchen. Setzen Sie Jev ein, wenn die Label-Menge feststeht und Sie einen Wert brauchen, an dem Sie per switch verzweigen. Viele Stacks machen beides: Das LLM entwirft, Jev entscheidet.


FAQ

Kann Jev Sarkasmus von Passiv-Aggression unterscheiden?
Es trennt beides, wenn Ihre Optionen es tun. Wenn Sie beides brauchen, fügen Sie „Sarkastisch" als vierte Option hinzu und justieren Sie die Schwellenwerte neu.

Spielt die Sprache eine Rolle?
Jev wird sprachübergreifend eingesetzt; behalten Sie den state in der Originalsprache und schreiben Sie die Optionen in der Sprache Ihres Label-Sets.

Worin unterscheidet sich das von Keyword-basierter Sentiment-Analyse?
Sentiment ist Polarität. Intent ist was die sprechende Person gerade tut. „Danke trotzdem~" besteht aus positivem Sentiment-Vokabular mit negativer Absicht.


Weiterführende Artikel