mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-12 22:31:24 +00:00
feat: image support for Custom OpenAI provider (#649)
This commit is contained in:
parent
53693f3326
commit
2ddcde1363
2 changed files with 33 additions and 39 deletions
|
|
@ -1,15 +1,7 @@
|
|||
package ee.carlrobert.codegpt.settings.service;
|
||||
|
||||
import static ee.carlrobert.llm.client.openai.completion.OpenAIChatCompletionModel.GPT_4_O;
|
||||
import static ee.carlrobert.llm.client.openai.completion.OpenAIChatCompletionModel.GPT_4_O_MINI;
|
||||
import static ee.carlrobert.llm.client.openai.completion.OpenAIChatCompletionModel.GPT_4_VISION_PREVIEW;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import ee.carlrobert.codegpt.CodeGPTBundle;
|
||||
import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTServiceSettings;
|
||||
import ee.carlrobert.codegpt.settings.service.openai.OpenAISettings;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public enum ServiceType {
|
||||
|
|
@ -64,34 +56,4 @@ public enum ServiceType {
|
|||
}
|
||||
return serviceType;
|
||||
}
|
||||
|
||||
public boolean isImageActionSupported() {
|
||||
return switch (this) {
|
||||
case ANTHROPIC:
|
||||
case OLLAMA:
|
||||
yield true;
|
||||
case CODEGPT:
|
||||
var codegptModel = ApplicationManager.getApplication()
|
||||
.getService(CodeGPTServiceSettings.class)
|
||||
.getState()
|
||||
.getChatCompletionSettings()
|
||||
.getModel();
|
||||
yield List.of(
|
||||
"gpt-4o",
|
||||
"gpt-4o-mini",
|
||||
"claude-3-opus",
|
||||
"claude-3.5-sonnet"
|
||||
).contains(codegptModel);
|
||||
case OPENAI:
|
||||
var openaiModel = ApplicationManager.getApplication().getService(OpenAISettings.class)
|
||||
.getState()
|
||||
.getModel();
|
||||
yield List.of(
|
||||
GPT_4_VISION_PREVIEW.getCode(),
|
||||
GPT_4_O.getCode(),
|
||||
GPT_4_O_MINI.getCode()).contains(openaiModel);
|
||||
default:
|
||||
yield false;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,10 +18,14 @@ import ee.carlrobert.codegpt.actions.AttachImageAction
|
|||
import ee.carlrobert.codegpt.conversations.ConversationService
|
||||
import ee.carlrobert.codegpt.conversations.ConversationsState
|
||||
import ee.carlrobert.codegpt.settings.GeneralSettings
|
||||
import ee.carlrobert.codegpt.settings.service.ServiceType
|
||||
import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTServiceSettings
|
||||
import ee.carlrobert.codegpt.settings.service.openai.OpenAISettings
|
||||
import ee.carlrobert.codegpt.toolwindow.chat.ChatToolWindowContentManager
|
||||
import ee.carlrobert.codegpt.toolwindow.chat.ui.textarea.ModelComboBoxAction
|
||||
import ee.carlrobert.codegpt.toolwindow.chat.ui.textarea.TotalTokensPanel
|
||||
import ee.carlrobert.codegpt.ui.IconActionButton
|
||||
import ee.carlrobert.llm.client.openai.completion.OpenAIChatCompletionModel
|
||||
import java.awt.*
|
||||
import javax.swing.JPanel
|
||||
|
||||
|
|
@ -143,6 +147,34 @@ class UserInputPanel(
|
|||
}
|
||||
|
||||
private fun isImageActionSupported(): Boolean {
|
||||
return service<GeneralSettings>().state.selectedService.isImageActionSupported
|
||||
return when (service<GeneralSettings>().state.selectedService) {
|
||||
ServiceType.CUSTOM_OPENAI,
|
||||
ServiceType.ANTHROPIC,
|
||||
ServiceType.OLLAMA -> true
|
||||
|
||||
ServiceType.CODEGPT -> {
|
||||
listOf(
|
||||
"gpt-4o",
|
||||
"gpt-4o-mini",
|
||||
"claude-3-opus",
|
||||
"claude-3.5-sonnet"
|
||||
).contains(
|
||||
service<CodeGPTServiceSettings>()
|
||||
.state
|
||||
.chatCompletionSettings
|
||||
.model
|
||||
)
|
||||
}
|
||||
|
||||
ServiceType.OPENAI -> {
|
||||
listOf(
|
||||
OpenAIChatCompletionModel.GPT_4_VISION_PREVIEW.code,
|
||||
OpenAIChatCompletionModel.GPT_4_O.code,
|
||||
OpenAIChatCompletionModel.GPT_4_O_MINI.code
|
||||
).contains(service<OpenAISettings>().state.model)
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue