diff --git a/src/assets/providers-logo/alibabacloud.svg b/src/assets/providers-logo/alibabacloud.svg new file mode 100644 index 00000000..56c20781 --- /dev/null +++ b/src/assets/providers-logo/alibabacloud.svg @@ -0,0 +1 @@ +AlibabaCloud \ No newline at end of file diff --git a/src/locales/en-US/ai.ts b/src/locales/en-US/ai.ts index 46fb357b..a36370bf 100644 --- a/src/locales/en-US/ai.ts +++ b/src/locales/en-US/ai.ts @@ -25,7 +25,7 @@ export default { 'ai.provider.ollama': 'Ollama', 'ai.provider.openai': 'OpenAI', 'ai.provider.openrouter': 'OpenRouter', - 'ai.provider.qwen': 'Qwen', + 'ai.provider.qwen': 'Alibaba Cloud Model Studio', 'ai.provider.spark': 'Spark', 'ai.provider.stepfun': 'StepFun', 'ai.provider.together-ai': 'TogetherAI', diff --git a/src/locales/ja-JP/ai.ts b/src/locales/ja-JP/ai.ts index 46fb357b..a36370bf 100644 --- a/src/locales/ja-JP/ai.ts +++ b/src/locales/ja-JP/ai.ts @@ -25,7 +25,7 @@ export default { 'ai.provider.ollama': 'Ollama', 'ai.provider.openai': 'OpenAI', 'ai.provider.openrouter': 'OpenRouter', - 'ai.provider.qwen': 'Qwen', + 'ai.provider.qwen': 'Alibaba Cloud Model Studio', 'ai.provider.spark': 'Spark', 'ai.provider.stepfun': 'StepFun', 'ai.provider.together-ai': 'TogetherAI', diff --git a/src/locales/ru-RU/ai.ts b/src/locales/ru-RU/ai.ts index 46fb357b..a36370bf 100644 --- a/src/locales/ru-RU/ai.ts +++ b/src/locales/ru-RU/ai.ts @@ -25,7 +25,7 @@ export default { 'ai.provider.ollama': 'Ollama', 'ai.provider.openai': 'OpenAI', 'ai.provider.openrouter': 'OpenRouter', - 'ai.provider.qwen': 'Qwen', + 'ai.provider.qwen': 'Alibaba Cloud Model Studio', 'ai.provider.spark': 'Spark', 'ai.provider.stepfun': 'StepFun', 'ai.provider.together-ai': 'TogetherAI', diff --git a/src/locales/tr-TR/ai.ts b/src/locales/tr-TR/ai.ts index 46fb357b..a36370bf 100644 --- a/src/locales/tr-TR/ai.ts +++ b/src/locales/tr-TR/ai.ts @@ -25,7 +25,7 @@ export default { 'ai.provider.ollama': 'Ollama', 'ai.provider.openai': 'OpenAI', 'ai.provider.openrouter': 'OpenRouter', - 'ai.provider.qwen': 'Qwen', + 'ai.provider.qwen': 'Alibaba Cloud Model Studio', 'ai.provider.spark': 'Spark', 'ai.provider.stepfun': 'StepFun', 'ai.provider.together-ai': 'TogetherAI', diff --git a/src/locales/zh-CN/ai.ts b/src/locales/zh-CN/ai.ts index bfd9322a..f4cfbc09 100644 --- a/src/locales/zh-CN/ai.ts +++ b/src/locales/zh-CN/ai.ts @@ -25,7 +25,7 @@ export default { 'ai.provider.ollama': 'Ollama', 'ai.provider.openai': 'OpenAI', 'ai.provider.openrouter': 'OpenRouter', - 'ai.provider.qwen': '通义千问', + 'ai.provider.qwen': '阿里云百炼', 'ai.provider.spark': '讯飞星火', 'ai.provider.stepfun': '阶跃星辰', 'ai.provider.together-ai': 'Together AI', diff --git a/src/pages/maas-provider/components/provider-logo.tsx b/src/pages/maas-provider/components/provider-logo.tsx index 3b3ca3b9..31be0988 100644 --- a/src/pages/maas-provider/components/provider-logo.tsx +++ b/src/pages/maas-provider/components/provider-logo.tsx @@ -1,5 +1,6 @@ import GPUStackLogo from '@/assets/images/small-logo-200x200.png'; import ai360 from '@/assets/providers-logo/ai360.svg'; +import qwen from '@/assets/providers-logo/alibabacloud.svg'; import azure from '@/assets/providers-logo/azureai.svg'; import baichuan from '@/assets/providers-logo/baichuan.svg'; import baiduCloud from '@/assets/providers-logo/baiducloud.svg'; @@ -26,7 +27,6 @@ import triton from '@/assets/providers-logo/nvidia.svg'; import ollama from '@/assets/providers-logo/ollama.svg'; import openai from '@/assets/providers-logo/openai.svg'; import openrouter from '@/assets/providers-logo/openrouter.svg'; -import qwen from '@/assets/providers-logo/qwen.svg'; import spark from '@/assets/providers-logo/spark.svg'; import stepfun from '@/assets/providers-logo/stepfun.svg'; import togetherai from '@/assets/providers-logo/together.svg'; diff --git a/src/pages/maas-provider/forms/basic.tsx b/src/pages/maas-provider/forms/basic.tsx index 28e3e277..606317ae 100644 --- a/src/pages/maas-provider/forms/basic.tsx +++ b/src/pages/maas-provider/forms/basic.tsx @@ -12,7 +12,9 @@ import ProviderLogo from '../components/provider-logo'; import { useFormContext } from '../config/form-context'; import { maasProviderOptions } from '../config/providers'; import { FormData } from '../config/types'; +import providerTypeStyles from '../styles/provider-type.less'; import ProviderConfigs from './provider-configs'; + const Basic: React.FC<{ onAPIKeyBlur?: (e: any) => void; }> = ({ onAPIKeyBlur }) => { @@ -38,6 +40,20 @@ const Basic: React.FC<{ ); }; + const renderLogoPrefix = () => { + const hasProvider = maasProviderOptions.some( + (option) => option.value === providerType + ); + if (hasProvider) { + return ( +
+ +
+ ); + } + return null; + }; + return ( <> @@ -73,9 +89,10 @@ const Basic: React.FC<{ filterOption: filterOption }} required + className={providerTypeStyles.providerType} + prefix={renderLogoPrefix()} options={maasProviderOptions} optionRender={optionRender} - labelRender={optionRender} label={intl.formatMessage({ id: 'common.table.type' })} diff --git a/src/pages/maas-provider/styles/provider-type.less b/src/pages/maas-provider/styles/provider-type.less new file mode 100644 index 00000000..9d48a0e0 --- /dev/null +++ b/src/pages/maas-provider/styles/provider-type.less @@ -0,0 +1,11 @@ +.providerType { + :global { + .ant-select-prefix { + height: 100%; + display: flex; + } + } + :global(input.ant-select-input) { + padding-top: 6px !important; + } +}