OpenAISettings.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <script setup lang="ts">
  2. import { inject } from 'vue'
  3. import type { Settings } from '@/views/preference/typedef'
  4. const data: Settings = inject('data')!
  5. const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
  6. const models = shallowRef([
  7. {
  8. value: 'gpt-4o',
  9. },
  10. {
  11. value: 'gpt-4-1106-preview',
  12. },
  13. {
  14. value: 'gpt-4',
  15. },
  16. {
  17. value: 'gpt-4-32k',
  18. },
  19. {
  20. value: 'gpt-3.5-turbo',
  21. },
  22. ])
  23. </script>
  24. <template>
  25. <AForm layout="vertical">
  26. <AFormItem
  27. :label="$gettext('Model')"
  28. :validate-status="errors?.openai?.model ? 'error' : ''"
  29. :help="errors?.openai?.model === 'safety_text'
  30. ? $gettext('The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots.')
  31. : ''"
  32. >
  33. <AAutoComplete
  34. v-model:value="data.openai.model"
  35. :options="models"
  36. />
  37. </AFormItem>
  38. <AFormItem
  39. :label="$gettext('API Base Url')"
  40. :validate-status="errors?.openai?.base_url ? 'error' : ''"
  41. :help="errors?.openai?.base_url === 'url'
  42. ? $gettext('The url is invalid.')
  43. : ''"
  44. >
  45. <AInput
  46. v-model:value="data.openai.base_url"
  47. :placeholder="$gettext('Leave blank for the default: https://api.openai.com/')"
  48. />
  49. </AFormItem>
  50. <AFormItem
  51. :label="$gettext('API Proxy')"
  52. :validate-status="errors?.openai?.proxy ? 'error' : ''"
  53. :help="errors?.openai?.proxy === 'url'
  54. ? $gettext('The url is invalid.')
  55. : ''"
  56. >
  57. <AInput
  58. v-model:value="data.openai.proxy"
  59. placeholder="http://127.0.0.1:1087"
  60. />
  61. </AFormItem>
  62. <AFormItem
  63. :label="$gettext('API Token')"
  64. :validate-status="errors?.openai?.token ? 'error' : ''"
  65. :help="errors?.openai?.token === 'safety_text'
  66. ? $gettext('Token is not valid')
  67. : ''"
  68. >
  69. <AInputPassword v-model:value="data.openai.token" />
  70. </AFormItem>
  71. </AForm>
  72. </template>
  73. <style lang="less" scoped>
  74. </style>