AiProperties.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package jnpf.config;
  2. import jnpf.constants.AiConstants;
  3. import lombok.Data;
  4. import java.time.Duration;
  5. import java.util.List;
  6. /**
  7. * AI 配置
  8. *
  9. * @author JNPF开发平台组
  10. * @copyright 引迈信息技术有限公司
  11. * @date 2024/10/9 14:03
  12. */
  13. @Data
  14. public class AiProperties {
  15. /**
  16. * 是否启用
  17. */
  18. private boolean enabled;
  19. /**
  20. * openai服务器
  21. */
  22. private String apiHost = AiConstants.OPENAI_HOST;
  23. /**
  24. * openai key
  25. */
  26. private List<String> apiKey;
  27. /**
  28. * 超时时间
  29. */
  30. private Long timeout = 30L;
  31. /**
  32. * 每个用户限制时间内的请求次数
  33. */
  34. private Integer userLimitCount = 1;
  35. /**
  36. * 每个用户限制时间频率
  37. */
  38. private Duration userLimitTime = Duration.ofSeconds(3);
  39. /**
  40. * 全部请求限制时间内的请求次数
  41. */
  42. private Integer totalLimitCount = 500;
  43. /**
  44. * 全部请求限制时间频率
  45. */
  46. private Duration totalLimitTime = Duration.ofMinutes(1L);
  47. /**
  48. * 代理配置
  49. */
  50. private Proxy proxy = new Proxy();
  51. /**
  52. * 对话配置
  53. */
  54. private ChatOption chat = new ChatOption();
  55. @Data
  56. public class ChatOption{
  57. /**
  58. * @see AiConstants.Model
  59. */
  60. private String mode = AiConstants.Model.QWEN_25_3;
  61. /**
  62. * 设置seed参数会使文本生成过程更具有确定性,通常用于使模型每次运行的结果一致。
  63. * 在每次模型调用时传入相同的seed值(由您指定),并保持其他参数不变,模型将很可能返回相同的结果。
  64. */
  65. private Integer seed = 1234;
  66. /**
  67. * 允许模型生成的最大Token数。
  68. */
  69. private Integer maxTokens = 1500;
  70. /**
  71. * 核采样的概率阈值,用于控制模型生成文本的多样性。
  72. * top_p越高,生成的文本更多样。反之,生成的文本更确定。
  73. * 由于temperature与top_p均可以控制生成文本的多样性,因此建议您只设置其中一个值。
  74. */
  75. private Double topP = 0.8;
  76. /**
  77. * 采样温度,用于控制模型生成文本的多样性。
  78. * temperature越高,生成的文本更多样,反之,生成的文本更确定。
  79. * 由于temperature与top_p均可以控制生成文本的多样性,因此建议您只设置其中一个值。
  80. */
  81. private Double temperature = 0.85;
  82. private boolean enableSearch = true;
  83. }
  84. @Data
  85. public class Proxy{
  86. /**
  87. * HTTP, SOCKS
  88. */
  89. private java.net.Proxy.Type type = java.net.Proxy.Type.HTTP;
  90. /**
  91. * 代理域名
  92. */
  93. private String host;
  94. /**
  95. * 代理端口
  96. */
  97. private Integer port;
  98. /**
  99. * 代理用户名
  100. */
  101. private String username;
  102. /**
  103. * 代理密码
  104. */
  105. private String password;
  106. }
  107. }