Files
Starlight_Launcher/apps/app-frontend/src/data/lobeModelIcons.ts
T

327 lines
12 KiB
TypeScript

export type LobeModelAvatarAsset = 'color' | 'mono'
export interface LobeModelAvatarConfig {
asset: LobeModelAvatarAsset
background: string
color: string
multiple: number
}
export interface LobeModelIconMapping {
keywords: string[]
openAIType?: 'gpt3' | 'gpt4' | 'gpt5' | 'o1' | 'oss' | 'platform'
slug: string
}
const avatar = (
background: string,
color: string,
multiple: number,
asset: LobeModelAvatarAsset = 'mono',
): LobeModelAvatarConfig => ({ asset, background, color, multiple })
export const lobeModelAvatarBrands: Record<string, LobeModelAvatarConfig> = {
ace: avatar('#000', '#fff', 0.65),
adobe: avatar('#EB1000', '#fff', 0.6),
ai2: avatar('#f0529c', '#fff', 0.7),
ai21: avatar('#E91E63', '#fff', 0.7),
ai360: avatar('linear-gradient(to bottom, #12B7FA, #006ffb)', '#fff', 0.75),
aihubmix: avatar('#006FFB', '#fff', 0.75),
aimass: avatar('#fff', '#fff', 0.8, 'color'),
aionlabs: avatar('#fff', '#0f172a', 0.8),
anthropic: avatar('#F1F0E8', '#141413', 0.75),
arcee: avatar('#008C8C', '#fff', 0.7),
assemblyai: avatar('#2545D3', '#fff', 0.6),
aws: avatar('#222F3E', '#fff', 0.75, 'color'),
aya: avatar('#416FDC', '#fff', 0.6),
baai: avatar('#000', '#fff', 0.6),
baichuan: avatar('#FF6933', '#fff', 0.6),
baiducloud: avatar('#2468f2', '#fff', 0.75),
bilibili: avatar('#FB7299', '#fff', 0.65),
bilibiliindex: avatar('#5E19B7', '#fff', 0.7),
burncloud: avatar('#E95513', '#fff', 0.75),
bytedance: avatar('#325AB4', '#fff', 0.6),
chatglm: avatar('#4268FA', '#fff', 0.75),
claude: avatar('#D97757', '#fff', 0.75),
codegeex: avatar('#00e7e7', '#000', 0.75),
cogview: avatar('#000', '#fff', 0.6, 'color'),
cohere: avatar('#39594D', '#fff', 0.6),
dalle: avatar(
'conic-gradient(from 180deg, #FFFF67, #43FFFF, #50DA4C, #FF6E3D, #3C46FF)',
'#fff',
0.6,
),
dbrx: avatar('#EE3D2C', '#fff', 0.6),
deepcogito: avatar('#4e81ee', '#fff', 0.7),
deepmind: avatar('#4285F4', '#fff', 0.75),
deepseek: avatar('#4D6BFE', '#fff', 0.75),
dolphin: avatar('#6186db', '#fff', 0.75),
doubao: avatar('#FFF', '#fff', 0.75, 'color'),
essentialai: avatar('linear-gradient(135deg, #5E38A5, #31018C 63%)', '#fff', 0.7),
fireworks: avatar('#5019C5', '#000', 0.75),
fishaudio: avatar('#fff', '#000', 0.75),
flux: avatar('#fff', '#000', 0.7),
glmv: avatar('#0039C6', '#fff', 0.7),
gemini: avatar('#fff', '#fff', 0.8, 'color'),
gemma: avatar('linear-gradient(45deg, #446EFF 14%, #2E96FF 40%, #B1C5FF 73%)', '#fff', 1),
google: avatar('#fff', '#fff', 0.75, 'color'),
grok: avatar('#000', '#fff', 0.75),
hunyuan: avatar('#0053e0', '#fff', 0.75),
ibm: avatar('#0F62FE', '#fff', 0.75),
ideogram: avatar('#fff', '#000', 0.75),
inception: avatar('#fff', '#000', 0.8),
inflection: avatar('#038247', '#fff', 0.6),
internlm: avatar('#1B3882', '#fff', 0.75),
jimeng: avatar('#000', '#fff', 0.6, 'color'),
jina: avatar('#000', '#fff', 0.6),
kling: avatar('#000', '#fff', 0.75, 'color'),
kolors: avatar('radial-gradient(#CBFF00,#7EF426)', '#fff', 0.75),
kwaipilot: avatar('#000', '#fff', 0.8, 'color'),
lg: avatar('#C00C3F', '#FFF', 1),
llava: avatar('#CB2D30', '#fff', 0.6),
liquid: avatar('#fff', '#000', 0.75),
longcat: avatar('#fff', '#000', 0.7, 'color'),
menlo: avatar('#FF5C00', '#fff', 0.6),
meta: avatar('linear-gradient(45deg, #007FF8, #0668E1, #007FF8)', '#fff', 0.75),
microsoft: avatar('#00A4EF', '#fff', 0.6),
minimax: avatar('linear-gradient(to right, #E2167E, #FE603C)', '#fff', 0.75),
mistral: avatar('#FA520F', '#fff', 0.75),
moonshot: avatar('#16191E', '#fff', 0.75),
morph: avatar('#000', '#99d52a', 0.7),
nanobanana: avatar('#FCD53F', '#fff', 0.8),
nousresearch: avatar('#fff', '#000', 0.75),
nova: avatar('linear-gradient(-45deg, #ff6200, #e433ff 39.9%, #6842ff 96%)', '#fff', 0.7),
nvidia: avatar('#74B71B', '#fff', 0.75),
openai: avatar('#000', '#fff', 0.75),
openchat: avatar('#4A7FE3', '#fff', 0.6),
openrouter: avatar('#000', '#C8FF00', 0.75),
palm: avatar('#FFF', '#fff', 0.75, 'color'),
perplexity: avatar('#22B8CD', '#000', 0.75),
phind: avatar('#000', '#fff', 0.6),
qiniu: avatar('#06AEEF', '#fff', 0.75),
qwen: avatar('#615ced', '#fff', 0.75),
relace: avatar('#000', '#fff', 0.66),
rwkv: avatar('#3431C3', '#fff', 0.6),
sensenova: avatar('#5B2AD8', '#fff', 0.7),
skywork: avatar('#fff', '#000', 0.75, 'color'),
sora: avatar('linear-gradient(180deg, #012659 0%, #0968DA 100%)', '#fff', 0.7),
spark: avatar('#0070f0', '#fff', 0.75),
stability: avatar('linear-gradient(to bottom, #9D39FF, #A380FF)', '#fff', 0.7),
stepfun: avatar('#fff', '#000', 0.65),
suno: avatar('#000', '#fff', 0.6),
tii: avatar('#6400FF', '#fff', 0.75),
udio: avatar('#e30a5d', '#fff', 0.6),
upstage: avatar('linear-gradient(to bottom, #AEBCFE, #805DFA)', '#fff', 0.6),
v0: avatar('#000', '#fff', 0.75),
vertexai: avatar('#4285F4', '#fff', 0.6),
voyage: avatar('#012E33', '#fff', 0.6),
wenxin: avatar('linear-gradient(to right, #0A51C3, #23A4FB)', '#fff', 0.75),
xiaomimimo: avatar('#000', '#fff', 0.7),
yi: avatar('#003425', '#fff', 0.6, 'color'),
zai: avatar('#000', '#fff', 0.6),
}
export const lobeModelIconMappings: LobeModelIconMapping[] = [
{ slug: 'openai', keywords: ['gpt-3'], openAIType: 'gpt3' },
{ slug: 'openai', keywords: ['gpt-4'], openAIType: 'gpt4' },
{ slug: 'openai', keywords: ['gpt-5'], openAIType: 'gpt5' },
{ slug: 'sora', keywords: ['sora'] },
{ slug: 'openai', keywords: ['gpt-oss'], openAIType: 'oss' },
{
slug: 'openai',
keywords: ['o1-', '^o1', '/o1', 'o3-', '^o3', '/o3', 'o4-', '^o4', '/o4'],
openAIType: 'o1',
},
{ slug: 'dalle', keywords: ['dalle', 'dall-e'] },
{
slug: 'openai',
keywords: [
'text-embedding-',
'tts-',
'whisper-',
'codex',
'davinci',
'babbage',
'omni-moderation',
'text-moderation',
'text-adb',
'text-ada',
'computer-use',
],
openAIType: 'platform',
},
{ slug: 'openai', keywords: ['^gpt-', '/gpt-', 'openai'] },
{ slug: 'glmv', keywords: ['^glm-(.*)v', '/glm-(.*)v', '-glm-(.*)v'] },
{
slug: 'zai',
keywords: ['^glm-5', '/glm-5', '/glm5', '-glm-4', '^glm-4', '/glm-4', '/glm4', '-glm-5'],
},
{ slug: 'chatglm', keywords: ['^glm-', '/glm-', 'chatglm', '-glm-'] },
{ slug: 'codegeex', keywords: ['^codegeex', '/codegeex'] },
{ slug: 'claude', keywords: ['claude'] },
{ slug: 'anthropic', keywords: ['anthropic'] },
{ slug: 'aws', keywords: ['titan'] },
{ slug: 'fireworks', keywords: ['accounts/fireworks/models/fire'] },
{ slug: 'internlm', keywords: ['internlm', 'internvl'] },
{ slug: 'nousresearch', keywords: ['deephermes', 'hermes', 'genstruct', 'minos'] },
{ slug: 'nvidia', keywords: ['nemotron', 'openreasoning', 'nemoretriever', 'neva-', 'nv-'] },
{ slug: 'meta', keywords: ['llama', '/l3'] },
{ slug: 'llava', keywords: ['llava'] },
{
slug: 'nanobanana',
keywords: [
'gemini-3.1-flash-image-preview',
'gemini-3-pro-image-preview',
'gemini-\\d+(?:\\.\\d+)?-(?:flash(?:-lite)?|pro)-image(?:-preview)?(?::|$)',
'nanobanana',
'nano-banana',
],
},
{ slug: 'gemini', keywords: ['gemini'] },
{ slug: 'deepmind', keywords: ['^imagen-', '/imagen-', '^imagen\\d/', '/imagen\\d'] },
{ slug: 'gemma', keywords: ['gemma'] },
{ slug: 'moonshot', keywords: ['kimi', 'moonshot'] },
{ slug: 'qiniu', keywords: ['qiniu'] },
{
slug: 'qwen',
keywords: ['qwen', 'qwq', 'qvq', 'wanx', 'wan\\d/', 'wan\\d\\.\\d-', 'tongyi', 'gte-rerank'],
},
{ slug: 'minimax', keywords: ['minimax', 'abab', '^image-'] },
{
slug: 'mistral',
keywords: [
'mistral',
'mixtral',
'codestral',
'mathstral',
'/mn-',
'pixtral',
'ministral',
'magistral',
'devstral',
'voxtral',
],
},
{ slug: 'perplexity', keywords: ['pplx', 'sonar'] },
{ slug: 'yi', keywords: ['^yi-', '/yi-', '-yi-'] },
{ slug: 'openrouter', keywords: ['^openrouter'] },
{ slug: 'relace', keywords: ['^relace-', '/relace-'] },
{
slug: 'arcee',
keywords: [
'^trinity-',
'/trinity-',
'afm-4.5b',
'caller-large',
'spotlight',
'maestro-reasoning',
'virtuoso-medium-v2',
'virtuoso-large',
'coder-large',
'arcee-blitz',
],
},
{ slug: 'essentialai', keywords: ['^rnj-', '/rnj-'] },
{ slug: 'deepcogito', keywords: ['^deepcogito-', '/deepcogito-', '^cogito-', '/cogito-'] },
{ slug: 'morph', keywords: ['^morph-', '/morph-'] },
{ slug: 'ai2', keywords: ['^olmo-', '/olmo-'] },
{ slug: 'inception', keywords: ['^mercury', '/mercury'] },
{ slug: 'openchat', keywords: ['^openchat'] },
{ slug: 'aya', keywords: ['aya'] },
{ slug: 'cohere', keywords: ['command'] },
{ slug: 'dbrx', keywords: ['dbrx'] },
{ slug: 'stepfun', keywords: ['step'] },
{ slug: 'aimass', keywords: ['taichu'] },
{ slug: 'ai360', keywords: ['360gpt', '360zhinao'] },
{ slug: 'baichuan', keywords: ['baichuan'] },
{ slug: 'rwkv', keywords: ['rwkv', '/eagle-'] },
{ slug: 'wenxin', keywords: ['ernie', 'irag'] },
{ slug: 'jina', keywords: ['^jina', '/jina'] },
{ slug: 'jimeng', keywords: ['^jimeng-', '/jimeng-', 'seedream', 'seededit', 'seedance-'] },
{ slug: 'doubao', keywords: ['^ep-', 'doubao-'] },
{ slug: 'kling', keywords: ['^kling', 'kling-', 'klingai'] },
{ slug: 'hunyuan', keywords: ['hunyuan'] },
{ slug: 'fishaudio', keywords: ['^d_', '^g_', '^wd_'] },
{ slug: 'bytedance', keywords: ['skylark', 'seed-', 'bytedance'] },
{ slug: 'burncloud', keywords: ['burncloud'] },
{
slug: 'stability',
keywords: [
'stable-diffusion',
'stable-video',
'stable-cascade',
'sdxl',
'stablelm',
'^stable-',
'^sd3',
'^sd2',
'^sd1',
],
},
{ slug: 'flux', keywords: ['flux'] },
{ slug: 'suno', keywords: ['suno'] },
{ slug: 'microsoft', keywords: ['wizardlm', '/phi-', '^phi-', '-phi-', 'mai-', 'microsoft'] },
{ slug: 'adobe', keywords: ['firefly'] },
{ slug: 'ai21', keywords: ['jamba', '^j2-', 'ai21'] },
{ slug: 'upstage', keywords: ['^solar-', '/solar'] },
{ slug: 'palm', keywords: ['palm'] },
{ slug: 'sensenova', keywords: ['SenseChat', 'SenseNova'] },
{ slug: 'grok', keywords: ['^grok-', '/grok-'] },
{ slug: 'ideogram', keywords: ['ideogram', '^v_1', '^v_2', '^v3$', '^upscale$', '^describe$'] },
{
slug: 'spark',
keywords: [
'spark',
'general$',
'generalv3$',
'generalv3.5$',
'4.0ultra$',
'pro-128k$',
'^max-32k$',
'^lite$',
'^x1$',
],
},
{ slug: 'udio', keywords: ['udio'] },
{ slug: 'deepseek', keywords: ['deepseek'] },
{ slug: 'voyage', keywords: ['voyage'] },
{ slug: 'assemblyai', keywords: ['assemblyai'] },
{ slug: 'liquid', keywords: ['liquid', 'lfm'] },
{ slug: 'inflection', keywords: ['inflection-'] },
{ slug: 'aionlabs', keywords: ['aion-'] },
{ slug: 'aihubmix', keywords: ['aihubmix'] },
{ slug: 'v0', keywords: ['^v0-'] },
{ slug: 'vertexai', keywords: ['^veo-', '/veo-', '^veo3'] },
{ slug: 'google', keywords: ['google', 'learnlm', 'nano-banana'] },
{ slug: 'cogview', keywords: ['cogview'] },
{ slug: 'kolors', keywords: ['kolors'] },
{ slug: 'baiducloud', keywords: ['baidu', 'qianfan'] },
{ slug: 'phind', keywords: ['phind'] },
{ slug: 'dolphin', keywords: ['dolphin'] },
{ slug: 'ibm', keywords: ['ibm', 'granite'] },
{ slug: 'skywork', keywords: ['skywork'] },
{ slug: 'bilibiliindex', keywords: ['bilibili-index', 'index-tts'] },
{ slug: 'bilibili', keywords: ['bilibili'] },
{ slug: 'lg', keywords: ['kmmlu', 'exaone', 'lgai'] },
{ slug: 'tii', keywords: ['falcon'] },
{ slug: 'menlo', keywords: ['menlo', 'lucy', 'jan-nano'] },
{ slug: 'longcat', keywords: ['longcat'] },
{ slug: 'kwaipilot', keywords: ['kat-'] },
{ slug: 'nova', keywords: ['^nova-', '/nova-'] },
{ slug: 'xiaomimimo', keywords: ['^mimo-', '/mimo-'] },
{ slug: 'baai', keywords: ['^baai', '^bge-', '/beg-', 'touchd', 'robobrain'] },
{ slug: 'ace', keywords: ['ace-step'] },
]
export const openAIModelBackgrounds: Record<
NonNullable<LobeModelIconMapping['openAIType']>,
string
> = {
gpt3: '#19C37D',
gpt4: '#AB68FF',
gpt5: '#F86AA4',
o1: '#F9C322',
oss: '#0099FF',
platform: '#0000FE',
}