using System.Reflection;
using System.Text.Json.Serialization;
namespace Yi.Framework.AiHub.Application.Contracts.Dtos.Chat;
public class AgentResultOutput
{
///
/// 类型
///
[JsonIgnore]
public AgentResultTypeEnum TypeEnum { get; set; }
///
/// 类型
///
public string Type => TypeEnum.GetJsonName();
///
/// 内容载体
///
public object Content { get; set; }
}
public enum AgentResultTypeEnum
{
///
/// 文本内容
///
[JsonPropertyName("text")]
Text,
///
/// 工具调用中
///
[JsonPropertyName("toolCalling")]
ToolCalling,
///
/// 工具调用完成
///
[JsonPropertyName("toolCalled")]
ToolCalled,
///
/// 用量
///
[JsonPropertyName("usage")]
Usage,
///
/// 工具调用用量
///
[JsonPropertyName("toolCallUsage")]
ToolCallUsage
}
public static class AgentResultTypeEnumExtensions
{
public static string GetJsonName(this AgentResultTypeEnum value)
{
var member = typeof(AgentResultTypeEnum).GetMember(value.ToString()).FirstOrDefault();
var attr = member?.GetCustomAttribute();
return attr?.Name ?? value.ToString();
}
}