Skip to content

Commit 9f4973b

Browse files
Merge pull request #156 from microsoft/PSL-Bug-12794
fix: 12794 - DKM - Response Not Generated for Specific Question, Stuc…
2 parents 0ad1d7c + 4cbe19d commit 9f4973b

File tree

1 file changed

+48
-8
lines changed
  • App/backend-api/Microsoft.GS.DPS/API/ChatHost

1 file changed

+48
-8
lines changed

App/backend-api/Microsoft.GS.DPS/API/ChatHost/ChatHost.cs

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,41 @@ public async Task<ChatResponse> Chat(ChatRequest chatRequest)
191191
}
192192
};
193193

194-
//Get Response from ChatCompletionService
195-
ChatMessageContent returnedChatMessageContent = await _chatCompletionService.GetChatMessageContentAsync(chatHistory, executionSettings);
194+
ChatMessageContent returnedChatMessageContent;
195+
try
196+
{
196197

198+
//Get Response from ChatCompletionService
199+
returnedChatMessageContent = await _chatCompletionService.GetChatMessageContentAsync(chatHistory, executionSettings);
200+
}
201+
catch (HttpOperationException ex) when (ex.Message.Contains("content_filter", StringComparison.OrdinalIgnoreCase))
202+
{
203+
204+
Console.WriteLine($"Exception Message: {ex.Message}");
205+
206+
//if content filter triggered providing fallback response
207+
returnedChatMessageContent = new ChatMessageContent
208+
{
209+
Content = "Sorry, your request couldn't be processed as it may contain sensitive or restricted content. Please rephrase your query and try again."
210+
};
211+
}
212+
catch(Exception ex)
213+
{
214+
Console.WriteLine($"unexpected error: {ex.Message}");
215+
216+
returnedChatMessageContent = new ChatMessageContent
217+
{
218+
Content = "An error occured while processing request, try again"
219+
};
220+
221+
}
222+
if (returnedChatMessageContent == null)
223+
{
224+
returnedChatMessageContent = new ChatMessageContent
225+
{
226+
Content = "No response"
227+
};
228+
}
197229
//Just in case returnedChatMessageContent.Content has ```json ``` block, Strip it first
198230
if (returnedChatMessageContent.Content != null && returnedChatMessageContent.Content.Contains("```json", StringComparison.OrdinalIgnoreCase))
199231
returnedChatMessageContent.Content = returnedChatMessageContent.Content.Replace("```json", "").Replace("```", "");
@@ -202,13 +234,21 @@ public async Task<ChatResponse> Chat(ChatRequest chatRequest)
202234

203235
try
204236
{
205-
//Adding for non English Response.
206-
returnedChatMessageContent.Content = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(returnedChatMessageContent.Content));
207-
answerObject = JsonSerializer.Deserialize<Answer>(returnedChatMessageContent.Content, options: new JsonSerializerOptions
237+
if (returnedChatMessageContent != null && !string.IsNullOrWhiteSpace(returnedChatMessageContent.Content))
208238
{
209-
PropertyNameCaseInsensitive = true,
210-
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
211-
});
239+
240+
//Adding for non English Response.
241+
returnedChatMessageContent.Content = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(returnedChatMessageContent.Content));
242+
answerObject = JsonSerializer.Deserialize<Answer>(returnedChatMessageContent.Content, options: new JsonSerializerOptions
243+
{
244+
PropertyNameCaseInsensitive = true,
245+
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
246+
});
247+
}
248+
else
249+
{
250+
throw new NullReferenceException("returnedChatMessageContent or its Content is null.");
251+
}
212252
}
213253
catch
214254
{

0 commit comments

Comments
 (0)