From a860530a2ef99d9a0b29f9cfaa72ee64e95acf94 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 4 Mar 2024 11:19:32 -0500 Subject: [PATCH] Assign OpenAI model based on Azure OpenAI deployment ID (#8835) Following up on #8646, this PR makes it so we select an OpenAI model based on the deployment ID when using Azure OpenAI. Release Notes: - N/A --- crates/assistant/src/assistant_settings.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/crates/assistant/src/assistant_settings.rs b/crates/assistant/src/assistant_settings.rs index 4b8f3feb85..007e994389 100644 --- a/crates/assistant/src/assistant_settings.rs +++ b/crates/assistant/src/assistant_settings.rs @@ -111,9 +111,23 @@ impl AssistantSettings { AiProviderSettings::OpenAi(settings) => { Ok(settings.default_model.unwrap_or(OpenAiModel::FourTurbo)) } - AiProviderSettings::AzureOpenAi(_settings) => { - // TODO: We need to use an Azure OpenAI model here. - Ok(OpenAiModel::FourTurbo) + AiProviderSettings::AzureOpenAi(settings) => { + let deployment_id = settings + .deployment_id + .as_deref() + .ok_or_else(|| anyhow!("no Azure OpenAI deployment ID"))?; + + match deployment_id { + // https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-4-and-gpt-4-turbo-preview + "gpt-4" | "gpt-4-32k" => Ok(OpenAiModel::Four), + // https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35 + "gpt-35-turbo" | "gpt-35-turbo-16k" | "gpt-35-turbo-instruct" => { + Ok(OpenAiModel::ThreePointFiveTurbo) + } + _ => Err(anyhow!( + "no matching OpenAI model found for deployment ID: '{deployment_id}'" + )), + } } } }