feat: add azure provider type #931

This commit is contained in:
kangfenmao 2025-02-03 13:09:36 +08:00
parent de141c8127
commit e520db6949
7 changed files with 17 additions and 6 deletions

View File

@ -630,7 +630,7 @@
},
"all": "全部",
"vision": "视觉模型",
"websearch": "络搜索模型",
"websearch": "网模型",
"free": "免费模型",
"embedding": "嵌入模型",
"embedding_model": "嵌入模型",

View File

@ -60,7 +60,8 @@ const PopupContainer: React.FC<Props> = ({ provider, resolve }) => {
options={[
{ label: 'OpenAI', value: 'openai' },
{ label: 'Gemini', value: 'gemini' },
{ label: 'Anthropic', value: 'anthropic' }
{ label: 'Anthropic', value: 'anthropic' },
{ label: 'Azure OpenAI', value: 'azure-openai' }
]}
/>
</Form.Item>

View File

@ -201,6 +201,8 @@ const ProviderSetting: FC<Props> = ({ provider: _provider }) => {
return value.replaceAll('', ',').replaceAll(' ', ',').replaceAll(' ', '').replaceAll('\n', ',')
}
const isAzureOpenAI = provider.id === 'azure-openai' || provider.type === 'azure-openai'
return (
<SettingContainer theme={theme}>
<SettingTitle>
@ -264,7 +266,7 @@ const ProviderSetting: FC<Props> = ({ provider: _provider }) => {
<SettingHelpText>{t('settings.provider.api.url.tip')}</SettingHelpText>
</SettingHelpTextRow>
)}
{provider.id === 'azure-openai' && (
{isAzureOpenAI && (
<>
<SettingSubtitle>{t('settings.provider.api_version')}</SettingSubtitle>
<Space.Compact style={{ width: '100%', marginTop: 5 }}>

View File

@ -23,7 +23,7 @@ export default class OpenAIProvider extends BaseProvider {
constructor(provider: Provider) {
super(provider)
if (provider.id === 'azure-openai') {
if (provider.id === 'azure-openai' || provider.type === 'azure-openai') {
this.sdk = new AzureOpenAI({
dangerouslyAllowBrowser: true,
apiKey: this.apiKey,

View File

@ -30,7 +30,7 @@ const persistedReducer = persistReducer(
{
key: 'cherry-studio',
storage,
version: 61,
version: 62,
blacklist: ['runtime'],
migrate
},

View File

@ -889,6 +889,14 @@ const migrateConfig = {
}
})
return state
},
'62': (state: RootState) => {
state.llm.providers.forEach((provider) => {
if (provider.id === 'azure-openai') {
provider.type = 'azure-openai'
}
})
return state
}
}

View File

@ -105,7 +105,7 @@ export type Provider = {
isSystem?: boolean
}
export type ProviderType = 'openai' | 'anthropic' | 'gemini' | 'qwenlm'
export type ProviderType = 'openai' | 'anthropic' | 'gemini' | 'qwenlm' | 'azure-openai'
export type ModelType = 'text' | 'vision' | 'embedding'