diff --git a/src/Business Foundation/App/NoSeriesCopilot/src/Copilot/NoSeriesCopilotImpl.Codeunit.al b/src/Business Foundation/App/NoSeriesCopilot/src/Copilot/NoSeriesCopilotImpl.Codeunit.al index b9263612a2..8cfe5a0a0a 100644 --- a/src/Business Foundation/App/NoSeriesCopilot/src/Copilot/NoSeriesCopilotImpl.Codeunit.al +++ b/src/Business Foundation/App/NoSeriesCopilot/src/Copilot/NoSeriesCopilotImpl.Codeunit.al @@ -171,7 +171,7 @@ codeunit 324 "No. Series Copilot Impl." if not AzureOpenAI.IsEnabled(Enum::"Copilot Capability"::"No. Series Copilot") then exit; - AzureOpenAI.SetAuthorization(Enum::"AOAI Model Type"::"Chat Completions", AOAIDeployments.GetGPT35TurboLatest()); + AzureOpenAI.SetAuthorization(Enum::"AOAI Model Type"::"Chat Completions", AOAIDeployments.GetGPT4oMiniLatest()); AzureOpenAI.SetCopilotCapability(Enum::"Copilot Capability"::"No. Series Copilot"); AOAIChatCompletionParams.SetMaxTokens(MaxOutputTokens()); AOAIChatCompletionParams.SetTemperature(0); diff --git a/src/System Application/App/AI/src/Azure OpenAI/AOAIDeployments.Codeunit.al b/src/System Application/App/AI/src/Azure OpenAI/AOAIDeployments.Codeunit.al index 4ddfcec71e..6702edaf20 100644 --- a/src/System Application/App/AI/src/Azure OpenAI/AOAIDeployments.Codeunit.al +++ b/src/System Application/App/AI/src/Azure OpenAI/AOAIDeployments.Codeunit.al @@ -55,12 +55,12 @@ codeunit 7768 "AOAI Deployments" NavApp.GetCallerModuleInfo(CallerModuleInfo); exit(AOAIDeploymentsImpl.GetTurbo0613(CallerModuleInfo)); end; -#endif /// /// Returns the name of the latest AOAI deployment model of GPT3.5 Turbo. /// /// The deployment name. + [Obsolete('GPT35 Turbo is no longer supported. Use GetGPT4oMiniLatest instead (or GetGPT4oMiniPreview for testing upcoming versions).', '25.0')] procedure GetGPT35TurboLatest(): Text var CallerModuleInfo: ModuleInfo; @@ -73,6 +73,7 @@ codeunit 7768 "AOAI Deployments" /// Returns the name of preview AOAI deployment model of GPT3.5 Turbo. /// /// The deployment name. + [Obsolete('GPT35 Turbo is no longer supported. Use GetGPT4oMiniLatest instead (or GetGPT4oMiniPreview for testing upcoming versions).', '25.0')] procedure GetGPT35TurboPreview(): Text var CallerModuleInfo: ModuleInfo; @@ -85,6 +86,7 @@ codeunit 7768 "AOAI Deployments" /// Returns the name of the latest AOAI deployment model of GPT4. /// /// The deployment name. + [Obsolete('Generic GPT4 deployment name is no longer supported. Use GetGPT4oLatest instead (or GetGPT4oPreview for testing upcoming versions).', '25.0')] procedure GetGPT4Latest(): Text var CallerModuleInfo: ModuleInfo; @@ -97,6 +99,7 @@ codeunit 7768 "AOAI Deployments" /// Returns the name of preview AOAI deployment model of GPT4. /// /// The deployment name. + [Obsolete('Generic GPT4 deployment name is no longer supported. Use GetGPT4oLatest instead (or GetGPT4oPreview for testing upcoming versions).', '25.0')] procedure GetGPT4Preview(): Text var CallerModuleInfo: ModuleInfo; @@ -104,4 +107,53 @@ codeunit 7768 "AOAI Deployments" NavApp.GetCallerModuleInfo(CallerModuleInfo); exit(AOAIDeploymentsImpl.GetGPT4Preview(CallerModuleInfo)); end; +#endif + + /// + /// Returns the name of the latest AOAI deployment model of GPT4o. + /// + /// The deployment name. + procedure GetGPT4oLatest(): Text + var + CallerModuleInfo: ModuleInfo; + begin + NavApp.GetCallerModuleInfo(CallerModuleInfo); + exit(AOAIDeploymentsImpl.GetGPT4oLatest(CallerModuleInfo)); + end; + + /// + /// Returns the name of preview AOAI deployment model of GPT4o. + /// + /// The deployment name. + procedure GetGPT4oPreview(): Text + var + CallerModuleInfo: ModuleInfo; + begin + NavApp.GetCallerModuleInfo(CallerModuleInfo); + exit(AOAIDeploymentsImpl.GetGPT4oPreview(CallerModuleInfo)); + end; + + /// + /// Returns the name of the latest AOAI deployment model of GPT4o-Mini. + /// + /// The deployment name. + procedure GetGPT4oMiniLatest(): Text + var + CallerModuleInfo: ModuleInfo; + begin + NavApp.GetCallerModuleInfo(CallerModuleInfo); + exit(AOAIDeploymentsImpl.GetGPT4oMiniLatest(CallerModuleInfo)); + end; + + /// + /// Returns the name of preview AOAI deployment model of GPT4o-Mini. + /// + /// The deployment name. + procedure GetGPT4oMiniPreview(): Text + var + CallerModuleInfo: ModuleInfo; + begin + NavApp.GetCallerModuleInfo(CallerModuleInfo); + exit(AOAIDeploymentsImpl.GetGPT4oMiniPreview(CallerModuleInfo)); + end; } \ No newline at end of file diff --git a/src/System Application/App/AI/src/Azure OpenAI/AOAIDeploymentsImpl.Codeunit.al b/src/System Application/App/AI/src/Azure OpenAI/AOAIDeploymentsImpl.Codeunit.al index 08df17f0eb..2eb0d3c083 100644 --- a/src/System Application/App/AI/src/Azure OpenAI/AOAIDeploymentsImpl.Codeunit.al +++ b/src/System Application/App/AI/src/Azure OpenAI/AOAIDeploymentsImpl.Codeunit.al @@ -16,11 +16,15 @@ codeunit 7769 "AOAI Deployments Impl" var UnableToGetDeploymentNameErr: Label 'Unable to get deployment name, if this is a third party capability you must specify your own deployment name. You may need to contact your partner.'; + GPT4oLatestLbl: Label 'gpt-4o-latest', Locked = true; + GPT4oPreviewLbl: Label 'gpt-4o-preview', Locked = true; + GPT4oMiniLatestLbl: Label 'gpt-4o-mini-latest', Locked = true; + GPT4oMiniPreviewLbl: Label 'gpt-4o-mini-preview', Locked = true; +#if not CLEAN25 GPT4LatestLbl: Label 'gpt-4-latest', Locked = true; GPT4PreviewLbl: Label 'gpt-4-preview', Locked = true; GPT35TurboLatestLbl: Label 'gpt-35-turbo-latest', Locked = true; GPT35TurboPreviewLbl: Label 'gpt-35-turbo-preview', Locked = true; -#if not CLEAN25 Turbo0301SaasLbl: Label 'turbo-0301', Locked = true; GPT40613SaasLbl: Label 'gpt4-0613', Locked = true; Turbo0613SaasLbl: Label 'turbo-0613', Locked = true; @@ -57,7 +61,6 @@ codeunit 7769 "AOAI Deployments Impl" exit(Turbo031316kLbl); end; -#endif procedure GetGPT35TurboPreview(CallerModuleInfo: ModuleInfo): Text begin @@ -78,6 +81,27 @@ codeunit 7769 "AOAI Deployments Impl" begin exit(GetDeploymentName(GPT4LatestLbl, CallerModuleInfo)); end; +#endif + + procedure GetGPT4oPreview(CallerModuleInfo: ModuleInfo): Text + begin + exit(GetDeploymentName(GPT4oPreviewLbl, CallerModuleInfo)); + end; + + procedure GetGPT4oLatest(CallerModuleInfo: ModuleInfo): Text + begin + exit(GetDeploymentName(GPT4oLatestLbl, CallerModuleInfo)); + end; + + procedure GetGPT4oMiniPreview(CallerModuleInfo: ModuleInfo): Text + begin + exit(GetDeploymentName(GPT4oMiniPreviewLbl, CallerModuleInfo)); + end; + + procedure GetGPT4oMiniLatest(CallerModuleInfo: ModuleInfo): Text + begin + exit(GetDeploymentName(GPT4oMiniLatestLbl, CallerModuleInfo)); + end; local procedure GetDeploymentName(DeploymentName: Text; CallerModuleInfo: ModuleInfo): Text var diff --git a/src/System Application/App/Entity Text/src/EntityTextImpl.Codeunit.al b/src/System Application/App/Entity Text/src/EntityTextImpl.Codeunit.al index c77f02cfa6..ff6bc0d783 100644 --- a/src/System Application/App/Entity Text/src/EntityTextImpl.Codeunit.al +++ b/src/System Application/App/Entity Text/src/EntityTextImpl.Codeunit.al @@ -343,7 +343,7 @@ codeunit 2012 "Entity Text Impl." AzureOpenAI.SetAuthorization(Enum::"AOAI Model Type"::"Chat Completions", Endpoint, Deployment, ApiKey) else if (not IsNullGuid(CallerModuleInfo.Id())) and (CallerModuleInfo.Publisher() = EntityTextModuleInfo.Publisher()) then - AzureOpenAI.SetAuthorization(Enum::"AOAI Model Type"::"Chat Completions", AOAIDeployments.GetGPT4Latest()) + AzureOpenAI.SetAuthorization(Enum::"AOAI Model Type"::"Chat Completions", AOAIDeployments.GetGPT4oLatest()) else begin TelemetryCD.Add('CallerModuleInfo', Format(CallerModuleInfo.Publisher())); TelemetryCD.Add('EntityTextModuleInfo', Format(EntityTextModuleInfo.Publisher()));