OllamaInterface/OllamaRunningModelsDialog.py

Sun, 25 Aug 2024 19:44:24 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 25 Aug 2024 19:44:24 +0200
changeset 8
3118d16e526e
child 9
c471738b75b3
permissions
-rw-r--r--

Implemented some more menu actions.
- Start and Stop a local 'ollama' server in the background.
- List available models.
- List running models.
- Open the 'ollama' model library in a browser.

8
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to show details of the running models.
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from eric7 import Globals
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from .Ui_OllamaRunningModelsDialog import Ui_OllamaRunningModelsDialog
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 class OllamaRunningModelsDialog(QDialog, Ui_OllamaRunningModelsDialog):
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Class implementing a dialog to show details of the running models.
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 def __init__(self, models, parent=None):
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @param models list of available models with details
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @type list[dict[str: Any]]
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @param parent reference to the parent widget (defaults to None)
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @type QWidget (optional)
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 super().__init__(parent)
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.setupUi(self)
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 for model in models:
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 QTreeWidgetItem(
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.modelsList,
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 [
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 model["name"],
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 model["id"],
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 Globals.dataString(model["size"]),
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 model["processor"],
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 model["expires"].strftime("%Y-%m-%d %H:%M:%S"),
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 ]
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 )
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 for column in range(self.modelsList.columnCount()):
3118d16e526e Implemented some more menu actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.modelsList.resizeColumnToContents(column)

eric ide

mercurial