mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-16 19:44:36 +00:00
feat: support custom OpenAI-compatible service (#383)
This commit is contained in:
parent
c8bb33d9b2
commit
8507c779b1
27 changed files with 772 additions and 166 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package ee.carlrobert.codegpt.settings;
|
||||
|
||||
import static ee.carlrobert.codegpt.settings.service.ServiceType.AZURE;
|
||||
import static ee.carlrobert.codegpt.settings.service.ServiceType.CUSTOM_OPENAI;
|
||||
import static ee.carlrobert.codegpt.settings.service.ServiceType.LLAMA_CPP;
|
||||
import static ee.carlrobert.codegpt.settings.service.ServiceType.OPENAI;
|
||||
import static ee.carlrobert.codegpt.settings.service.ServiceType.YOU;
|
||||
|
|
@ -8,13 +9,16 @@ import static java.util.stream.Collectors.toList;
|
|||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.openapi.util.SystemInfoRt;
|
||||
import com.intellij.ui.components.JBTextField;
|
||||
import com.intellij.util.ui.FormBuilder;
|
||||
import ee.carlrobert.codegpt.CodeGPTBundle;
|
||||
import ee.carlrobert.codegpt.settings.service.ServiceSelectionForm;
|
||||
import ee.carlrobert.codegpt.settings.service.ServiceType;
|
||||
import java.awt.CardLayout;
|
||||
import java.awt.Component;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Insets;
|
||||
import java.util.Arrays;
|
||||
import javax.swing.DefaultComboBoxModel;
|
||||
import javax.swing.JComponent;
|
||||
|
|
@ -30,9 +34,12 @@ public class GeneralSettingsComponent {
|
|||
public GeneralSettingsComponent(Disposable parentDisposable, GeneralSettings settings) {
|
||||
displayNameField = new JBTextField(settings.getState().getDisplayName(), 20);
|
||||
serviceSelectionForm = new ServiceSelectionForm(parentDisposable);
|
||||
var cardLayout = new CardLayout();
|
||||
var cardLayout = new DynamicCardLayout();
|
||||
var cards = new JPanel(cardLayout);
|
||||
cards.add(serviceSelectionForm.getOpenAISettingsForm().getForm(), OPENAI.getCode());
|
||||
cards.add(
|
||||
serviceSelectionForm.getCustomConfigurationSettingsForm().getForm(),
|
||||
CUSTOM_OPENAI.getCode());
|
||||
cards.add(serviceSelectionForm.getAzureSettingsForm().getForm(), AZURE.getCode());
|
||||
cards.add(serviceSelectionForm.getYouSettingsForm(), YOU.getCode());
|
||||
cards.add(serviceSelectionForm.getLlamaSettingsForm(), LLAMA_CPP.getCode());
|
||||
|
|
@ -83,4 +90,29 @@ public class GeneralSettingsComponent {
|
|||
public void setDisplayName(String displayName) {
|
||||
displayNameField.setText(displayName);
|
||||
}
|
||||
|
||||
static class DynamicCardLayout extends CardLayout {
|
||||
|
||||
@Override
|
||||
public Dimension preferredLayoutSize(Container parent) {
|
||||
Component current = findVisibleComponent(parent);
|
||||
if (current != null) {
|
||||
Insets insets = parent.getInsets();
|
||||
Dimension preferredSize = current.getPreferredSize();
|
||||
preferredSize.width += insets.left + insets.right;
|
||||
preferredSize.height += insets.top + insets.bottom;
|
||||
return preferredSize;
|
||||
}
|
||||
return super.preferredLayoutSize(parent);
|
||||
}
|
||||
|
||||
private Component findVisibleComponent(Container parent) {
|
||||
for (Component comp : parent.getComponents()) {
|
||||
if (comp.isVisible()) {
|
||||
return comp;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue