using System.Net; using System.Text.Json; namespace HTEXGpt.Models { public class ChatRequest { /// /// @ApiModelProperty(value = "聊天上下文信息", notes = " /// (1)最后一个message为当前请求的信息,前面的message为历史对话信息\n /// (2)成员数目必须为奇数\n /// (3)示例中message中的role值分别为user、assistant; /// 奇数位message中的role值为user; /// 偶数位值为assistant example = "[{\"role\":\"user\",\"content\":\"你好\"},{\"role\":\"assistant\",\"content\":\"需要什么帮助\"},{\"role\":\"user\",\"content\":\"自我介绍下\"}]") /// @NotNull(message = "聊天上下文信息不能为空") /// public List messages{ get; set; }= new List(); /// /// @ApiModelProperty(value = "模型人设", notes = "主要用于人设设定,例如,你是xxx公司制作的AI助手,最大20000字符", example = "你是一名天气助手,需要提供天气查询服务") /// public string? system { get; set; } /// /// @ApiModelProperty(value = "请求参数", notes = "请求参数", example = "{\"key\":\"value\"}") /// public ChatParam @params { get; set; } /// /// 模型类型 /// public string? modelType { get; set; } public string? uid { get; set; } } public class MessageDTO { /// /// @ApiModelProperty(value = "角色", notes = "说明: user-用户, assistant-助手", example = "user") /// public string? role { get; set; } /// /// @ApiModelProperty(value = "消息内容", notes = "说明: 消息内容", example = "你好") /// public string? content { get; set; } } public class ChatParam { // public int max_tokens { get; set; } /// /// 通义千问0-2 ,讯飞星火0-1,默认0.5 ,文心一言 0-1,默认0.95 /// public double temperature { get; set; } /// /// 通义千问0-2 ,讯飞星火0-1,文心一言 0-1,默认0.7 /// public double top_p { get; set; } // public double presencePenalty { get; set; } // public double frequencyPenalty { get; set; } } public class ChatResponse { public string? result{ get; set; } /// /// 总花费 /// public double total_tokens { get; set; } /// /// 输出花费 /// public double completion_tokens { get; set; } /// /// 输入花费 /// public double prompt_tokens { get; set; } public long time { get; set; } public string? error { get; set; } public HttpStatusCode statusCode { get; set; } } }