You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: app/js/core/interactions/helpers/findBestResponse/computeResponseScore.mjs
+34-14Lines changed: 34 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -9,14 +9,7 @@ const LEVENSHTEIN_THRESHOLD = 3; // Seuil de similarité (tolérance des fautes
9
9
constMATCH_SCORE_IDENTITY=30;// Pour régler le fait de privilégier l'identité d'un keyword à la simple similarité
10
10
constWORD_LENGTH_FACTOR=0.1;// Prise en compte de la taille des keywords (plus les keywords sont grands, plus ils doivent avoir un poids important)
11
11
12
-
exportfunctioncomputeResponseScore({
13
-
chatbot,
14
-
userInput,
15
-
response,
16
-
responseIndex,
17
-
}){
18
-
constnext=chatbot.nextMessage;
19
-
letbestDistanceScore=0;
12
+
functionbuildKeywordsList(next,response){
20
13
// Si on a la directive !Next, alors on ne teste pas la correspondance avec le titre, mais seulement avec les keywords (sauf s'il n'y a pas de keyword)
21
14
// Sinon on inclut le titre
22
15
// On met tout en minuscule
@@ -28,21 +21,45 @@ export function computeResponseScore({
// Si on a la directive !Next, alors on ne teste pas la correspondance avec le titre, mais seulement avec les keywords (sauf s'il n'y a pas de keyword)
50
+
// Sinon on inclut le titre
51
+
// On met tout en minuscule
52
+
constkeywords=buildKeywordsList(next,response);
38
53
letmatchScore=0;
39
54
letdistanceScore=0;
55
+
// Si le YAML indique de faire une recherche dans le contenu avec la similarité vectorielle, on prend comme base de score le cosine similarity entre le message de l'utilisateur et le contenu vectoriel de la réponse
// En cas de simple similarité : on monte quand même le score. Mais si on est dans le mode où on va directement à une réponse en testant la présence de keywords, la correspondance doit être stricte, on ne fait pas de calcul de similarité
0 commit comments