model-config.tsx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import { ModalConfigValidator, ModelConfig, useAppConfig } from "../store";
  2. import Locale from "../locales";
  3. import { InputRange } from "./input-range";
  4. import { ListItem, Select } from "./ui-lib";
  5. export function _ModelConfigList(props: {
  6. modelConfig: ModelConfig;
  7. updateConfig: (updater: (config: ModelConfig) => void) => void;
  8. }) {
  9. return null;
  10. /*
  11. const config = useAppConfig();
  12. return (
  13. <>
  14. <ListItem title={Locale.Settings.Model}>
  15. <Select
  16. value={props.modelConfig.model}
  17. onChange={(e) => {
  18. props.updateConfig(
  19. (config) =>
  20. (config.model = ModalConfigValidator.model(
  21. e.currentTarget.value,
  22. )),
  23. );
  24. }}
  25. >
  26. {config.allModels().map((v, i) => (
  27. <option value={v.name} key={i} disabled={!v.available}>
  28. {v.name}
  29. </option>
  30. ))}
  31. </Select>
  32. </ListItem>
  33. <ListItem
  34. title={Locale.Settings.Temperature.Title}
  35. subTitle={Locale.Settings.Temperature.SubTitle}
  36. >
  37. <InputRange
  38. value={props.modelConfig.temperature?.toFixed(1)}
  39. min="0"
  40. max="1" // lets limit it to 0-1
  41. step="0.1"
  42. onChange={(e) => {
  43. props.updateConfig(
  44. (config) =>
  45. (config.temperature = ModalConfigValidator.temperature(
  46. e.currentTarget.valueAsNumber,
  47. )),
  48. );
  49. }}
  50. ></InputRange>
  51. </ListItem>
  52. <ListItem
  53. title={Locale.Settings.TopP.Title}
  54. subTitle={Locale.Settings.TopP.SubTitle}
  55. >
  56. <InputRange
  57. value={(props.modelConfig.top_p ?? 1).toFixed(1)}
  58. min="0"
  59. max="1"
  60. step="0.1"
  61. onChange={(e) => {
  62. props.updateConfig(
  63. (config) =>
  64. (config.top_p = ModalConfigValidator.top_p(
  65. e.currentTarget.valueAsNumber,
  66. )),
  67. );
  68. }}
  69. ></InputRange>
  70. </ListItem>
  71. <ListItem
  72. title={Locale.Settings.MaxTokens.Title}
  73. subTitle={Locale.Settings.MaxTokens.SubTitle}
  74. >
  75. <input
  76. type="number"
  77. min={100}
  78. max={100000}
  79. value={props.modelConfig.max_tokens}
  80. onChange={(e) =>
  81. props.updateConfig(
  82. (config) =>
  83. (config.max_tokens = ModalConfigValidator.max_tokens(
  84. e.currentTarget.valueAsNumber,
  85. )),
  86. )
  87. }
  88. ></input>
  89. </ListItem>
  90. <ListItem
  91. title={Locale.Settings.PresencePenalty.Title}
  92. subTitle={Locale.Settings.PresencePenalty.SubTitle}
  93. >
  94. <InputRange
  95. value={props.modelConfig.presence_penalty?.toFixed(1)}
  96. min="-2"
  97. max="2"
  98. step="0.1"
  99. onChange={(e) => {
  100. props.updateConfig(
  101. (config) =>
  102. (config.presence_penalty =
  103. ModalConfigValidator.presence_penalty(
  104. e.currentTarget.valueAsNumber,
  105. )),
  106. );
  107. }}
  108. ></InputRange>
  109. </ListItem>
  110. <ListItem
  111. title={Locale.Settings.FrequencyPenalty.Title}
  112. subTitle={Locale.Settings.FrequencyPenalty.SubTitle}
  113. >
  114. <InputRange
  115. value={props.modelConfig.frequency_penalty?.toFixed(1)}
  116. min="-2"
  117. max="2"
  118. step="0.1"
  119. onChange={(e) => {
  120. props.updateConfig(
  121. (config) =>
  122. (config.frequency_penalty =
  123. ModalConfigValidator.frequency_penalty(
  124. e.currentTarget.valueAsNumber,
  125. )),
  126. );
  127. }}
  128. ></InputRange>
  129. </ListItem>
  130. </>
  131. );
  132. */
  133. }