diff --git a/web/src/assets/images/model/volcano.png b/web/src/assets/images/model/volcano.png new file mode 100644 index 00000000..9aeb3bf3 Binary files /dev/null and b/web/src/assets/images/model/volcano.png differ diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 02f9a68e..b6e474e6 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -608,6 +608,7 @@ export const en = { official: 'Official', deprecated: 'Deprecated', + image: 'Image', llm: 'LLM', chat: 'Chat', embedding: 'Embedding', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 65f1e005..b6159e8e 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -1246,6 +1246,7 @@ export const zh = { official: '官方', deprecated: '已弃用', + image: '图片', llm: 'LLM', chat: 'Chat', embedding: 'Embedding', diff --git a/web/src/views/ModelManagement/List.tsx b/web/src/views/ModelManagement/List.tsx index bff02e80..562c3c62 100644 --- a/web/src/views/ModelManagement/List.tsx +++ b/web/src/views/ModelManagement/List.tsx @@ -2,7 +2,7 @@ * @Author: ZhaoYing * @Date: 2026-02-03 16:50:10 * @Last Modified by: ZhaoYing - * @Last Modified time: 2026-03-25 12:27:51 + * @Last Modified time: 2026-03-25 14:21:01 */ /** * Model List View @@ -72,10 +72,10 @@ const ModelList = forwardRef - -
{t(`modelNew.${item.provider}`)}
+ +
{String(item.provider).charAt(0).toUpperCase() + String(item.provider).slice(1)}
- {item.tags.map(tag => {t(`modelNew.${tag}`)})} + {item.tags.map(tag => {t(`modelNew.${tag}`)})} } isNeedTooltip={false} footer={ diff --git a/web/src/views/ModelManagement/Square.tsx b/web/src/views/ModelManagement/Square.tsx index be59101c..b1686372 100644 --- a/web/src/views/ModelManagement/Square.tsx +++ b/web/src/views/ModelManagement/Square.tsx @@ -74,7 +74,7 @@ const ModelSquare = forwardRef (({ query }, ref) => { 'rb:text-[#171719]': activeProvider === vo.provider, })} onClick={() => setActiveProvider(vo.provider)} - >{t(`modelNew.${vo.provider}`)} + >{String(vo.provider).charAt(0).toUpperCase() + String(vo.provider).slice(1)} ))} {list.filter(vo => vo.provider === activeProvider).map(vo => ( @@ -105,7 +105,7 @@ const ModelSquare = forwardRef (({ query }, ref) => { } isNeedTooltip={false} footer={ - @{t(`modelNew.${vo.provider}`)} + @{String(item.provider).charAt(0).toUpperCase() + String(item.provider).slice(1)} {item.add_count} } > diff --git a/web/src/views/ModelManagement/components/CustomModelModal.tsx b/web/src/views/ModelManagement/components/CustomModelModal.tsx index d6784c60..abede886 100644 --- a/web/src/views/ModelManagement/components/CustomModelModal.tsx +++ b/web/src/views/ModelManagement/components/CustomModelModal.tsx @@ -2,7 +2,7 @@ * @Author: ZhaoYing * @Date: 2026-02-03 16:49:28 * @Last Modified by: ZhaoYing - * @Last Modified time: 2026-03-25 12:27:33 + * @Last Modified time: 2026-03-25 14:07:10 */ /** * Custom Model Modal @@ -210,7 +210,7 @@ const CustomModelModal = forwardRef( url={modelProviderUrl} hasAll={false} disabled={isEdit} - format={(items) => items.map((item) => ({ label: t(`modelNew.${item}`), value: String(item) }))} + format={(items) => items.map((item) => ({ label: String(item).charAt(0).toUpperCase() + String(item).slice(1), value: String(item) }))} /> diff --git a/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx b/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx index b2b44bf3..cc33dec2 100644 --- a/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx +++ b/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx @@ -2,7 +2,7 @@ * @Author: ZhaoYing * @Date: 2026-02-03 16:49:20 * @Last Modified by: ZhaoYing - * @Last Modified time: 2026-03-04 11:51:01 + * @Last Modified time: 2026-03-25 14:07:08 */ /** * Sub-Model Modal @@ -178,7 +178,7 @@ const SubModelModal = forwardRef(({ url={modelProviderUrl} hasAll={false} format={(items) => items.map((item) => ({ - label: t(`modelNew.${typeof item === 'object' ? item.value : item}`), + label: String(typeof item === 'object' ? item.value : item).charAt(0).toUpperCase() + String(typeof item === 'object' ? item.value : item).slice(1), value: typeof item === 'object' ? item.value : item }))} onChange={(value) => handleChangeProvider(value)} diff --git a/web/src/views/ModelManagement/components/ModelImplement/index.tsx b/web/src/views/ModelManagement/components/ModelImplement/index.tsx index f665f745..9ee4ff84 100644 --- a/web/src/views/ModelManagement/components/ModelImplement/index.tsx +++ b/web/src/views/ModelManagement/components/ModelImplement/index.tsx @@ -1,8 +1,8 @@ /* * @Author: ZhaoYing * @Date: 2026-02-03 16:49:12 - * @Last Modified by: ZhaoYing - * @Last Modified time: 2026-02-03 16:49:12 + * @Last Modified by: ZhaoYing + * @Last Modified time: 2026-03-25 14:14:14 */ /** * Model Implementation Component @@ -106,7 +106,7 @@ const ModelImplement: FC = ({ type, value, onChange }) => { >
{item.api_key}
- {t(`modelNew.${item.provider}`)} + {String(item.provider).charAt(0).toUpperCase() + String(item.provider).slice(1)} ) })} diff --git a/web/src/views/ModelManagement/components/ModelListDetail.tsx b/web/src/views/ModelManagement/components/ModelListDetail.tsx index d5d09cab..a3b9bbc0 100644 --- a/web/src/views/ModelManagement/components/ModelListDetail.tsx +++ b/web/src/views/ModelManagement/components/ModelListDetail.tsx @@ -111,7 +111,7 @@ const ModelListDetail = forwardRef(({ return ( {t(`modelNew.${data.provider}`)} {t('modelNew.modelList')} ({list.length}{t('modelNew.item')})} + title={<>{String(data.provider).charAt(0).toUpperCase() + String(data.provider).slice(1)} {t('modelNew.modelList')} ({list.length}{t('modelNew.item')})} open={open} onClose={handleClose} > diff --git a/web/src/views/ModelManagement/index.tsx b/web/src/views/ModelManagement/index.tsx index b5fa6669..461f7cd5 100644 --- a/web/src/views/ModelManagement/index.tsx +++ b/web/src/views/ModelManagement/index.tsx @@ -111,7 +111,7 @@ const tabKeys = ['group', 'list', 'square'] items.map((item) => ({ label: t(`modelNew.${item}`), value: String(item) }))} + format={(items) => items.map((item) => ({ label: String(item).charAt(0).toUpperCase() + String(item).slice(1), value: String(item) }))} className="rb:w-40" allowClear={true} placeholder={t('modelNew.provider')} diff --git a/web/src/views/ModelManagement/utils.ts b/web/src/views/ModelManagement/utils.ts index bf44367f..23e1e4f3 100644 --- a/web/src/views/ModelManagement/utils.ts +++ b/web/src/views/ModelManagement/utils.ts @@ -2,7 +2,7 @@ * @Author: ZhaoYing * @Date: 2026-02-03 16:50:22 * @Last Modified by: ZhaoYing - * @Last Modified time: 2026-02-27 10:22:46 + * @Last Modified time: 2026-03-25 14:03:13 */ /** * Utility functions for Model Management @@ -14,6 +14,7 @@ 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' +import volcanoIcon from '@/assets/images/model/volcano.png' /** * Provider icon mapping @@ -24,7 +25,8 @@ export const ICONS = { gpustack: gpustackIcon, ollama: ollamaIcon, openai: openaiIcon, - xinference: xinferenceIcon + xinference: xinferenceIcon, + volcano: volcanoIcon, } /**