diff --git a/src/Custom/Chat/ChatMessageContent.cs b/src/Custom/Chat/ChatMessageContent.cs index aa810a8df..fd2bbc363 100644 --- a/src/Custom/Chat/ChatMessageContent.cs +++ b/src/Custom/Chat/ChatMessageContent.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; +using System.Text; namespace OpenAI.Chat; @@ -36,4 +37,56 @@ internal bool IsInnerCollectionDefined() { return !(Items is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined); } + + /// + /// Returns a string representation of the chat message content by iterating through all content parts. + /// + /// A formatted string representation of all content parts. + public override string ToString() + { + StringBuilder builder = new(); + + if (Count == 0) + { + return ""; + } + + for (int i = 0; i < Count; i++) + { + if (i > 0) { + builder.AppendLine(); + } + + var part = this[i]; + switch (part.Kind) + { + case ChatMessageContentPartKind.Text: + builder.Append(part.Text); + break; + + case ChatMessageContentPartKind.Image: + builder.Append(""); + break; + + case ChatMessageContentPartKind.InputAudio: + builder.Append("