OllamaInterface/ConfigurationPage/OllamaPage.py

Tue, 10 Dec 2024 15:48:48 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:48:48 +0100
changeset 67
3c2bcbf7eeaf
parent 24
f4d5108e90fe
permissions
-rw-r--r--

Updated copyright for 2025.

# -*- coding: utf-8 -*-

# Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing the 'ollama' interface configuration page.
"""

from eric7.Preferences.ConfigurationPages.ConfigurationPageBase import (
    ConfigurationPageBase,
)

from .Ui_OllamaPage import Ui_OllamaPage


class OllamaPage(ConfigurationPageBase, Ui_OllamaPage):
    """
    Class implementing the 'ollama' interface configuration page.
    """

    def __init__(self, plugin):
        """
        Constructor

        @param plugin reference to the plugin object
        @type PluginOllamaInterface
        """
        super().__init__()
        self.setupUi(self)
        self.setObjectName("OllamaPage")

        self.__plugin = plugin

        # set initial values
        self.serverSchemeComboBox.setCurrentText(
            self.__plugin.getPreferences("OllamaScheme")
        )
        self.serverHostEdit.setText(self.__plugin.getPreferences("OllamaHost"))
        self.serverPortSpinBox.setValue(self.__plugin.getPreferences("OllamaPort"))

        self.localServerPortSpinBox.setValue(
            self.__plugin.getPreferences("OllamaLocalPort")
        )

        self.modelLibraryUrlEdit.setText(
            self.__plugin.getPreferences("OllamaModelLibraryUrl")
        )
        self.downloadUrlEdit.setText(self.__plugin.getPreferences("OllamaDownloadUrl"))
        self.blogUrlEdit.setText(self.__plugin.getPreferences("OllamaBlogUrl"))

        self.heartbeatSpinBox.setValue(
            self.__plugin.getPreferences("OllamaHeartbeatInterval")
        )
        self.streamingChatCheckBox.setChecked(
            self.__plugin.getPreferences("StreamingChatResponse")
        )

    def save(self):
        """
        Public slot to save the 'ollama' interface configuration.
        """
        self.__plugin.setPreferences(
            "OllamaScheme", self.serverSchemeComboBox.currentText()
        )
        self.__plugin.setPreferences("OllamaHost", self.serverHostEdit.text())
        self.__plugin.setPreferences("OllamaPort", self.serverPortSpinBox.value())

        self.__plugin.setPreferences(
            "OllamaLocalPort", self.localServerPortSpinBox.value()
        )

        self.__plugin.setPreferences(
            "OllamaModelLibraryUrl", self.modelLibraryUrlEdit.text()
        )
        self.__plugin.setPreferences("OllamaDownloadUrl", self.downloadUrlEdit.text())
        self.__plugin.setPreferences("OllamaBlogUrl", self.blogUrlEdit.text())

        self.__plugin.setPreferences(
            "OllamaHeartbeatInterval", self.heartbeatSpinBox.value()
        )
        self.__plugin.setPreferences(
            "StreamingChatResponse", self.streamingChatCheckBox.isChecked()
        )

eric ide

mercurial