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; }
}
}