123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import type { FC } from 'react'
- import type {
- Model,
- ModelProvider,
- } from '../declarations'
- import { useLanguage } from '../hooks'
- import { CubeOutline } from '@/app/components/base/icons/src/vender/line/shapes'
- import { OpenaiViolet } from '@/app/components/base/icons/src/public/llm'
- type ModelIconProps = {
- provider?: Model | ModelProvider
- modelName?: string
- className?: string
- }
- const ModelIcon: FC<ModelIconProps> = ({
- provider,
- className,
- modelName,
- }) => {
- const language = useLanguage()
- if (provider?.provider === 'openai' && (modelName?.startsWith('gpt-4') || modelName?.includes('4o')))
- return <OpenaiViolet className={`w-4 h-4 ${className}`}/>
- if (provider?.icon_small) {
- return (
- <img
- alt='model-icon'
- src={`${provider.icon_small[language] || provider.icon_small.en_US}`}
- className={`w-4 h-4 ${className}`}
- />
- )
- }
- return (
- <div className={`
- flex items-center justify-center w-6 h-6 rounded border-[0.5px] border-black/5 bg-gray-50
- ${className}
- `}>
- <CubeOutline className='w-4 h-4 text-gray-400' />
- </div>
- )
- }
- export default ModelIcon
|