model.tsx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { ModelConfig } from "@/app/store";
  2. import { ModelConfigProps } from "../types";
  3. import { ListItem, Select } from "../../ui-lib";
  4. import Locale from "@/app/locales";
  5. import { InputRange } from "../../input-range";
  6. export function AnthropicModelConfig(
  7. props: ModelConfigProps<ModelConfig["anthropic"]>,
  8. ) {
  9. return (
  10. <>
  11. <ListItem title={Locale.Settings.Model}>
  12. <Select
  13. value={props.config.model}
  14. onChange={(e) => {
  15. props.updateConfig(
  16. (config) => (config.model = e.currentTarget.value),
  17. );
  18. }}
  19. >
  20. {props.models.map((v, i) => (
  21. <option value={v.name} key={i} disabled={!v.available}>
  22. {v.name}
  23. </option>
  24. ))}
  25. </Select>
  26. </ListItem>
  27. <ListItem
  28. title={Locale.Settings.Temperature.Title}
  29. subTitle={Locale.Settings.Temperature.SubTitle}
  30. >
  31. <InputRange
  32. value={props.config.temperature?.toFixed(1)}
  33. min="0"
  34. max="1" // lets limit it to 0-1
  35. step="0.1"
  36. onChange={(e) => {
  37. props.updateConfig(
  38. (config) => (config.temperature = e.currentTarget.valueAsNumber),
  39. );
  40. }}
  41. ></InputRange>
  42. </ListItem>
  43. <ListItem
  44. title={Locale.Settings.TopP.Title}
  45. subTitle={Locale.Settings.TopP.SubTitle}
  46. >
  47. <InputRange
  48. value={(props.config.top_p ?? 1).toFixed(1)}
  49. min="0"
  50. max="1"
  51. step="0.1"
  52. onChange={(e) => {
  53. props.updateConfig(
  54. (config) => (config.top_p = e.currentTarget.valueAsNumber),
  55. );
  56. }}
  57. ></InputRange>
  58. </ListItem>
  59. <ListItem
  60. title={Locale.Settings.MaxTokens.Title}
  61. subTitle={Locale.Settings.MaxTokens.SubTitle}
  62. >
  63. <input
  64. type="number"
  65. min={100}
  66. max={100000}
  67. value={props.config.max_tokens_to_sample}
  68. onChange={(e) =>
  69. props.updateConfig(
  70. (config) =>
  71. (config.max_tokens_to_sample = e.currentTarget.valueAsNumber),
  72. )
  73. }
  74. ></input>
  75. </ListItem>
  76. </>
  77. );
  78. }