コード例 #1
0
 public void UpdateContextWithNewItem(ConversationContext context, NlpAnalysis nlpAnalysis, SearchQuery searchQuery, bool isRelevant)
 {
     context.ContextItems.Add(new ContextItem
     {
         NlpAnalysis = nlpAnalysis,
         SearchQuery = searchQuery,
         Relevant    = isRelevant,
     });
 }
コード例 #2
0
        private bool IsIntentRelevant(NlpAnalysis nlpAnalysis)
        {
            var mostConfidentIntent = nlpAnalysis.Intents.OrderByDescending(x => x.Confidence).First();

            if (mostConfidentIntent.Confidence < this._minimumRelevantConfidence)
            {
                return(true);
            }

            return(!this._irrelevantIntents.Any(x => Regex.IsMatch(mostConfidentIntent.Name, this.WildCardToRegularExpression(x))));
        }
コード例 #3
0
 internal bool IsQueryRelevant(NlpAnalysis nlpAnalysis)
 {
     nlpAnalysis.Intents.ForEach(x => Log.Debug($"Intent - Name: {x.Name}, Confidence: {x.Confidence}"));
     nlpAnalysis.Entities.ForEach(x => Log.Debug($"Entity - Name: {x.Name}"));
     return(this.IsIntentRelevant(nlpAnalysis));
 }
コード例 #4
0
 private void SetUpNLPCallMockToReturn(NlpAnalysis nlpAnalysis)
 {
     this._nlpCallMock
     .Setup(x => x.GetNlpAnalysis(It.IsAny <string>()))
     .Returns(nlpAnalysis);
 }
コード例 #5
0
 public ContextItemBuilder WithNlpAnalysis(NlpAnalysis nlpAnalysis)
 {
     this._nlpAnalysis = nlpAnalysis;
     return(this);
 }
コード例 #6
0
 private ContextItemBuilder()
 {
     this._nlpAnalysis = NlpAnalysisBuilder.Build.Instance;
     this._searchQuery = SearchQueryBuilder.Build.Instance;
     this._relevant    = false;
 }
コード例 #7
0
 private void SetUpNLPCallMockToReturn(NlpAnalysis nlpAnalysis, bool isRelevant)
 {
     this._nlpCallMock
     .Setup(x => x.AnalyzeSearchQuery(It.IsAny <SearchQuery>(), out isRelevant))
     .Returns(nlpAnalysis);
 }