@@ -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