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.

16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
67
3c2bcbf7eeaf Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
3 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the 'ollama' interface configuration page.
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from eric7.Preferences.ConfigurationPages.ConfigurationPageBase import (
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 ConfigurationPageBase,
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 )
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from .Ui_OllamaPage import Ui_OllamaPage
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 class OllamaPage(ConfigurationPageBase, Ui_OllamaPage):
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Class implementing the 'ollama' interface configuration page.
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 def __init__(self, plugin):
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @param plugin reference to the plugin object
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @type PluginOllamaInterface
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 super().__init__()
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.setupUi(self)
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.setObjectName("OllamaPage")
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.__plugin = plugin
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 # set initial values
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.serverSchemeComboBox.setCurrentText(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.__plugin.getPreferences("OllamaScheme")
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 )
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.serverHostEdit.setText(self.__plugin.getPreferences("OllamaHost"))
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.serverPortSpinBox.setValue(self.__plugin.getPreferences("OllamaPort"))
17
43b1396fe72f Fixed some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
41
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.localServerPortSpinBox.setValue(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__plugin.getPreferences("OllamaLocalPort")
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 )
17
43b1396fe72f Fixed some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
45
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.modelLibraryUrlEdit.setText(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__plugin.getPreferences("OllamaModelLibraryUrl")
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 )
24
f4d5108e90fe Added some menu entries to access various 'ollama' URLs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
49 self.downloadUrlEdit.setText(self.__plugin.getPreferences("OllamaDownloadUrl"))
f4d5108e90fe Added some menu entries to access various 'ollama' URLs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
50 self.blogUrlEdit.setText(self.__plugin.getPreferences("OllamaBlogUrl"))
17
43b1396fe72f Fixed some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
51
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.heartbeatSpinBox.setValue(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__plugin.getPreferences("OllamaHeartbeatInterval")
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 )
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.streamingChatCheckBox.setChecked(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__plugin.getPreferences("StreamingChatResponse")
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 )
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 def save(self):
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 Public slot to save the 'ollama' interface configuration.
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.__plugin.setPreferences(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 "OllamaScheme", self.serverSchemeComboBox.currentText()
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 )
17
43b1396fe72f Fixed some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
66 self.__plugin.setPreferences("OllamaHost", self.serverHostEdit.text())
43b1396fe72f Fixed some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
67 self.__plugin.setPreferences("OllamaPort", self.serverPortSpinBox.value())
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.__plugin.setPreferences(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 "OllamaLocalPort", self.localServerPortSpinBox.value()
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 )
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.__plugin.setPreferences(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 "OllamaModelLibraryUrl", self.modelLibraryUrlEdit.text()
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 )
24
f4d5108e90fe Added some menu entries to access various 'ollama' URLs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
76 self.__plugin.setPreferences("OllamaDownloadUrl", self.downloadUrlEdit.text())
f4d5108e90fe Added some menu entries to access various 'ollama' URLs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
77 self.__plugin.setPreferences("OllamaBlogUrl", self.blogUrlEdit.text())
16
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__plugin.setPreferences(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 "OllamaHeartbeatInterval", self.heartbeatSpinBox.value()
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 )
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.__plugin.setPreferences(
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 "StreamingChatResponse", self.streamingChatCheckBox.isChecked()
cb6af351310b Implemented the 'ollama' interface configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 )

eric ide

mercurial