Self-Improvement
Der Classifier lernt aus Korrekturen. Jede Korrektur verbessert zukuenftige Klassifikationen ueber drei Ebenen.
Wie Feedback gespeichert wird
Drei Ebenen
Ebene 1: Direkte Korrektur (sofort wirksam)
Bei jeder Klassifikation durchsucht der Feedback-Store per FTS5-Volltextsuche aehnliche Tickets, die in der Vergangenheit korrigiert wurden:
SELECT correct, COUNT(*) as corrections
FROM classifications
WHERE correct IS NOT NULL AND predicted != correct
AND classifications_fts MATCH 'ticket titel woerter'
GROUP BY correct
ORDER BY corrections DESCJede Korrektur gibt einen Score-Boost von 0.5 (max 2.0) fuer die korrigierte Collection.
Beispiel:
- 5 Tickets mit “Dashboard” wurden von
lowcodezuportalkorrigiert - Neues Ticket “Dashboard zeigt alte Daten” bekommt:
portal +2.0
Ebene 2: Keyword-Gewicht-Anpassung (periodisch)
Die Methode getKeywordAdjustments() analysiert systematische Fehlklassifikationen
und schlaegt Keyword-Gewicht-Aenderungen vor:
const store = getFeedbackStore();
const adjustments = store.getKeywordAdjustments();
// Ergebnis:
// [
// { term: "dashboard", boostCollection: "portal", reduceCollection: "lowcode", count: 5 },
// { term: "checkliste", boostCollection: "produkte", reduceCollection: "studio", count: 3 }
// ]Diese Vorschlaege koennen manuell in die classifier-config.ts uebernommen werden.
Ebene 3: LLM-Prompt-Hints (automatisch)
Die Methode getLlmPromptHints() generiert Hinweise, die automatisch in den
LLM-System-Prompt eingefuegt werden:
## Bekannte Fehlklassifikationen (aus Feedback)
- Tickets die nach "studio" aussehen, gehoeren oft zu "produkte" (5x korrigiert)
- Tickets die nach "lowcode" aussehen, gehoeren oft zu "portal" (3x korrigiert)Diese Hints helfen dem LLM, bekannte Fallen zu vermeiden.
Feedback-Store
Der Store nutzt SQLite mit FTS5 (Volltextsuche):
| Tabelle | Zweck |
|---|---|
classifications | Alle Klassifikationen mit Vorhersage + Korrektur |
classifications_fts | FTS5-Index ueber Titel + Body (fuer Textaehnlichkeit) |
Datenbank-Pfad
| Umgebung | Pfad |
|---|---|
| Produktion (K8s) | /data/qmd/feedback.sqlite |
| Lokal | ./data/qmd/feedback.sqlite |
Die Feedback-DB ist unabhaengig vom Such-Index. Sie kann geloescht werden, ohne die Suche zu beeintraechtigen — nur das gelernte Feedback geht verloren.
Statistiken
curl https://docs.processcube.io/api/classify-ticket/stats \
-H "Authorization: Bearer $CLASSIFIER_API_KEY"{
"total": 247,
"withFeedback": 53,
"accuracy": 0.83,
"topMisclassifications": [
{ "predicted": "lowcode", "correct": "portal", "count": 8 },
{ "predicted": "studio", "correct": "produkte", "count": 5 }
]
}