Skip to content

Commit d1bd5e3

Browse files
committed
edit: commentaires plus précis
1 parent 689e751 commit d1bd5e3

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

app/js/core/interactions/helpers/findBestResponse/computeResponseScore.mjs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { computeKeywordScore } from "./computeKeywordScore.mjs";
33

44
const MATCH_SCORE_IDENTITY = 30; // Pour régler le fait de privilégier l'identité d'un keyword à la simple similarité
55

6+
// Construction de la liste des keywords à tester
67
function buildKeywordsList(next, response) {
78
// Si on a la directive !Next, on inclut seulement les keywords dans la liste des termes à tester (sauf s'il n'y a pas de keyword)
89
// Sinon on inclut le titre
@@ -19,6 +20,7 @@ function buildKeywordsList(next, response) {
1920
return baseList.map((k) => k.toLowerCase());
2021
}
2122

23+
// Calcul du score de similarité entre le message de l'utilisateur et le contenu de la réponse
2224
function calculateCosineSimilarityScore(
2325
chatbot,
2426
userInput,
@@ -32,6 +34,7 @@ function calculateCosineSimilarityScore(
3234
return cosSim ? cosSim + 0.5 : 0;
3335
}
3436

37+
// Ajustement du score final en fonction des scores de distance, de match, et des directives !Next
3538
function adjustScore(
3639
response,
3740
matchScore,
@@ -40,15 +43,17 @@ function adjustScore(
4043
next,
4144
yaml,
4245
) {
43-
// si on a un score de distance négatif, c'est qu'il y avait des keywords négatifs : donc le matchscore doit être égal à 0
46+
// Si on a un score de distance négatif, c'est qu'il y avait des keywords négatifs : donc le matchscore doit être égal à 0
4447
if (distanceScore < 0) {
4548
matchScore = 0;
4649
}
50+
51+
// Si on n'a pas eu de matchScore (identité stricte) mais qu'on a un score de distance (similarité) : on l'ajoute au matchScore
52+
// Sauf si utilise la directive !Next : dans ce cas, on doit absolument avoir un matchScore > 0 (identité stricte) pour passer à la réponse suivante
4753
if (
4854
(matchScore == 0 || (yaml && yaml.searchInContent)) &&
4955
!next.needsProcessing
5056
) {
51-
// 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é
5257
if (distanceScore > bestDistanceScore) {
5358
matchScore = matchScore + distanceScore;
5459
bestDistanceScore = distanceScore;
@@ -61,6 +66,7 @@ function adjustScore(
6166
return { matchScore, bestDistanceScore };
6267
}
6368

69+
// Calcul du score total d'une réponse en fonction du message de l'utilisateur et des keywords de la réponse
6470
export function computeResponseScore({
6571
chatbot,
6672
userInput,
@@ -104,6 +110,7 @@ export function computeResponseScore({
104110
yaml,
105111
);
106112

113+
// On retourne le score final
107114
matchScore = adjustedScore.matchScore;
108115
bestDistanceScore = adjustedScore.bestDistanceScore;
109116

app/script.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)