textRuleScore applyCategory

Test de robustesse sur des tickets de support avec données invalides

Scénario de test & Cas d'usage

Contexte Métier

Un centre de support technique automatise la classification des tickets d'incident. La qualité des données est hétérogène : certains tickets n'ont pas de description, les identifiants sont parfois numériques, et les textes peuvent être très longs. Ce scénario vérifie que l'action ne échoue pas face à ces cas limites.
À propos du Set : textRuleScore

Scoring de documents textuels basé sur des règles.

Découvrir toutes les actions de textRuleScore
Préparation des Données

Création d'une table 'tickets_support' contenant des données 'sales' : un identifiant numérique, un texte manquant (null), un texte très long, et un texte standard. Un modèle simulé 'modele_support_mco' est également créé.

Copié !
1DATA casuser.tickets_support;
2 LENGTH description $3000.;
3 INPUT id_ticket description$;
4 DATALINES;
51001 Le serveur ne répond plus après le redémarrage.
61002 .
71003 Le problème est complexe et semble lié à une fuite de mémoire dans le processus X. Lorsque nous lançons la procédure Y, l'utilisation de la RAM augmente de 10% chaque minute, et ce jusqu'à saturation complète du système, forçant un reboot manuel. Nous avons essayé de purger les caches, sans succès. Le log indique une erreur 'Out of Memory' mais ne pointe pas vers une cause racine claire. Ce comportement est observé sur toutes les machines de production depuis la mise à jour du firmware Z.123.
81004 Impossible de me connecter à l'application mobile.
9;
10run;
11 
12data casuser.modele_support_mco;
13 length _mco_ $ 200;
14 _mco_ = 'simulated compiled support model'; OUTPUT;
15RUN;

Étapes de réalisation

1
Exécution de l'action sur la table contenant les cas limites. L'identifiant de document est numérique.
Copié !
1PROC CAS;
2 textRuleScore.applyCategory /
3 TABLE={name='tickets_support', caslib='casuser'},
4 model={name='modele_support_mco', caslib='casuser'},
5 docId='id_ticket',
6 text='description',
7 casOut={name='tickets_categorises', caslib='casuser', replace=true};
8RUN;
9QUIT;
2
Vérification que la table de sortie a été créée et contient des résultats pour les tickets valides.
Copié !
1PROC PRINT DATA=casuser.tickets_categorises;
2RUN;

Résultat Attendu


L'action s'exécute sans erreur. La table 'tickets_categorises' est générée. Le ticket avec l'ID 1002 (texte manquant) est présent dans la table de sortie mais n'a aucune catégorie assignée. Les autres tickets, y compris celui avec le texte très long (ID 1003), sont traités et catégorisés normalement. L'utilisation d'un `docId` numérique est gérée correctement.