using System.Collections;
using System.Text.Json;

namespace Yi.Framework.AiHub.Application.Contracts.Dtos.OpenAiDto;

public class ChatCompletionsInput
{
    public List<OpenAiMessage> Messages { get; set; }

    public bool? Stream { get; set; }

    public string? Prompt { get; set; }
    public string Model { get; set; }

    public decimal? Temperature { get; set; }

    public int? max_tokens { get; set; }
}

public class OpenAiMessage
{
    public string? Role { get; set; }
    public object? Content { get; set; }

    public string ConvertContent()
    {
        if (Content is string content)
        {
            return content;
        }

        if (Content is JsonElement jsonElement && jsonElement.ValueKind == JsonValueKind.Array)
        {
            var contentItems = jsonElement.Deserialize<List<ContentItem>>();
            var currentContentItem = contentItems.FirstOrDefault();
            if (currentContentItem.type == "text")
            {
                return currentContentItem.text;
            }
        }

        throw new UserFriendlyException("当前格式暂不支持");
    }
}

public class ContentItem
{
    public string? type { get; set; }
    public string? text { get; set; }
}