diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx index df0f1acd..de8d8e89 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx @@ -26,7 +26,7 @@ import { formatApiHost } from '@renderer/utils/api' import { providerCharge } from '@renderer/utils/oauth' import { Avatar, Button, Card, Divider, Flex, Input, Space, Switch } from 'antd' import Link from 'antd/es/typography/Link' -import { groupBy, isEmpty } from 'lodash' +import { groupBy, isEmpty, sortBy, toPairs } from 'lodash' import { FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import styled from 'styled-components' @@ -68,6 +68,11 @@ const ProviderSetting: FC = ({ provider: _provider }) => { const { defaultModel, setDefaultModel } = useDefaultModel() const modelGroups = groupBy(models, 'group') + const sortedModelGroups = sortBy(toPairs(modelGroups), [0]).reduce((acc, [key, value]) => { + acc[key] = value + return acc + }, {}) + const isAzureOpenAI = provider.id === 'azure-openai' || provider.type === 'azure-openai' const providerConfig = PROVIDER_CONFIG[provider.id] @@ -305,14 +310,14 @@ const ProviderSetting: FC = ({ provider: _provider }) => { )} {t('common.models')} - {Object.keys(modelGroups).map((group) => ( + {Object.keys(sortedModelGroups).map((group) => ( - {modelGroups[group].map((model) => ( + {sortedModelGroups[group].map((model) => (