Skip to content

Commit 82266d8

Browse files
authored
Fixed cache for mentor system messages to not be per user, but per problem only (#1620)
Closes SoftUni-Internal/exam-systems-issues#1708 **Summary of the changes made**: 1. {Describe your changes in the list} 2.
1 parent ec6476d commit 82266d8

File tree

3 files changed

+4
-14
lines changed

3 files changed

+4
-14
lines changed

Services/Infrastructure/OJS.Services.Infrastructure/Constants/CacheConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static class CacheConstants
2525

2626
public const string SubmissionTypesByContestCategory = "SubmissionTypesByCategory:{0}";
2727

28-
public const string MentorSystemMessage = "MentorSystemMessage:{0}:{1}";
28+
public const string MentorSystemMessageForProblem = "MentorSystemMessageForProblem:{0}";
2929

3030
public static CompositeFormat SettingsFormat => CompositeFormat.Parse("Settings:{0}");
3131
}

Services/Mentor/OJS.Services.Mentor.Business/Implementations/MentorBusinessService.cs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,26 +97,21 @@ public async Task<ConversationResponseModel> StartConversation(ConversationReque
9797
Content = $"Достигнахте лимита на съобщенията си, моля опитайте отново след {GetTimeUntilNextMessage(userMentor.QuotaResetTime)}.",
9898
Role = MentorMessageRole.Information,
9999
SequenceNumber = model.Messages.Max(m => m.SequenceNumber) + 1,
100-
ProblemId = model.ProblemId,
101100
});
102101

103102
return GetResponseModel(model, maxUserInputLength);
104103
}
105104

106-
var currentProblemMessages = model.Messages
107-
.Where(m => m.Role != MentorMessageRole.Information)
108-
.ToList();
109-
110105
var messagesToSend = new List<ChatMessage>();
111106

112107
var systemMessage = await cache.Get(
113-
string.Format(CultureInfo.InvariantCulture, CacheConstants.MentorSystemMessage, model.UserId, model.ProblemId),
108+
string.Format(CultureInfo.InvariantCulture, CacheConstants.MentorSystemMessageForProblem, model.ProblemId),
114109
async () => await this.GetSystemMessage(model),
115110
CacheConstants.OneHourInSeconds);
116111
systemMessage.Content = RemoveRedundantWhitespace(systemMessage.Content);
117112
messagesToSend.Add(CreateChatMessage(systemMessage.Role, systemMessage.Content));
118113

119-
var recentMessages = currentProblemMessages
114+
var recentMessages = model.Messages
120115
.Where(m => m.Role is not MentorMessageRole.System and not MentorMessageRole.Information)
121116
.OrderByDescending(m => m.SequenceNumber)
122117
.Take(GetNumericValue(settings, nameof(MentorMessagesSentCount)))
@@ -126,7 +121,6 @@ public async Task<ConversationResponseModel> StartConversation(ConversationReque
126121
Content = m.Content,
127122
Role = m.Role,
128123
SequenceNumber = m.SequenceNumber,
129-
ProblemId = m.ProblemId,
130124
})
131125
.ToList();
132126

@@ -182,7 +176,6 @@ public async Task<ConversationResponseModel> StartConversation(ConversationReque
182176
Content = assistantContent,
183177
Role = MentorMessageRole.Assistant,
184178
SequenceNumber = model.Messages.Max(m => m.SequenceNumber) + 1,
185-
ProblemId = model.ProblemId,
186179
});
187180

188181
userMentor.RequestsMade++;
@@ -602,9 +595,8 @@ private async Task<ConversationMessageModel> GetSystemMessage(ConversationReques
602595
model.CategoryName,
603596
model.SubmissionTypeName),
604597
Role = MentorMessageRole.System,
605-
// The system message should always be first ( in ascending order )
598+
// The system message should always be first (in ascending order)
606599
SequenceNumber = int.MinValue,
607-
ProblemId = model.ProblemId,
608600
ProblemIsExtractedSuccessfully = !string.IsNullOrWhiteSpace(text),
609601
};
610602
}

Services/Mentor/OJS.Services.Mentor.Models/ConversationMessageModel.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ public class ConversationMessageModel
1010

1111
public int SequenceNumber { get; set; }
1212

13-
public int ProblemId { get; set; }
14-
1513
/// <summary>
1614
/// True if the problem description was extracted successfully from the resource document or the link.
1715
/// </summary>

0 commit comments

Comments
 (0)