ChatRequest.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System.Net;
  2. using System.Text.Json;
  3. namespace HTEXGpt.Models
  4. {
  5. public class ChatRequest
  6. {
  7. /// <summary>
  8. /// @ApiModelProperty(value = "聊天上下文信息", notes = "
  9. /// (1)最后一个message为当前请求的信息,前面的message为历史对话信息\n
  10. /// (2)成员数目必须为奇数\n
  11. /// (3)示例中message中的role值分别为user、assistant;
  12. /// 奇数位message中的role值为user;
  13. /// 偶数位值为assistant example = "[{\"role\":\"user\",\"content\":\"你好\"},{\"role\":\"assistant\",\"content\":\"需要什么帮助\"},{\"role\":\"user\",\"content\":\"自我介绍下\"}]")
  14. /// @NotNull(message = "聊天上下文信息不能为空")
  15. /// </summary>
  16. public List<MessageDTO> messages{ get; set; }= new List<MessageDTO>();
  17. /// <summary>
  18. /// @ApiModelProperty(value = "模型人设", notes = "主要用于人设设定,例如,你是xxx公司制作的AI助手,最大20000字符", example = "你是一名天气助手,需要提供天气查询服务")
  19. /// </summary>
  20. public string? system { get; set; }
  21. /// <summary>
  22. /// @ApiModelProperty(value = "请求参数", notes = "请求参数", example = "{\"key\":\"value\"}")
  23. /// </summary>
  24. public ChatParam @params { get; set; }
  25. /// <summary>
  26. /// 模型类型
  27. /// </summary>
  28. public string? modelType { get; set; }
  29. public string? uid { get; set; }
  30. }
  31. public class MessageDTO
  32. {
  33. /// <summary>
  34. /// @ApiModelProperty(value = "角色", notes = "说明: user-用户, assistant-助手", example = "user")
  35. /// </summary>
  36. public string? role { get; set; }
  37. /// <summary>
  38. /// @ApiModelProperty(value = "消息内容", notes = "说明: 消息内容", example = "你好")
  39. /// </summary>
  40. public string? content { get; set; }
  41. }
  42. public class ChatParam
  43. {
  44. // public int max_tokens { get; set; }
  45. /// <summary>
  46. /// 通义千问0-2 ,讯飞星火0-1,默认0.5 ,文心一言 0-1,默认0.95
  47. /// </summary>
  48. public double temperature { get; set; }
  49. /// <summary>
  50. /// 通义千问0-2 ,讯飞星火0-1,文心一言 0-1,默认0.7
  51. /// </summary>
  52. public double top_p { get; set; }
  53. // public double presencePenalty { get; set; }
  54. // public double frequencyPenalty { get; set; }
  55. }
  56. public class ChatResponse
  57. {
  58. public string? result{ get; set; }
  59. /// <summary>
  60. /// 总花费
  61. /// </summary>
  62. public double total_tokens { get; set; }
  63. /// <summary>
  64. /// 输出花费
  65. /// </summary>
  66. public double completion_tokens { get; set; }
  67. /// <summary>
  68. /// 输入花费
  69. /// </summary>
  70. public double prompt_tokens { get; set; }
  71. public long time { get; set; }
  72. public string? error { get; set; }
  73. public HttpStatusCode statusCode { get; set; }
  74. }
  75. }