|
|
|
@ -1,23 +1,36 @@
|
|
|
|
|
package com.plexworlds.l3.config
|
|
|
|
|
|
|
|
|
|
import com.plexworlds.l3.llm.Ollama
|
|
|
|
|
import com.plexworlds.l3.llm.provider.Ollama
|
|
|
|
|
import com.intellij.openapi.options.SearchableConfigurable
|
|
|
|
|
import com.plexworlds.l3.llm.LLMs
|
|
|
|
|
import com.plexworlds.l3.llm.provider.Providers
|
|
|
|
|
import javax.swing.JComponent
|
|
|
|
|
import org.slf4j.Logger
|
|
|
|
|
import org.slf4j.LoggerFactory
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class L3Config : SearchableConfigurable {
|
|
|
|
|
|
|
|
|
|
private var panel: L3SettingsPanel? = null
|
|
|
|
|
private val logger: Logger = LoggerFactory.getLogger(L3Config::class.java)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun createComponent(): JComponent {
|
|
|
|
|
return L3SettingsPanel().also { panel = it }.mainPanel
|
|
|
|
|
val panel = L3SettingsPanel().also { this.panel = it }
|
|
|
|
|
return panel.mainPanel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun isModified(): Boolean {
|
|
|
|
|
val panel = this.panel ?: return false
|
|
|
|
|
if (panel == null) {
|
|
|
|
|
logger.error("L3SettingsPanel is null")
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
val l3PersistentState = L3PersistentState.getInstance()
|
|
|
|
|
return panel.modelField.text != l3PersistentState.model
|
|
|
|
|
// || panel.urlField.text != l3State.url
|
|
|
|
|
val isProviderModified = panel?.providerComboBox?.selectedItem != l3PersistentState.provider
|
|
|
|
|
val isModelModified = panel?.modelField?.text != l3PersistentState.model;
|
|
|
|
|
val isUrlModified = panel?.urlField?.text != l3PersistentState.url
|
|
|
|
|
val isModified = isProviderModified || isModelModified || isUrlModified;
|
|
|
|
|
logger.debug("isModified: $isModified")
|
|
|
|
|
return isModified
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun reset() {
|
|
|
|
@ -31,7 +44,7 @@ class L3Config : SearchableConfigurable {
|
|
|
|
|
val panel = this.panel ?: return
|
|
|
|
|
val state = L3PersistentState.getInstance()
|
|
|
|
|
|
|
|
|
|
val llm = LLMs.valueOf(panel.providerComboBox.selectedItem as String).llm
|
|
|
|
|
val llm = Providers.valueOf(panel.providerComboBox.selectedItem as String).provider
|
|
|
|
|
val model = panel.modelField.text
|
|
|
|
|
|
|
|
|
|
llm.changeModel(model)
|
|
|
|
@ -46,6 +59,6 @@ class L3Config : SearchableConfigurable {
|
|
|
|
|
this.panel = null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun getDisplayName() = "AI code completion idea"
|
|
|
|
|
override fun getDisplayName() = "Local Llama Link"
|
|
|
|
|
override fun getId() = "com.plexworlds.l3.config.L3Config"
|
|
|
|
|
}
|
|
|
|
|