Files
MemoryBear/web/src/views/ModelManagement/utils.ts
2026-02-27 10:23:19 +08:00

65 lines
1.5 KiB
TypeScript

/*
* @Author: ZhaoYing
* @Date: 2026-02-03 16:50:22
* @Last Modified by: ZhaoYing
* @Last Modified time: 2026-02-27 10:22:46
*/
/**
* Utility functions for Model Management
*/
import bedrockIcon from '@/assets/images/model/bedrock.svg'
import dashscopeIcon from '@/assets/images/model/dashscope.png'
import gpustackIcon from '@/assets/images/model/gpustack.png'
import ollamaIcon from '@/assets/images/model/ollama.svg'
import openaiIcon from '@/assets/images/model/openai.svg'
import xinferenceIcon from '@/assets/images/model/xinference.svg'
/**
* Provider icon mapping
*/
export const ICONS = {
bedrock: bedrockIcon,
dashscope: dashscopeIcon,
gpustack: gpustackIcon,
ollama: ollamaIcon,
openai: openaiIcon,
xinference: xinferenceIcon
}
/**
* Get logo URL from provider name or URL
* @param logo - Provider name or logo URL
* @returns Logo URL or undefined
*/
export const getLogoUrl = (logo?: string) => {
if (!logo) {
return undefined
}
if (logo.startsWith('http')) {
return logo
}
return ICONS[logo as keyof typeof ICONS] || undefined
}
/**
* Get logo URL from provider name or URL
* @param provider - Provider name
* @param logo - Provider name or logo URL
* @returns Logo URL or undefined
*/
export const getListLogoUrl = (provider?: string, logo?: string) => {
let url = ICONS[provider as keyof typeof ICONS]
if (url) return url
if (!logo) {
return undefined
}
if (logo.startsWith('http')) {
return logo
}
return ICONS[logo as keyof typeof ICONS] || undefined
}