From a054ee542e04f7b5573c635247dc7bd47f882c74 Mon Sep 17 00:00:00 2001 From: Mohamed Marrouchi Date: Mon, 12 May 2025 14:40:38 +0100 Subject: [PATCH] fix: minor fixes --- api/src/chat/services/block.service.spec.ts | 6 +++--- api/src/chat/services/block.service.ts | 20 ++++++-------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/api/src/chat/services/block.service.spec.ts b/api/src/chat/services/block.service.spec.ts index 5cbbc1c3..432bf5e3 100644 --- a/api/src/chat/services/block.service.spec.ts +++ b/api/src/chat/services/block.service.spec.ts @@ -416,7 +416,7 @@ describe('BlockService', () => { blockService, 'calculateNluPatternMatchScore', ); - const bestBlock = await blockService.matchBestNLP( + const bestBlock = blockService.matchBestNLP( blocks, mockNlpGreetingNameEntities, ); @@ -458,7 +458,7 @@ describe('BlockService', () => { blockService, 'calculateNluPatternMatchScore', ); - const bestBlock = await blockService.matchBestNLP(blocks, nlp); + const bestBlock = blockService.matchBestNLP(blocks, nlp); // Ensure calculateBlockScore was called at least once for each block expect(calculateBlockScoreSpy).toHaveBeenCalledTimes(3); // Called for each block @@ -476,7 +476,7 @@ describe('BlockService', () => { blockGetStarted, ]; - const bestBlock = await blockService.matchBestNLP( + const bestBlock = blockService.matchBestNLP( blocks, mockNlpGreetingNameEntities, ); diff --git a/api/src/chat/services/block.service.ts b/api/src/chat/services/block.service.ts index f4753ea3..add9c8a4 100644 --- a/api/src/chat/services/block.service.ts +++ b/api/src/chat/services/block.service.ts @@ -181,7 +181,7 @@ export class BlockService extends BaseService< const scoredEntities = await this.nlpService.computePredictionScore(nlp); - block = await this.matchBestNLP(filteredBlocks, scoredEntities); + block = this.matchBestNLP(filteredBlocks, scoredEntities); } } @@ -344,10 +344,10 @@ export class BlockService extends BaseService< * @returns A promise that resolves to the block with the highest NLP match score, * or `undefined` if no suitable match is found. */ - async matchBestNLP( + matchBestNLP( blocks: B[], scoredEntities: NLU.ScoredEntities, - ): Promise { + ): B | undefined { const bestMatch = blocks.reduce( (bestMatch, block) => { const matchedPatterns = this.getMatchingNluPatterns( @@ -405,17 +405,9 @@ export class BlockService extends BaseService< const matchedEntity: NLU.ScoredEntity | undefined = prediction.entities.find((e) => this.matchesNluEntity(e, pattern)); - if (!matchedEntity) { - throw new Error( - 'Unable to compute the NLU match score : pattern / entity mismatch', - ); - } - - const patternScore = this.computePatternScore( - matchedEntity, - pattern, - penaltyFactor, - ); + const patternScore = matchedEntity + ? this.computePatternScore(matchedEntity, pattern, penaltyFactor) + : 0; return score + patternScore; }, 0);