chore: providers ux

This commit is contained in:
jialin
2026-02-03 18:21:08 +08:00
parent b2a8d27178
commit e8e982559d
32 changed files with 469 additions and 128 deletions
+72
View File
@@ -0,0 +1,72 @@
import IconFont from '@/components/icon-font';
import {
AudioOutlined,
PictureOutlined,
WechatWorkOutlined
} from '@ant-design/icons';
import { Tag } from 'antd';
import { modelCategoriesMap } from '../llmodels/config';
export const categoryConfig = {
[modelCategoriesMap.reranker]: {
icon: <IconFont type="icon-rank1" />,
color: 'cyan',
label: 'Reranker'
},
[modelCategoriesMap.embedding]: {
icon: <IconFont type="icon-cube" />,
color: 'magenta',
label: 'Embedding'
},
[modelCategoriesMap.text_to_speech]: {
icon: <IconFont type="icon-sound-wave" />,
color: 'geekblue',
label: 'Text-To-Speech'
},
[modelCategoriesMap.speech_to_text]: {
icon: <AudioOutlined />,
color: 'processing',
label: 'Speech-To-Text'
},
[modelCategoriesMap.image]: {
icon: <PictureOutlined />,
color: 'orange',
label: 'Image'
},
[modelCategoriesMap.llm]: {
icon: <WechatWorkOutlined />,
color: 'green',
label: 'LLM'
}
};
interface ModelTagProps {
categoryKey: keyof typeof categoryConfig;
size?: number;
}
const ModelTag: React.FC<ModelTagProps> = ({ categoryKey, size }) => {
const config = categoryConfig[categoryKey];
if (!config) return null;
return (
<Tag
icon={config.icon}
variant={'outlined'}
style={{
height: size,
margin: 0,
opacity: 1,
paddingInline: 8,
borderRadius: 12,
transform: 'scale(0.9)'
}}
color={config.color}
>
{config.label}
</Tag>
);
};
export default ModelTag;