refactor: remove custom Azure service configuration

This commit is contained in:
Carl-Robert Linnupuu 2024-03-14 14:39:48 +02:00
parent 42105bf308
commit c0c02d9afb
9 changed files with 31 additions and 144 deletions

View file

@ -1,7 +1,5 @@
package ee.carlrobert.codegpt.completions;
import static java.lang.String.format;
import ee.carlrobert.codegpt.CodeGPTPlugin;
import ee.carlrobert.codegpt.completions.you.YouUserManager;
import ee.carlrobert.codegpt.credentials.AnthropicCredentialsManager;
@ -47,14 +45,9 @@ public class CompletionClientProvider {
settings.getResourceName(),
settings.getDeploymentId(),
settings.getApiVersion());
var builder = new AzureClient
.Builder(AzureCredentialsManager.getInstance().getCredential(), params)
.setActiveDirectoryAuthentication(settings.isUseAzureActiveDirectoryAuthentication());
var baseHost = settings.getBaseHost();
if (baseHost != null) {
builder.setUrl(format(baseHost, params.getResourceName()));
}
return builder.build(getDefaultClientBuilder());
return new AzureClient.Builder(AzureCredentialsManager.getInstance().getCredential(), params)
.setActiveDirectoryAuthentication(settings.isUseAzureActiveDirectoryAuthentication())
.build(getDefaultClientBuilder());
}
public static YouClient getYouClient() {

View file

@ -177,21 +177,13 @@ public class CompletionRequestProvider {
public OpenAIChatCompletionRequest buildOpenAIChatCompletionRequest(
@Nullable String model,
CallParameters callParameters,
@Nullable String overriddenPath) {
CallParameters callParameters) {
var configuration = ConfigurationSettings.getCurrentState();
var builder = new OpenAIChatCompletionRequest.Builder(
buildMessages(model, callParameters))
return new OpenAIChatCompletionRequest.Builder(buildMessages(model, callParameters))
.setModel(model)
.setMaxTokens(configuration.getMaxTokens())
.setStream(true)
.setTemperature(configuration.getTemperature());
if (overriddenPath != null) {
builder.setOverriddenPath(overriddenPath);
}
return builder.build();
.setTemperature(configuration.getTemperature()).build();
}
public Request buildCustomOpenAIChatCompletionRequest(

View file

@ -18,7 +18,6 @@ import ee.carlrobert.codegpt.credentials.OpenAICredentialManager;
import ee.carlrobert.codegpt.settings.GeneralSettings;
import ee.carlrobert.codegpt.settings.configuration.ConfigurationSettings;
import ee.carlrobert.codegpt.settings.service.anthropic.AnthropicSettings;
import ee.carlrobert.codegpt.settings.service.azure.AzureSettings;
import ee.carlrobert.codegpt.settings.service.custom.CustomServiceSettings;
import ee.carlrobert.codegpt.settings.service.llama.LlamaSettings;
import ee.carlrobert.codegpt.settings.service.openai.OpenAISettings;
@ -64,35 +63,22 @@ public final class CompletionRequestService {
CompletionEventListener<String> eventListener) {
var requestProvider = new CompletionRequestProvider(callParameters.getConversation());
return switch (GeneralSettings.getCurrentState().getSelectedService()) {
case OPENAI -> {
var openAISettings = OpenAISettings.getCurrentState();
yield CompletionClientProvider.getOpenAIClient().getChatCompletionAsync(
requestProvider.buildOpenAIChatCompletionRequest(
openAISettings.getModel(),
callParameters,
null),
eventListener);
}
case CUSTOM_OPENAI -> {
var customConfiguration = CustomServiceSettings.getCurrentState();
yield getCustomOpenAIChatCompletionAsync(
requestProvider.buildCustomOpenAIChatCompletionRequest(
customConfiguration,
callParameters),
eventListener);
}
case OPENAI -> CompletionClientProvider.getOpenAIClient().getChatCompletionAsync(
requestProvider.buildOpenAIChatCompletionRequest(
OpenAISettings.getCurrentState().getModel(),
callParameters),
eventListener);
case CUSTOM_OPENAI -> getCustomOpenAIChatCompletionAsync(
requestProvider.buildCustomOpenAIChatCompletionRequest(
CustomServiceSettings.getCurrentState(),
callParameters),
eventListener);
case ANTHROPIC -> CompletionClientProvider.getClaudeClient().getCompletionAsync(
requestProvider.buildAnthropicChatCompletionRequest(callParameters),
eventListener);
case AZURE -> {
var azureSettings = AzureSettings.getCurrentState();
yield CompletionClientProvider.getAzureClient().getChatCompletionAsync(
requestProvider.buildOpenAIChatCompletionRequest(
null,
callParameters,
azureSettings.isUsingCustomPath() ? azureSettings.getPath() : null),
eventListener);
}
case AZURE -> CompletionClientProvider.getAzureClient().getChatCompletionAsync(
requestProvider.buildOpenAIChatCompletionRequest(null, callParameters),
eventListener);
case YOU -> CompletionClientProvider.getYouClient().getChatCompletionAsync(
requestProvider.buildYouCompletionRequest(callParameters.getMessage()),
eventListener);

View file

@ -24,8 +24,6 @@ public class AzureSettingsForm {
private final JBRadioButton useAzureActiveDirectoryAuthenticationRadioButton;
private final JBPasswordField azureActiveDirectoryTokenField;
private final JPanel azureActiveDirectoryTokenFieldPanel;
private final JBTextField azureBaseHostField;
private final JBTextField azurePathField;
private final JBTextField azureResourceNameField;
private final JBTextField azureDeploymentIdField;
private final JBTextField azureApiVersionField;
@ -52,8 +50,6 @@ public class AzureSettingsForm {
.withLabel(CodeGPTBundle.get("settingsConfigurable.service.azure.bearerToken.label"))
.resizeX(false)
.createPanel();
azureBaseHostField = new JBTextField(settings.getBaseHost(), 35);
azurePathField = new JBTextField(settings.getPath(), 35);
azureResourceNameField = new JBTextField(settings.getResourceName(), 35);
azureDeploymentIdField = new JBTextField(settings.getDeploymentId(), 35);
azureApiVersionField = new JBTextField(settings.getApiVersion(), 35);
@ -95,12 +91,6 @@ public class AzureSettingsForm {
.resizeX(false)
.withComment(CodeGPTBundle.get(
"settingsConfigurable.service.azure.apiVersion.comment")))
.add(UI.PanelFactory.panel(azureBaseHostField)
.withLabel(CodeGPTBundle.get("settingsConfigurable.shared.baseHost.label"))
.resizeX(false))
.add(UI.PanelFactory.panel(azurePathField)
.withLabel(CodeGPTBundle.get("settingsConfigurable.shared.path.label"))
.resizeX(false))
.createPanel());
return FormBuilder.createFormBuilder()
@ -122,8 +112,6 @@ public class AzureSettingsForm {
state.setResourceName(azureResourceNameField.getText());
state.setDeploymentId(azureDeploymentIdField.getText());
state.setApiVersion(azureApiVersionField.getText());
state.setBaseHost(azureBaseHostField.getText());
state.setPath(azurePathField.getText());
return state;
}
@ -138,8 +126,6 @@ public class AzureSettingsForm {
azureResourceNameField.setText(state.getResourceName());
azureDeploymentIdField.setText(state.getDeploymentId());
azureApiVersionField.setText(state.getApiVersion());
azureBaseHostField.setText(state.getBaseHost());
azurePathField.setText(state.getPath());
}
public @Nullable String getActiveDirectoryToken() {

View file

@ -1,25 +1,15 @@
package ee.carlrobert.codegpt.settings.service.azure;
import com.intellij.util.xmlb.annotations.Transient;
import java.util.Objects;
public class AzureSettingsState {
private static final String BASE_PATH = "/openai/deployments/%s/chat/completions?api-version=%s";
private String resourceName = "";
private String deploymentId = "";
private String apiVersion = "";
private String baseHost = "https://%s.openai.azure.com";
private String path = BASE_PATH;
private boolean useAzureApiKeyAuthentication = true;
private boolean useAzureActiveDirectoryAuthentication;
@Transient
public boolean isUsingCustomPath() {
return !BASE_PATH.equals(path);
}
public String getResourceName() {
return resourceName;
}
@ -44,22 +34,6 @@ public class AzureSettingsState {
this.apiVersion = apiVersion;
}
public String getBaseHost() {
return baseHost;
}
public void setBaseHost(String baseHost) {
this.baseHost = baseHost;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public boolean isUseAzureApiKeyAuthentication() {
return useAzureApiKeyAuthentication;
}
@ -90,14 +64,12 @@ public class AzureSettingsState {
&& useAzureActiveDirectoryAuthentication == that.useAzureActiveDirectoryAuthentication
&& Objects.equals(resourceName, that.resourceName)
&& Objects.equals(deploymentId, that.deploymentId)
&& Objects.equals(apiVersion, that.apiVersion)
&& Objects.equals(baseHost, that.baseHost)
&& Objects.equals(path, that.path);
&& Objects.equals(apiVersion, that.apiVersion);
}
@Override
public int hashCode() {
return Objects.hash(resourceName, deploymentId, apiVersion, baseHost, path,
useAzureApiKeyAuthentication, useAzureActiveDirectoryAuthentication);
return Objects.hash(resourceName, deploymentId, apiVersion, useAzureApiKeyAuthentication,
useAzureActiveDirectoryAuthentication);
}
}