50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
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; }
|
|
} |