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
|