pygpt-net 2.6.44__py3-none-any.whl → 2.6.46__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pygpt_net/CHANGELOG.txt +12 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +0 -5
- pygpt_net/controller/ctx/ctx.py +6 -0
- pygpt_net/controller/debug/debug.py +11 -9
- pygpt_net/controller/debug/fixtures.py +1 -1
- pygpt_net/controller/dialogs/debug.py +40 -29
- pygpt_net/core/debug/agent.py +19 -14
- pygpt_net/core/debug/assistants.py +22 -24
- pygpt_net/core/debug/attachments.py +11 -7
- pygpt_net/core/debug/config.py +22 -23
- pygpt_net/core/debug/console/console.py +2 -1
- pygpt_net/core/debug/context.py +63 -63
- pygpt_net/core/debug/db.py +1 -4
- pygpt_net/core/debug/debug.py +1 -1
- pygpt_net/core/debug/events.py +14 -11
- pygpt_net/core/debug/indexes.py +41 -76
- pygpt_net/core/debug/kernel.py +11 -8
- pygpt_net/core/debug/models.py +20 -15
- pygpt_net/core/debug/plugins.py +9 -6
- pygpt_net/core/debug/presets.py +16 -11
- pygpt_net/core/debug/tabs.py +28 -22
- pygpt_net/core/debug/ui.py +25 -22
- pygpt_net/core/fixtures/stream/generator.py +1 -2
- pygpt_net/core/render/web/body.py +290 -23
- pygpt_net/core/render/web/helpers.py +26 -0
- pygpt_net/core/render/web/renderer.py +459 -705
- pygpt_net/core/tabs/tab.py +14 -1
- pygpt_net/data/config/config.json +3 -3
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/settings.json +15 -17
- pygpt_net/data/css/style.dark.css +6 -0
- pygpt_net/data/css/web-blocks.css +4 -0
- pygpt_net/data/css/web-blocks.light.css +1 -1
- pygpt_net/data/css/web-chatgpt.css +4 -0
- pygpt_net/data/css/web-chatgpt.light.css +1 -1
- pygpt_net/data/css/web-chatgpt_wide.css +4 -0
- pygpt_net/data/css/web-chatgpt_wide.light.css +1 -1
- pygpt_net/data/fixtures/fake_stream.txt +5733 -0
- pygpt_net/data/js/app.js +1921 -901
- pygpt_net/data/locale/locale.de.ini +1 -1
- pygpt_net/data/locale/locale.en.ini +5 -5
- pygpt_net/data/locale/locale.es.ini +1 -1
- pygpt_net/data/locale/locale.fr.ini +1 -1
- pygpt_net/data/locale/locale.it.ini +1 -1
- pygpt_net/data/locale/locale.pl.ini +2 -2
- pygpt_net/data/locale/locale.uk.ini +1 -1
- pygpt_net/data/locale/locale.zh.ini +1 -1
- pygpt_net/item/model.py +4 -1
- pygpt_net/js_rc.py +13076 -10198
- pygpt_net/provider/api/anthropic/__init__.py +3 -1
- pygpt_net/provider/api/anthropic/tools.py +1 -1
- pygpt_net/provider/api/google/__init__.py +7 -1
- pygpt_net/provider/api/x_ai/__init__.py +5 -1
- pygpt_net/provider/core/config/patch.py +14 -1
- pygpt_net/provider/llms/anthropic.py +37 -5
- pygpt_net/provider/llms/azure_openai.py +3 -1
- pygpt_net/provider/llms/base.py +13 -1
- pygpt_net/provider/llms/deepseek_api.py +13 -3
- pygpt_net/provider/llms/google.py +14 -1
- pygpt_net/provider/llms/hugging_face_api.py +105 -24
- pygpt_net/provider/llms/hugging_face_embedding.py +88 -0
- pygpt_net/provider/llms/hugging_face_router.py +28 -16
- pygpt_net/provider/llms/local.py +2 -0
- pygpt_net/provider/llms/mistral.py +60 -3
- pygpt_net/provider/llms/open_router.py +4 -2
- pygpt_net/provider/llms/openai.py +4 -1
- pygpt_net/provider/llms/perplexity.py +66 -5
- pygpt_net/provider/llms/utils.py +39 -0
- pygpt_net/provider/llms/voyage.py +50 -0
- pygpt_net/provider/llms/x_ai.py +70 -10
- pygpt_net/ui/layout/chat/output.py +1 -1
- pygpt_net/ui/widget/lists/db.py +1 -0
- pygpt_net/ui/widget/lists/debug.py +1 -0
- pygpt_net/ui/widget/tabs/body.py +12 -1
- pygpt_net/ui/widget/textarea/web.py +4 -4
- pygpt_net/utils.py +3 -2
- {pygpt_net-2.6.44.dist-info → pygpt_net-2.6.46.dist-info}/METADATA +73 -16
- {pygpt_net-2.6.44.dist-info → pygpt_net-2.6.46.dist-info}/RECORD +82 -78
- {pygpt_net-2.6.44.dist-info → pygpt_net-2.6.46.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.44.dist-info → pygpt_net-2.6.46.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.44.dist-info → pygpt_net-2.6.46.dist-info}/entry_points.txt +0 -0
pygpt_net/core/debug/db.py
CHANGED
|
@@ -6,12 +6,9 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
|
-
import datetime
|
|
13
|
-
import os
|
|
14
|
-
|
|
15
12
|
|
|
16
13
|
class DatabaseDebug:
|
|
17
14
|
def __init__(self, window=None):
|
pygpt_net/core/debug/debug.py
CHANGED
|
@@ -412,7 +412,7 @@ class Debug:
|
|
|
412
412
|
qobjects = sum(1 for obj in QApplication.allWidgets() if isinstance(obj, QObject))
|
|
413
413
|
stats.append(f"QObjects: {qobjects}")
|
|
414
414
|
|
|
415
|
-
res += "\n\n".join(stats)
|
|
415
|
+
res += "\n" + "\n".join(stats)
|
|
416
416
|
print("\n".join(stats))
|
|
417
417
|
return res
|
|
418
418
|
|
pygpt_net/core/debug/events.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from pygpt_net.core.events import (
|
|
@@ -31,16 +31,19 @@ class EventsDebug:
|
|
|
31
31
|
|
|
32
32
|
def update(self):
|
|
33
33
|
"""Update debug window."""
|
|
34
|
-
self.window.core.debug
|
|
35
|
-
self.window.core.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
debug = self.window.core.debug
|
|
35
|
+
access_voice = self.window.core.access.voice
|
|
36
|
+
|
|
37
|
+
debug.begin(self.id)
|
|
38
|
+
debug.add(self.id, 'App Events:', str(self.extract_events(AppEvent)))
|
|
39
|
+
debug.add(self.id, 'Control Events:', str(self.extract_events(ControlEvent)))
|
|
40
|
+
debug.add(self.id, 'Kernel Events:', str(self.extract_events(KernelEvent)))
|
|
41
|
+
debug.add(self.id, 'Render Events:', str(self.extract_events(RenderEvent)))
|
|
42
|
+
debug.add(self.id, 'Plugin Events:', str(self.extract_events(Event)))
|
|
43
|
+
debug.add(self.id, '----', '')
|
|
44
|
+
debug.add(self.id, 'Voice Cmds (all):', str(access_voice.commands))
|
|
45
|
+
debug.add(self.id, 'Voice Cmds (allowed):', str(access_voice.get_commands()))
|
|
46
|
+
debug.end(self.id)
|
|
44
47
|
|
|
45
48
|
def extract_events(self, events: BaseEvent) -> dict:
|
|
46
49
|
"""
|
pygpt_net/core/debug/indexes.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import datetime
|
|
@@ -24,91 +24,56 @@ class IndexesDebug:
|
|
|
24
24
|
|
|
25
25
|
def update(self):
|
|
26
26
|
"""Update debug window."""
|
|
27
|
-
self.window.core.debug
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
debug = self.window.core.debug
|
|
28
|
+
idx_core = self.window.core.idx
|
|
29
|
+
idx_controller = self.window.controller.idx
|
|
30
|
+
config = self.window.core.config
|
|
31
|
+
storage = idx_core.storage
|
|
32
|
+
indexing = idx_core.indexing
|
|
33
|
+
|
|
34
|
+
debug.begin(self.id)
|
|
35
|
+
debug.add(self.id, 'Current storage:', str(idx_core.get_current_store()))
|
|
36
|
+
debug.add(self.id, 'Current idx:', str(idx_controller.current_idx))
|
|
37
|
+
debug.add(self.id, 'Current mode:', str(idx_controller.current_mode))
|
|
38
|
+
debug.add(self.id, 'Chat mode:', str(config.get("llama.idx.chat.mode")))
|
|
39
|
+
debug.add(self.id, 'Indexes (list):', str(list(config.get("llama.idx.list"))))
|
|
33
40
|
|
|
34
41
|
# count items in DB
|
|
35
|
-
db_counter = {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
db_counter = {
|
|
43
|
+
"ctx": idx_core.get_counters("ctx"),
|
|
44
|
+
"file": idx_core.get_counters("file"),
|
|
45
|
+
"external": idx_core.get_counters("external")
|
|
46
|
+
}
|
|
39
47
|
|
|
40
|
-
for store in
|
|
48
|
+
for store in idx_core.items:
|
|
41
49
|
name = "Items (files): " + store
|
|
42
|
-
indexes_data = {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
self.window.core.debug.add(self.id, name, str(indexes_data))
|
|
50
|
+
indexes_data = {idx: len(idx_core.items[store][idx].items)
|
|
51
|
+
for idx in idx_core.items[store]}
|
|
52
|
+
if indexes_data:
|
|
53
|
+
debug.add(self.id, name, str(indexes_data))
|
|
47
54
|
|
|
48
55
|
# DB items counters
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
str(db_counter["external"]))
|
|
53
|
-
self.window.core.debug.add(self.id, 'DB items (file):',
|
|
54
|
-
str(db_counter["file"]))
|
|
56
|
+
debug.add(self.id, 'DB items (ctx):', str(db_counter["ctx"]))
|
|
57
|
+
debug.add(self.id, 'DB items (external/web):', str(db_counter["external"]))
|
|
58
|
+
debug.add(self.id, 'DB items (file):', str(db_counter["file"]))
|
|
55
59
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
self.window.core.debug.add(self.id, 'Temp (in-memory) indices:',
|
|
59
|
-
str(self.window.core.idx.storage.count_tmp()))
|
|
60
|
+
debug.add(self.id, 'Storage (storages):', str(list(storage.storages.keys())))
|
|
61
|
+
debug.add(self.id, 'Temp (in-memory) indices:', str(storage.count_tmp()))
|
|
60
62
|
|
|
61
63
|
# loaders
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
str(sorted(list(self.window.core.idx.indexing.loaders["web"].keys()))))
|
|
66
|
-
self.window.core.debug.add(self.id, 'External instructions [web]:',
|
|
67
|
-
str(self.window.core.idx.indexing.external_instructions))
|
|
64
|
+
debug.add(self.id, 'Offline loaders [files]:', str(sorted(list(indexing.loaders["file"].keys()))))
|
|
65
|
+
debug.add(self.id, 'Offline loaders [web]:', str(sorted(list(indexing.loaders["web"].keys()))))
|
|
66
|
+
debug.add(self.id, 'External instructions [web]:', str(indexing.external_instructions))
|
|
68
67
|
|
|
69
|
-
excluded =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
self.window.core.debug.add(self.id, 'Custom metadata:',
|
|
74
|
-
str(self.window.core.config.get("llama.idx.custom_meta")))
|
|
68
|
+
excluded = config.get("llama.idx.excluded.ext").replace(" ", "").split(',')
|
|
69
|
+
debug.add(self.id, 'Excluded (ext):', str(excluded))
|
|
70
|
+
debug.add(self.id, 'Force exclude:', str(config.get("llama.idx.excluded.force")))
|
|
71
|
+
debug.add(self.id, 'Custom metadata:', str(config.get("llama.idx.custom_meta")))
|
|
75
72
|
|
|
76
73
|
# ctx
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
last_str = "-"
|
|
80
|
-
|
|
81
|
-
if last_ctx > 0:
|
|
82
|
-
last_str = datetime.datetime.fromtimestamp(last_ctx).strftime('%Y-%m-%d %H:%M:%S') + " (" + str(last_ctx) + ")"
|
|
83
|
-
self.window.core.debug.add(self.id, 'CTX [db.last]:', str(last_str))
|
|
84
|
-
|
|
85
|
-
# indexes
|
|
86
|
-
"""
|
|
87
|
-
indexes = self.window.core.idx.get_all()
|
|
88
|
-
for key in list(indexes):
|
|
89
|
-
path = os.path.join(self.window.core.config.get_user_dir('idx'), key)
|
|
90
|
-
idx = indexes[key]
|
|
91
|
-
self.window.core.debug.add(self.id, '----', '')
|
|
92
|
-
idx_data = {
|
|
93
|
-
'id': idx.id,
|
|
94
|
-
'store': idx.store,
|
|
95
|
-
'path': path,
|
|
96
|
-
'items': len(idx.items),
|
|
97
|
-
}
|
|
98
|
-
self.window.core.debug.add(self.id, 'IDX: [' + str(key) + ']', str(idx_data))
|
|
99
|
-
|
|
100
|
-
# files
|
|
101
|
-
items = idx.items
|
|
102
|
-
for item_id in items:
|
|
103
|
-
item = items[item_id]
|
|
104
|
-
indexed_dt = datetime.datetime.fromtimestamp(item['indexed_ts'])
|
|
105
|
-
data = {
|
|
106
|
-
'id': item['id'],
|
|
107
|
-
'path': item['path'],
|
|
108
|
-
'indexed_at': str(item['indexed_ts']) + ' (' + str(indexed_dt) + ')',
|
|
109
|
-
'file_id': item_id,
|
|
110
|
-
}
|
|
111
|
-
self.window.core.debug.add(self.id, item_id, str(data))
|
|
112
|
-
"""
|
|
74
|
+
debug.add(self.id, 'CTX [auto]:', str(config.get("llama.idx.auto")))
|
|
75
|
+
last_ctx = int(config.get("llama.idx.db.last"))
|
|
76
|
+
last_str = "-" if last_ctx <= 0 else f"{datetime.datetime.fromtimestamp(last_ctx).strftime('%Y-%m-%d %H:%M:%S')} ({last_ctx})"
|
|
77
|
+
debug.add(self.id, 'CTX [db.last]:', str(last_str))
|
|
113
78
|
|
|
114
|
-
|
|
79
|
+
debug.end(self.id)
|
pygpt_net/core/debug/kernel.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
class KernelDebug:
|
|
@@ -21,10 +21,13 @@ class KernelDebug:
|
|
|
21
21
|
|
|
22
22
|
def update(self):
|
|
23
23
|
"""Update debug window."""
|
|
24
|
-
self.window.core.debug
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
debug = self.window.core.debug
|
|
25
|
+
kernel_controller = self.window.controller.kernel
|
|
26
|
+
|
|
27
|
+
debug.begin(self.id)
|
|
28
|
+
debug.add(self.id, 'Busy:', str(kernel_controller.busy))
|
|
29
|
+
debug.add(self.id, 'Halt:', str(kernel_controller.halt))
|
|
30
|
+
debug.add(self.id, 'Status:', str(kernel_controller.status))
|
|
31
|
+
debug.add(self.id, 'State:', str(kernel_controller.state))
|
|
32
|
+
debug.add(self.id, 'Stack:', str(kernel_controller.last_stack))
|
|
33
|
+
debug.end(self.id)
|
pygpt_net/core/debug/models.py
CHANGED
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date: 2025.
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import os
|
|
13
13
|
|
|
14
|
-
|
|
15
14
|
class ModelsDebug:
|
|
16
15
|
def __init__(self, window=None):
|
|
17
16
|
"""
|
|
@@ -24,30 +23,36 @@ class ModelsDebug:
|
|
|
24
23
|
|
|
25
24
|
def update(self):
|
|
26
25
|
"""Update debug window."""
|
|
27
|
-
self.window.core.debug
|
|
26
|
+
debug = self.window.core.debug
|
|
27
|
+
models_controller = self.window.controller.models
|
|
28
|
+
models_core = self.window.core.models
|
|
29
|
+
command_core = self.window.core.command
|
|
30
|
+
config_core = self.window.core.config
|
|
31
|
+
|
|
32
|
+
debug.begin(self.id)
|
|
28
33
|
|
|
29
|
-
path = os.path.join(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
path = os.path.join(config_core.path, '', 'models.json')
|
|
35
|
+
debug.add(self.id, 'Models File', str(path))
|
|
36
|
+
debug.add(self.id, 'editor.selected[]', str(models_controller.editor.selected))
|
|
37
|
+
debug.add(self.id, '[func] is_native_enabled()', str(command_core.is_native_enabled()))
|
|
33
38
|
|
|
34
|
-
|
|
39
|
+
debug.add(
|
|
35
40
|
self.id, 'Options',
|
|
36
|
-
str(
|
|
41
|
+
str(models_controller.model.editor.get_options())
|
|
37
42
|
)
|
|
38
43
|
|
|
39
44
|
# models
|
|
40
|
-
for key in
|
|
45
|
+
for key in models_core.items:
|
|
41
46
|
if key == '__meta__':
|
|
42
|
-
|
|
47
|
+
debug.add(self.id, '__meta__', str(models_core.items[key]))
|
|
43
48
|
continue
|
|
44
|
-
|
|
49
|
+
|
|
50
|
+
model = models_core.items[key]
|
|
45
51
|
data = {
|
|
46
52
|
'id': model.id,
|
|
47
53
|
'name': model.name,
|
|
48
54
|
'provider': model.provider,
|
|
49
55
|
'mode': model.mode,
|
|
50
|
-
# 'multimodal': model.multimodal,
|
|
51
56
|
'input': model.input,
|
|
52
57
|
'output': model.output,
|
|
53
58
|
'langchain': model.langchain,
|
|
@@ -58,6 +63,6 @@ class ModelsDebug:
|
|
|
58
63
|
'default': model.default,
|
|
59
64
|
'imported': model.imported,
|
|
60
65
|
}
|
|
61
|
-
|
|
66
|
+
debug.add(self.id, str(key), str(data))
|
|
62
67
|
|
|
63
|
-
|
|
68
|
+
debug.end(self.id)
|
pygpt_net/core/debug/plugins.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
|
|
@@ -22,17 +22,20 @@ class PluginsDebug:
|
|
|
22
22
|
|
|
23
23
|
def update(self):
|
|
24
24
|
"""Update debug window."""
|
|
25
|
-
self.window.core.debug
|
|
25
|
+
debug = self.window.core.debug
|
|
26
|
+
plugins_dict = self.window.core.plugins.plugins
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
debug.begin(self.id)
|
|
29
|
+
|
|
30
|
+
plugins = list(plugins_dict.keys())
|
|
28
31
|
for key in plugins:
|
|
29
|
-
plugin =
|
|
32
|
+
plugin = plugins_dict[key]
|
|
30
33
|
data = {
|
|
31
34
|
'id': plugin.id,
|
|
32
35
|
'name': plugin.name,
|
|
33
36
|
'description': plugin.description,
|
|
34
37
|
'options': plugin.options
|
|
35
38
|
}
|
|
36
|
-
|
|
39
|
+
debug.add(self.id, str(key), str(data))
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
debug.end(self.id)
|
pygpt_net/core/debug/presets.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date: 2025.
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import os
|
|
@@ -39,19 +39,24 @@ class PresetsDebug:
|
|
|
39
39
|
|
|
40
40
|
def update(self):
|
|
41
41
|
"""Update debug window."""
|
|
42
|
-
self.window.core.debug
|
|
42
|
+
debug = self.window.core.debug
|
|
43
|
+
presets_controller = self.window.controller.presets
|
|
44
|
+
presets_core = self.window.core.presets
|
|
45
|
+
config_path = self.window.core.config.path
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
debug.begin(self.id)
|
|
48
|
+
|
|
49
|
+
debug.add(
|
|
45
50
|
self.id, 'Options',
|
|
46
|
-
str(
|
|
51
|
+
str(presets_controller.editor.get_options())
|
|
47
52
|
)
|
|
48
53
|
|
|
49
|
-
|
|
54
|
+
debug.add(self.id, 'selected[]', str(presets_controller.selected))
|
|
50
55
|
|
|
51
|
-
#
|
|
52
|
-
for key in list(dict(
|
|
53
|
-
preset =
|
|
54
|
-
path = os.path.join(
|
|
56
|
+
# Presets
|
|
57
|
+
for key in list(dict(presets_core.items)):
|
|
58
|
+
preset = presets_core.items[key]
|
|
59
|
+
path = os.path.join(config_path, 'presets', f"{key}.json")
|
|
55
60
|
data = {
|
|
56
61
|
'id': key,
|
|
57
62
|
'file': path,
|
|
@@ -75,6 +80,6 @@ class PresetsDebug:
|
|
|
75
80
|
'temperature': preset.temperature,
|
|
76
81
|
'version': preset.version,
|
|
77
82
|
}
|
|
78
|
-
|
|
83
|
+
debug.add(self.id, str(key), str(data))
|
|
79
84
|
|
|
80
|
-
|
|
85
|
+
debug.end(self.id)
|
pygpt_net/core/debug/tabs.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
class TabsDebug:
|
|
@@ -21,29 +21,35 @@ class TabsDebug:
|
|
|
21
21
|
|
|
22
22
|
def update(self):
|
|
23
23
|
"""Update debug window."""
|
|
24
|
-
self.window.core.debug
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
debug = self.window.core.debug
|
|
25
|
+
tabs_controller = self.window.controller.ui.tabs
|
|
26
|
+
tabs_core = self.window.core.tabs
|
|
27
|
+
ctx_output = self.window.core.ctx.output
|
|
28
|
+
ctx_container = self.window.core.ctx.container
|
|
29
|
+
|
|
30
|
+
debug.begin(self.id)
|
|
31
|
+
debug.add(self.id, 'current Col', str(tabs_controller.get_current_column_idx()))
|
|
32
|
+
debug.add(self.id, 'current IDX', str(tabs_controller.get_current_idx()))
|
|
33
|
+
debug.add(self.id, 'current Tab', str(tabs_controller.get_current_tab()))
|
|
34
|
+
debug.add(self.id, 'current PID', str(tabs_controller.get_current_pid()))
|
|
35
|
+
debug.add(self.id, 'current Type', str(tabs_controller.get_current_type()))
|
|
36
|
+
debug.add(self.id, '----', '')
|
|
37
|
+
debug.add(self.id, 'last_pid', str(tabs_core.last_pid))
|
|
38
|
+
debug.add(self.id, 'locked', str(tabs_controller.locked))
|
|
39
|
+
debug.add(self.id, 'col', str(tabs_controller.col))
|
|
40
|
+
debug.add(self.id, 'count(pids)', str(len(tabs_core.pids)))
|
|
41
|
+
debug.add(self.id, 'count(ctx bags)', str(len(ctx_container.bags)))
|
|
42
|
+
debug.add(self.id, '----', '')
|
|
37
43
|
|
|
38
44
|
# PIDs
|
|
39
|
-
for pid in list(
|
|
40
|
-
tab =
|
|
45
|
+
for pid in list(tabs_core.pids):
|
|
46
|
+
tab = tabs_core.pids[pid]
|
|
41
47
|
data = tab.to_dict()
|
|
42
|
-
|
|
48
|
+
debug.add(self.id, f"PID [{pid}]", str(data))
|
|
43
49
|
|
|
44
50
|
# mapping PID => meta.id
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
debug.add(self.id, '----', '')
|
|
52
|
+
debug.add(self.id, 'PID => meta.id', str(ctx_output.mapping))
|
|
53
|
+
debug.add(self.id, '(last) meta.id => PID', str(ctx_output.last_pids))
|
|
54
|
+
debug.add(self.id, '(last) PID', str(ctx_output.last_pid))
|
|
55
|
+
debug.end(self.id)
|
pygpt_net/core/debug/ui.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2025.09.14 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
|
|
@@ -45,30 +45,33 @@ class UIDebug:
|
|
|
45
45
|
:param items: items
|
|
46
46
|
:param name: name
|
|
47
47
|
"""
|
|
48
|
-
self.window.core.debug.add(self.id,
|
|
48
|
+
self.window.core.debug.add(self.id, f"ui.{name}", str(self.map_structure(items)))
|
|
49
49
|
|
|
50
50
|
def update(self):
|
|
51
51
|
"""Update debug window"""
|
|
52
|
-
|
|
52
|
+
# Local references
|
|
53
|
+
debug = self.window.core.debug
|
|
54
|
+
lang_mapping = self.window.controller.lang.mapping.get_mapping()
|
|
55
|
+
ui = self.window.ui
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
self.id, '*lang_mapping',
|
|
56
|
-
str(self.map_structure(self.window.controller.lang.mapping.get_mapping(), True))
|
|
57
|
-
)
|
|
57
|
+
debug.begin(self.id)
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
self.update_section(self.window.ui.debug, 'debug')
|
|
61
|
-
self.update_section(self.window.ui.dialog, 'dialog')
|
|
62
|
-
self.update_section(self.window.ui.editor, 'editor')
|
|
63
|
-
self.update_section(self.window.ui.groups, 'groups')
|
|
64
|
-
self.update_section(self.window.ui.hooks, 'hooks')
|
|
65
|
-
self.update_section(self.window.ui.menu, 'menu')
|
|
66
|
-
self.update_section(self.window.ui.models, 'models')
|
|
67
|
-
self.update_section(self.window.ui.nodes, 'nodes')
|
|
68
|
-
self.update_section(self.window.ui.notepad, 'notepad')
|
|
69
|
-
self.update_section(self.window.ui.paths, 'paths')
|
|
70
|
-
self.update_section(self.window.ui.plugin_addon, 'plugin_addon')
|
|
71
|
-
self.update_section(self.window.ui.splitters, 'splitters')
|
|
72
|
-
self.update_section(self.window.ui.tabs, 'tabs')
|
|
59
|
+
debug.add(self.id, '*lang_mapping', str(self.map_structure(lang_mapping, True)))
|
|
73
60
|
|
|
74
|
-
|
|
61
|
+
# Update sections using local 'ui' reference
|
|
62
|
+
self.update_section(ui.config, 'config')
|
|
63
|
+
self.update_section(ui.debug, 'debug')
|
|
64
|
+
self.update_section(ui.dialog, 'dialog')
|
|
65
|
+
self.update_section(ui.editor, 'editor')
|
|
66
|
+
self.update_section(ui.groups, 'groups')
|
|
67
|
+
self.update_section(ui.hooks, 'hooks')
|
|
68
|
+
self.update_section(ui.menu, 'menu')
|
|
69
|
+
self.update_section(ui.models, 'models')
|
|
70
|
+
self.update_section(ui.nodes, 'nodes')
|
|
71
|
+
self.update_section(ui.notepad, 'notepad')
|
|
72
|
+
self.update_section(ui.paths, 'paths')
|
|
73
|
+
self.update_section(ui.plugin_addon, 'plugin_addon')
|
|
74
|
+
self.update_section(ui.splitters, 'splitters')
|
|
75
|
+
self.update_section(ui.tabs, 'tabs')
|
|
76
|
+
|
|
77
|
+
debug.end(self.id)
|
|
@@ -140,9 +140,8 @@ class FakeOpenAIStream:
|
|
|
140
140
|
# Chat: often the first delta with a role
|
|
141
141
|
if api == "chat" and cfg.include_chat_role:
|
|
142
142
|
prefix_payloads.append(self._wrap_chat_delta({"role": "assistant", "content": ""}))
|
|
143
|
-
# Code: we start with ```python\n
|
|
144
143
|
if chunk == "code":
|
|
145
|
-
prefix_payloads.append(self._wrap_payload(cfg, "
|
|
144
|
+
prefix_payloads.append(self._wrap_payload(cfg, ""))
|
|
146
145
|
|
|
147
146
|
self._code_mode = (chunk == "code")
|
|
148
147
|
return prefix_payloads, sleep_dt
|