diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 72cf2c1592..44e3bb0274 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -378,7 +378,8 @@ "delete.title": "Delete Provider", "delete.content": "Are you sure you want to delete this provider?", "edit.name": "Provider Name", - "edit.name.placeholder": "Example: OpenAI" + "edit.name.placeholder": "Example: OpenAI", + "no_models": "Please add models first before checking the API connection" } }, "translate": { diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 733134cc71..88f127cb30 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -366,7 +366,8 @@ "delete.title": "删除提供商", "delete.content": "确定要删除此模型提供商吗?", "edit.name": "模型提供商名称", - "edit.name.placeholder": "例如 OpenAI" + "edit.name.placeholder": "例如 OpenAI", + "no_models": "请先添加模型再检查 API 连接" } }, "translate": { diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index f59d63ccb3..bb9a8ad0ee 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -366,7 +366,8 @@ "delete.title": "刪除提供者", ".delete.content": "確定要刪除此提供者嗎?", "edit.name": "提供者名稱", - "edit.name.placeholder": "例如:OpenAI" + "edit.name.placeholder": "例如:OpenAI", + "no_models": "請先添加模型再檢查 API 連接" } }, "translate": { diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx index 462a279e81..97c83e0f8d 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx @@ -65,6 +65,16 @@ const ProviderSetting: FC = ({ provider: _provider }) => { const onAddModel = () => AddModelPopup.show({ title: t('settings.models.add.add_model'), provider }) const onCheckApi = async () => { + if (isEmpty(models)) { + window.message.error({ + key: 'no-models', + style: { marginTop: '3vh' }, + duration: 5, + content: t('settings.provider.no_models') + }) + return + } + if (apiKey.includes(',')) { const keys = apiKey .split(',') @@ -149,7 +159,7 @@ const ProviderSetting: FC = ({ provider: _provider }) => { type="password" autoFocus={provider.enabled && apiKey === ''} /> - diff --git a/src/renderer/src/pages/settings/ProviderSettings/index.tsx b/src/renderer/src/pages/settings/ProviderSettings/index.tsx index 80508c4cdd..b821f812df 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/index.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/index.tsx @@ -46,6 +46,7 @@ const ProvidersList: FC = () => { enabled: true, isSystem: false } as Provider + addProvider(provider) setSelectedProvider(provider) } diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 80da09711c..8d0f72ca25 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -339,7 +339,7 @@ const settingsSlice = createSlice({ state.providers = action.payload }, addProvider: (state, action: PayloadAction) => { - state.providers.push(action.payload) + state.providers.unshift(action.payload) }, removeProvider: (state, action: PayloadAction) => { state.providers = state.providers.filter((p) => p.id !== action.payload.id)