@@ -309,8 +309,11 @@ private static Microsoft.Extensions.AI.ChatRole ToAbstractionRole(ChatRole? role
309
309
/// <returns>A <see cref="ChatResponseUpdate"/> object containing the latest chat completion chunk.</returns>
310
310
public static ChatResponseUpdate ToChatResponseUpdate ( ChatResponseStream ? response , string responseId )
311
311
{
312
- // TODO: Check if "Message" can ever actually be null. If not, remove the null-coalescing operator
313
- return new ( ToAbstractionRole ( response ? . Message ? . Role ) , response ? . Message ? . Content ?? string . Empty )
312
+ // TODO: Check if "Message" can ever actually be null.
313
+ List < AIContent > contents = response ? . Message is null ?
314
+ [ new TextContent ( string . Empty ) ] : GetAIContentsFromMessage ( response . Message ) ;
315
+
316
+ return new ChatResponseUpdate ( ToAbstractionRole ( response ? . Message . Role ) , contents )
314
317
{
315
318
// no need to set "Contents" as we set the text
316
319
CreatedAt = response ? . CreatedAt ,
@@ -327,6 +330,11 @@ public static ChatResponseUpdate ToChatResponseUpdate(ChatResponseStream? respon
327
330
/// <param name="message">The message to convert.</param>
328
331
/// <returns>A <see cref="ChatMessage"/> object containing the converted data.</returns>
329
332
public static ChatMessage ToChatMessage ( Message message )
333
+ {
334
+ return new ChatMessage ( ToAbstractionRole ( message . Role ) , GetAIContentsFromMessage ( message ) ) { RawRepresentation = message } ;
335
+ }
336
+
337
+ private static List < AIContent > GetAIContentsFromMessage ( Message message )
330
338
{
331
339
var contents = new List < AIContent > ( ) ;
332
340
@@ -347,7 +355,7 @@ public static ChatMessage ToChatMessage(Message message)
347
355
if ( message . Content ? . Length > 0 || contents . Count == 0 )
348
356
contents . Insert ( 0 , new TextContent ( message . Content ) ) ;
349
357
350
- return new ChatMessage ( ToAbstractionRole ( message . Role ) , contents ) { RawRepresentation = message } ;
358
+ return contents ;
351
359
}
352
360
353
361
/// <summary>
0 commit comments