← All source files

V1 / 8f6c47b125e8

ChatMessageExtensions.cs

Lilith/Core/Chat/ChatMessageExtensions.cs

Changed in this version
CS
namespace Lilith.Core.Chat;

public static class ChatMessageExtensions
{
    public static ChatMessage Snapshot(this ChatMessage message) =>
        message with { Images = message.Images is null ? null : [.. message.Images] };

    public static SavedChatMessage ToSavedMessage(this ChatMessage message) => new()
    {
        Role = message.Role,
        Content = message.Content ?? string.Empty,
        Tokens = message.Tokens,
        Images = message.Images is { Count: > 0 } ? [.. message.Images] : null
    };

    public static ChatMessage ToChatMessage(this SavedChatMessage message) =>
        new(message.Role, message.Content, message.Images is null ? null : [.. message.Images], message.Tokens);
}