mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-22 03:30:04 +00:00
Use string type model state
This commit is contained in:
parent
1b312da9ab
commit
525c316739
9 changed files with 24 additions and 27 deletions
|
|
@ -21,14 +21,14 @@ public class ClientRequestFactory {
|
|||
|
||||
public ChatCompletionRequest buildChatCompletionRequest(SettingsState settings) {
|
||||
return new ChatCompletionRequest.Builder(buildMessages(prompt, conversation))
|
||||
.setModel(settings.chatCompletionBaseModel.getCode())
|
||||
.setModel(settings.chatCompletionBaseModel)
|
||||
.build();
|
||||
}
|
||||
|
||||
public TextCompletionRequest buildTextCompletionRequest(SettingsState settings) {
|
||||
return new TextCompletionRequest.Builder(buildPrompt(conversation, prompt))
|
||||
.setStop(List.of(" Human:", " AI:"))
|
||||
.setModel(settings.textCompletionBaseModel.getCode())
|
||||
.setModel(settings.textCompletionBaseModel)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
@ -46,7 +46,7 @@ public class ClientRequestFactory {
|
|||
}
|
||||
|
||||
private StringBuilder getBasePrompt() {
|
||||
var isDavinciModel = SettingsState.getInstance().textCompletionBaseModel == TextCompletionModel.DAVINCI;
|
||||
var isDavinciModel = TextCompletionModel.DAVINCI.getCode().equals(SettingsState.getInstance().textCompletionBaseModel);
|
||||
if (isDavinciModel) {
|
||||
return new StringBuilder(
|
||||
"You are ChatGPT, a large language model trained by OpenAI.\n" +
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package ee.carlrobert.codegpt.conversations;
|
|||
|
||||
import ee.carlrobert.codegpt.conversations.message.Message;
|
||||
import ee.carlrobert.openai.client.ClientCode;
|
||||
import ee.carlrobert.openai.client.completion.CompletionModel;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -13,7 +12,7 @@ public class Conversation {
|
|||
private UUID id;
|
||||
private List<Message> messages = new ArrayList<>();
|
||||
private ClientCode clientCode;
|
||||
private CompletionModel model;
|
||||
private String model;
|
||||
private LocalDateTime createdOn;
|
||||
private LocalDateTime updatedOn;
|
||||
|
||||
|
|
@ -45,11 +44,11 @@ public class Conversation {
|
|||
messages.add(message);
|
||||
}
|
||||
|
||||
public CompletionModel getModel() {
|
||||
public String getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public void setModel(CompletionModel model) {
|
||||
public void setModel(String model) {
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
|
||||
@State(
|
||||
name = "ee.carlrobert.codegpt.conversations.ConversationsState",
|
||||
storages = @Storage("ChatGPTConversations.xml")
|
||||
storages = @Storage("ChatGPTConversations_170.xml")
|
||||
)
|
||||
public class ConversationsState implements PersistentStateComponent<ConversationsState> {
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class SettingsComponent {
|
|||
ChatCompletionModel.GPT_3_5_SNAPSHOT,
|
||||
ChatCompletionModel.GPT_4
|
||||
},
|
||||
settings.textCompletionBaseModel);
|
||||
ChatCompletionModel.findByCode(settings.chatCompletionBaseModel));
|
||||
textCompletionBaseModelComboBox = new BaseModelComboBox(
|
||||
new TextCompletionModel[] {
|
||||
TextCompletionModel.DAVINCI,
|
||||
|
|
@ -44,7 +44,7 @@ public class SettingsComponent {
|
|||
TextCompletionModel.BABBAGE,
|
||||
TextCompletionModel.ADA,
|
||||
},
|
||||
settings.textCompletionBaseModel);
|
||||
TextCompletionModel.findByCode(settings.textCompletionBaseModel));
|
||||
useChatCompletionRadioButton = new JBRadioButton("Use chat completion", settings.isChatCompletionOptionSelected);
|
||||
useTextCompletionRadioButton = new JBRadioButton("Use text completion", settings.isTextCompletionOptionSelected);
|
||||
mainPanel = FormBuilder.createFormBuilder()
|
||||
|
|
@ -95,16 +95,16 @@ public class SettingsComponent {
|
|||
return (TextCompletionModel) textCompletionBaseModelComboBox.getSelectedItem();
|
||||
}
|
||||
|
||||
public void setTextCompletionBaseModel(CompletionModel model) {
|
||||
textCompletionBaseModelComboBox.setSelectedItem(model);
|
||||
public void setTextCompletionBaseModel(String model) {
|
||||
textCompletionBaseModelComboBox.setSelectedItem(TextCompletionModel.valueOf(model));
|
||||
}
|
||||
|
||||
public ChatCompletionModel getChatCompletionBaseModel() {
|
||||
return (ChatCompletionModel) chatCompletionBaseModelComboBox.getSelectedItem();
|
||||
}
|
||||
|
||||
public void setChatCompletionBaseModel(CompletionModel model) {
|
||||
chatCompletionBaseModelComboBox.setSelectedItem(model);
|
||||
public void setChatCompletionBaseModel(String model) {
|
||||
chatCompletionBaseModelComboBox.setSelectedItem(ChatCompletionModel.valueOf(model));
|
||||
}
|
||||
|
||||
private JPanel createMainSelectionForm() {
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@ public class SettingsConfigurable implements Configurable {
|
|||
@Override
|
||||
public boolean isModified() {
|
||||
var settings = SettingsState.getInstance();
|
||||
return !settingsComponent.getApiKey().equals(settings.apiKey) ||
|
||||
isModelChanged(settings) || isClientChanged(settings);
|
||||
return !settingsComponent.getApiKey().equals(settings.apiKey) || isModelChanged(settings) || isClientChanged(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -45,10 +44,10 @@ public class SettingsConfigurable implements Configurable {
|
|||
}
|
||||
|
||||
settings.apiKey = settingsComponent.getApiKey();
|
||||
settings.chatCompletionBaseModel = settingsComponent.getChatCompletionBaseModel();
|
||||
settings.chatCompletionBaseModel = settingsComponent.getChatCompletionBaseModel().getCode();
|
||||
settings.isChatCompletionOptionSelected = settingsComponent.isChatCompletionOptionSelected();
|
||||
settings.isTextCompletionOptionSelected = settingsComponent.isTextCompletionOptionSelected();
|
||||
settings.textCompletionBaseModel = settingsComponent.getTextCompletionBaseModel();
|
||||
settings.textCompletionBaseModel = settingsComponent.getTextCompletionBaseModel().getCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -72,7 +71,7 @@ public class SettingsConfigurable implements Configurable {
|
|||
}
|
||||
|
||||
private boolean isModelChanged(SettingsState settings) {
|
||||
return !settingsComponent.getChatCompletionBaseModel().equals(settings.chatCompletionBaseModel) ||
|
||||
!settingsComponent.getTextCompletionBaseModel().equals(settings.textCompletionBaseModel);
|
||||
return !settingsComponent.getChatCompletionBaseModel().getCode().equals(settings.chatCompletionBaseModel) ||
|
||||
!settingsComponent.getTextCompletionBaseModel().getCode().equals(settings.textCompletionBaseModel);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import com.intellij.openapi.components.PersistentStateComponent;
|
|||
import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import ee.carlrobert.openai.client.completion.CompletionModel;
|
||||
import ee.carlrobert.openai.client.completion.chat.ChatCompletionModel;
|
||||
import ee.carlrobert.openai.client.completion.text.TextCompletionModel;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -13,13 +12,13 @@ import org.jetbrains.annotations.Nullable;
|
|||
|
||||
@State(
|
||||
name = "ee.carlrobert.codegpt.settings.SettingsState",
|
||||
storages = @Storage("CodeGPTSettings.xml")
|
||||
storages = @Storage("CodeGPTSettings_170.xml")
|
||||
)
|
||||
public class SettingsState implements PersistentStateComponent<SettingsState> {
|
||||
|
||||
public String apiKey = "";
|
||||
public CompletionModel textCompletionBaseModel = TextCompletionModel.DAVINCI;
|
||||
public CompletionModel chatCompletionBaseModel = ChatCompletionModel.GPT_3_5;
|
||||
public String textCompletionBaseModel = TextCompletionModel.DAVINCI.getCode();
|
||||
public String chatCompletionBaseModel = ChatCompletionModel.GPT_3_5.getCode();
|
||||
public boolean isChatCompletionOptionSelected = true;
|
||||
public boolean isTextCompletionOptionSelected;
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class OpenInEditorAction extends AnAction {
|
|||
var currentConversation = ConversationsState.getCurrentConversation();
|
||||
if (project != null && currentConversation != null) {
|
||||
var dateTimeStamp = currentConversation.getUpdatedOn().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm"));
|
||||
var fileName = String.format("%s_%s.md", currentConversation.getModel().getCode(), dateTimeStamp);
|
||||
var fileName = String.format("%s_%s.md", currentConversation.getModel(), dateTimeStamp);
|
||||
var fileContent = currentConversation
|
||||
.getMessages()
|
||||
.stream()
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class ConversationPanel extends JPanel {
|
|||
.format(DateTimeFormatter.ofPattern("M/d/yyyy, h:mm:ss a"))));
|
||||
bottomPanel.add(Box.createHorizontalGlue());
|
||||
if (conversation.getModel() != null) {
|
||||
bottomPanel.add(new JLabel(conversation.getModel().getCode()));
|
||||
bottomPanel.add(new JLabel(conversation.getModel()));
|
||||
}
|
||||
textPanel.add(bottomPanel);
|
||||
return textPanel;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue