index.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use client'
  2. import type { FC } from 'react'
  3. import React from 'react'
  4. import { useTranslation } from 'react-i18next'
  5. import { ModelType, type ProviderEnum } from '@/app/components/header/account-setting/model-page/declarations'
  6. import ModelSelector from '@/app/components/header/account-setting/model-page/model-selector'
  7. export type IModelConfigProps = {
  8. modelId: string
  9. providerName: ProviderEnum
  10. onChange?: (modelId: string, providerName: ProviderEnum) => void
  11. readonly?: boolean
  12. }
  13. const ModelConfig: FC<IModelConfigProps> = ({
  14. modelId,
  15. providerName,
  16. onChange,
  17. readonly,
  18. }) => {
  19. const { t } = useTranslation()
  20. return (
  21. <div className='flex items-center justify-between h-[52px] px-3 rounded-xl bg-gray-50'>
  22. <div className='text-sm font-semibold text-gray-800'>{t('explore.universalChat.model')}</div>
  23. <ModelSelector
  24. popClassName="right-0"
  25. triggerIconSmall
  26. modelType={ModelType.textGeneration}
  27. supportAgentThought
  28. value={{
  29. modelName: modelId,
  30. providerName,
  31. }}
  32. onChange={(model) => {
  33. onChange?.(model.model_name, model.model_provider.provider_name)
  34. }}
  35. readonly={readonly}
  36. />
  37. </div>
  38. )
  39. }
  40. export default React.memo(ModelConfig)