pygpt-net 2.4.37__py3-none-any.whl → 2.4.42__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.
- CHANGELOG.md +37 -0
- README.md +176 -182
- pygpt_net/CHANGELOG.txt +37 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +3 -1
- pygpt_net/controller/__init__.py +7 -3
- pygpt_net/controller/access/control.py +1 -1
- pygpt_net/controller/access/voice.py +11 -5
- pygpt_net/controller/agent/experts.py +11 -6
- pygpt_net/controller/agent/legacy.py +8 -6
- pygpt_net/controller/agent/llama.py +4 -2
- pygpt_net/controller/assistant/__init__.py +9 -4
- pygpt_net/controller/assistant/batch.py +38 -21
- pygpt_net/controller/assistant/editor.py +7 -6
- pygpt_net/controller/assistant/files.py +23 -7
- pygpt_net/controller/assistant/store.py +20 -7
- pygpt_net/controller/assistant/threads.py +34 -8
- pygpt_net/controller/attachment.py +29 -10
- pygpt_net/controller/audio/__init__.py +26 -5
- pygpt_net/controller/calendar/__init__.py +23 -4
- pygpt_net/controller/calendar/note.py +57 -11
- pygpt_net/controller/camera.py +4 -12
- pygpt_net/controller/chat/__init__.py +5 -3
- pygpt_net/controller/chat/attachment.py +34 -7
- pygpt_net/controller/chat/audio.py +2 -2
- pygpt_net/controller/chat/command.py +4 -2
- pygpt_net/controller/chat/common.py +11 -4
- pygpt_net/controller/chat/files.py +10 -3
- pygpt_net/controller/chat/image.py +17 -5
- pygpt_net/controller/chat/input.py +10 -7
- pygpt_net/controller/chat/output.py +21 -6
- pygpt_net/controller/chat/render.py +100 -21
- pygpt_net/controller/chat/response.py +34 -7
- pygpt_net/controller/chat/stream.py +4 -2
- pygpt_net/controller/chat/text.py +6 -4
- pygpt_net/controller/command.py +11 -3
- pygpt_net/controller/config/__init__.py +34 -6
- pygpt_net/controller/config/field/checkbox.py +7 -4
- pygpt_net/controller/config/field/cmd.py +7 -5
- pygpt_net/controller/config/field/combo.py +14 -6
- pygpt_net/controller/config/field/dictionary.py +14 -11
- pygpt_net/controller/config/field/input.py +9 -6
- pygpt_net/controller/config/field/slider.py +11 -8
- pygpt_net/controller/config/field/textarea.py +8 -5
- pygpt_net/controller/config/placeholder.py +66 -21
- pygpt_net/controller/ctx/__init__.py +138 -49
- pygpt_net/controller/ctx/common.py +15 -4
- pygpt_net/controller/ctx/extra.py +11 -3
- pygpt_net/controller/ctx/summarizer.py +24 -5
- pygpt_net/controller/debug/__init__.py +27 -6
- pygpt_net/controller/dialogs/confirm.py +34 -7
- pygpt_net/controller/dialogs/debug.py +4 -2
- pygpt_net/controller/dialogs/info.py +7 -2
- pygpt_net/controller/files.py +48 -10
- pygpt_net/controller/finder.py +11 -5
- pygpt_net/controller/idx/__init__.py +10 -3
- pygpt_net/controller/idx/common.py +4 -2
- pygpt_net/controller/idx/indexer.py +25 -17
- pygpt_net/controller/idx/settings.py +9 -3
- pygpt_net/controller/kernel/__init__.py +34 -8
- pygpt_net/controller/kernel/reply.py +12 -3
- pygpt_net/controller/kernel/stack.py +5 -3
- pygpt_net/controller/lang/custom.py +2 -7
- pygpt_net/controller/lang/mapping.py +5 -3
- pygpt_net/controller/layout.py +2 -2
- pygpt_net/controller/mode.py +16 -4
- pygpt_net/controller/model/__init__.py +14 -3
- pygpt_net/controller/model/editor.py +8 -3
- pygpt_net/controller/notepad.py +26 -12
- pygpt_net/controller/painter/capture.py +23 -4
- pygpt_net/controller/painter/common.py +9 -7
- pygpt_net/controller/plugins/__init__.py +19 -5
- pygpt_net/controller/plugins/presets.py +15 -6
- pygpt_net/controller/plugins/settings.py +9 -3
- pygpt_net/controller/presets/__init__.py +55 -16
- pygpt_net/controller/presets/editor.py +26 -10
- pygpt_net/controller/settings/__init__.py +3 -2
- pygpt_net/controller/settings/editor.py +29 -7
- pygpt_net/controller/settings/profile.py +22 -5
- pygpt_net/controller/theme/__init__.py +54 -12
- pygpt_net/controller/theme/common.py +24 -2
- pygpt_net/controller/theme/markdown.py +32 -16
- pygpt_net/controller/theme/menu.py +26 -5
- pygpt_net/controller/theme/nodes.py +2 -5
- pygpt_net/controller/tools/__init__.py +40 -2
- pygpt_net/controller/ui/__init__.py +4 -6
- pygpt_net/controller/ui/mode.py +16 -21
- pygpt_net/controller/ui/tabs.py +363 -65
- pygpt_net/core/access/actions.py +6 -4
- pygpt_net/core/access/shortcuts.py +4 -3
- pygpt_net/core/access/voice.py +6 -5
- pygpt_net/core/agents/legacy.py +4 -2
- pygpt_net/core/agents/memory.py +7 -2
- pygpt_net/core/agents/observer/evaluation.py +15 -7
- pygpt_net/core/agents/provider.py +9 -4
- pygpt_net/core/agents/runner.py +61 -15
- pygpt_net/core/agents/tools.py +23 -5
- pygpt_net/core/assistants/__init__.py +6 -4
- pygpt_net/core/assistants/files.py +35 -12
- pygpt_net/core/assistants/store.py +20 -10
- pygpt_net/core/attachments/__init__.py +54 -15
- pygpt_net/core/attachments/context.py +92 -29
- pygpt_net/core/audio/__init__.py +74 -3
- pygpt_net/core/audio/context.py +7 -2
- pygpt_net/core/audio/whisper.py +37 -0
- pygpt_net/core/bridge/__init__.py +22 -6
- pygpt_net/core/bridge/context.py +5 -3
- pygpt_net/core/bridge/worker.py +2 -2
- pygpt_net/core/calendar/__init__.py +57 -11
- pygpt_net/core/chain/__init__.py +8 -2
- pygpt_net/core/chain/chat.py +10 -8
- pygpt_net/core/chain/completion.py +10 -7
- pygpt_net/core/command.py +62 -17
- pygpt_net/core/ctx/__init__.py +260 -58
- pygpt_net/core/ctx/bag.py +25 -4
- pygpt_net/core/ctx/container.py +28 -17
- pygpt_net/core/ctx/idx.py +45 -8
- pygpt_net/core/ctx/output.py +95 -74
- pygpt_net/core/ctx/reply.py +5 -2
- pygpt_net/core/db/__init__.py +8 -7
- pygpt_net/core/db/viewer.py +17 -11
- pygpt_net/core/debug/__init__.py +10 -9
- pygpt_net/core/debug/events.py +22 -10
- pygpt_net/core/debug/tabs.py +9 -3
- pygpt_net/core/docker/__init__.py +11 -5
- pygpt_net/core/docker/builder.py +11 -3
- pygpt_net/core/events/app.py +5 -3
- pygpt_net/core/events/base.py +11 -5
- pygpt_net/core/events/control.py +5 -3
- pygpt_net/core/events/event.py +17 -7
- pygpt_net/core/events/kernel.py +5 -3
- pygpt_net/core/events/render.py +5 -3
- pygpt_net/core/experts/__init__.py +5 -4
- pygpt_net/core/filesystem/__init__.py +52 -34
- pygpt_net/core/filesystem/actions.py +8 -5
- pygpt_net/core/filesystem/editor.py +13 -3
- pygpt_net/core/filesystem/types.py +12 -7
- pygpt_net/core/filesystem/url.py +7 -3
- pygpt_net/core/history.py +3 -2
- pygpt_net/core/idx/__init__.py +48 -27
- pygpt_net/core/idx/chat.py +51 -17
- pygpt_net/core/idx/context.py +6 -2
- pygpt_net/core/idx/indexing.py +107 -42
- pygpt_net/core/idx/llm.py +11 -3
- pygpt_net/core/idx/metadata.py +13 -3
- pygpt_net/core/idx/types/ctx.py +32 -6
- pygpt_net/core/idx/types/external.py +41 -7
- pygpt_net/core/idx/types/files.py +31 -6
- pygpt_net/core/image.py +15 -4
- pygpt_net/core/installer.py +2 -4
- pygpt_net/core/llm/__init__.py +13 -3
- pygpt_net/core/locale.py +34 -8
- pygpt_net/core/models.py +63 -17
- pygpt_net/core/modes.py +11 -13
- pygpt_net/core/notepad.py +10 -5
- pygpt_net/core/plugins.py +31 -19
- pygpt_net/core/presets.py +37 -17
- pygpt_net/core/profile.py +21 -7
- pygpt_net/core/prompt/__init__.py +10 -3
- pygpt_net/core/prompt/custom.py +7 -6
- pygpt_net/core/prompt/template.py +9 -3
- pygpt_net/core/render/base.py +117 -22
- pygpt_net/core/render/markdown/body.py +27 -7
- pygpt_net/core/render/markdown/renderer.py +119 -22
- pygpt_net/core/render/plain/body.py +22 -5
- pygpt_net/core/render/plain/renderer.py +97 -21
- pygpt_net/core/render/web/body.py +75 -25
- pygpt_net/core/render/web/parser.py +3 -1
- pygpt_net/core/render/web/renderer.py +313 -63
- pygpt_net/core/settings.py +10 -5
- pygpt_net/core/tabs/__init__.py +290 -103
- pygpt_net/core/tabs/tab.py +26 -5
- pygpt_net/core/tokens.py +47 -12
- pygpt_net/core/updater/__init__.py +20 -7
- pygpt_net/core/vision/analyzer.py +29 -6
- pygpt_net/core/{web.py → web/__init__.py} +29 -7
- pygpt_net/core/web/helpers.py +237 -0
- pygpt_net/data/config/config.json +15 -4
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/modes.json +3 -3
- pygpt_net/data/config/settings.json +55 -10
- pygpt_net/data/config/settings_section.json +3 -0
- pygpt_net/data/css/style.light.css +1 -0
- pygpt_net/data/css/{web.css → web-blocks.css} +162 -133
- pygpt_net/data/css/{web.light.css → web-blocks.light.css} +7 -0
- pygpt_net/data/css/web-chatgpt.css +350 -0
- pygpt_net/data/css/web-chatgpt.dark.css +64 -0
- pygpt_net/data/css/web-chatgpt.light.css +75 -0
- pygpt_net/data/css/web-chatgpt_wide.css +350 -0
- pygpt_net/data/css/web-chatgpt_wide.dark.css +64 -0
- pygpt_net/data/css/web-chatgpt_wide.light.css +75 -0
- pygpt_net/data/icons/split_screen.svg +1 -0
- pygpt_net/data/locale/locale.de.ini +12 -0
- pygpt_net/data/locale/locale.en.ini +18 -2
- pygpt_net/data/locale/locale.es.ini +12 -0
- pygpt_net/data/locale/locale.fr.ini +12 -0
- pygpt_net/data/locale/locale.it.ini +12 -0
- pygpt_net/data/locale/locale.pl.ini +12 -0
- pygpt_net/data/locale/locale.uk.ini +12 -0
- pygpt_net/data/locale/locale.zh.ini +12 -0
- pygpt_net/data/locale/plugin.cmd_web.de.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.en.ini +22 -10
- pygpt_net/data/locale/plugin.cmd_web.es.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.fr.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.it.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.pl.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.uk.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.zh.ini +2 -0
- pygpt_net/data/locale/plugin.mailer.en.ini +21 -0
- pygpt_net/icons.qrc +1 -0
- pygpt_net/icons_rc.py +165 -136
- pygpt_net/item/ctx.py +58 -25
- pygpt_net/plugin/agent/__init__.py +7 -2
- pygpt_net/plugin/audio_input/simple.py +21 -5
- pygpt_net/plugin/audio_output/__init__.py +9 -1
- pygpt_net/plugin/base/config.py +4 -2
- pygpt_net/plugin/base/plugin.py +75 -23
- pygpt_net/plugin/base/worker.py +42 -11
- pygpt_net/plugin/cmd_code_interpreter/__init__.py +39 -37
- pygpt_net/plugin/cmd_code_interpreter/runner.py +25 -12
- pygpt_net/plugin/cmd_history/config.py +2 -2
- pygpt_net/plugin/cmd_web/__init__.py +48 -9
- pygpt_net/plugin/cmd_web/config.py +135 -41
- pygpt_net/plugin/cmd_web/websearch.py +74 -33
- pygpt_net/plugin/cmd_web/worker.py +142 -13
- pygpt_net/plugin/idx_llama_index/config.py +3 -3
- pygpt_net/plugin/mailer/__init__.py +123 -0
- pygpt_net/plugin/mailer/config.py +149 -0
- pygpt_net/plugin/mailer/runner.py +285 -0
- pygpt_net/plugin/mailer/worker.py +123 -0
- pygpt_net/provider/agents/base.py +5 -2
- pygpt_net/provider/agents/openai.py +4 -2
- pygpt_net/provider/agents/openai_assistant.py +4 -2
- pygpt_net/provider/agents/planner.py +4 -2
- pygpt_net/provider/agents/react.py +4 -2
- pygpt_net/provider/audio_output/openai_tts.py +5 -11
- pygpt_net/provider/core/assistant/base.py +5 -3
- pygpt_net/provider/core/assistant/json_file.py +8 -5
- pygpt_net/provider/core/assistant_file/base.py +4 -3
- pygpt_net/provider/core/assistant_file/db_sqlite/__init__.py +4 -3
- pygpt_net/provider/core/assistant_file/db_sqlite/storage.py +3 -2
- pygpt_net/provider/core/assistant_store/base.py +6 -4
- pygpt_net/provider/core/assistant_store/db_sqlite/__init__.py +5 -4
- pygpt_net/provider/core/assistant_store/db_sqlite/storage.py +5 -3
- pygpt_net/provider/core/attachment/base.py +5 -3
- pygpt_net/provider/core/attachment/json_file.py +4 -3
- pygpt_net/provider/core/calendar/base.py +5 -3
- pygpt_net/provider/core/calendar/db_sqlite/__init__.py +6 -5
- pygpt_net/provider/core/calendar/db_sqlite/storage.py +5 -4
- pygpt_net/provider/core/config/base.py +8 -6
- pygpt_net/provider/core/config/json_file.py +9 -7
- pygpt_net/provider/core/config/patch.py +43 -1
- pygpt_net/provider/core/ctx/base.py +30 -25
- pygpt_net/provider/core/ctx/db_sqlite/__init__.py +59 -34
- pygpt_net/provider/core/ctx/db_sqlite/storage.py +62 -30
- pygpt_net/provider/core/ctx/db_sqlite/utils.py +11 -9
- pygpt_net/provider/core/index/base.py +129 -23
- pygpt_net/provider/core/index/db_sqlite/__init__.py +130 -23
- pygpt_net/provider/core/index/db_sqlite/storage.py +130 -23
- pygpt_net/provider/core/index/db_sqlite/utils.py +4 -2
- pygpt_net/provider/core/mode/base.py +5 -3
- pygpt_net/provider/core/mode/json_file.py +7 -6
- pygpt_net/provider/core/model/base.py +6 -4
- pygpt_net/provider/core/model/json_file.py +9 -7
- pygpt_net/provider/core/notepad/base.py +5 -3
- pygpt_net/provider/core/notepad/db_sqlite/__init__.py +5 -4
- pygpt_net/provider/core/notepad/db_sqlite/storage.py +4 -3
- pygpt_net/provider/core/plugin_preset/base.py +4 -2
- pygpt_net/provider/core/plugin_preset/json_file.py +5 -3
- pygpt_net/provider/core/preset/base.py +6 -4
- pygpt_net/provider/core/preset/json_file.py +9 -9
- pygpt_net/provider/core/prompt/base.py +6 -3
- pygpt_net/provider/core/prompt/json_file.py +11 -6
- pygpt_net/provider/gpt/assistants.py +21 -11
- pygpt_net/provider/gpt/audio.py +6 -5
- pygpt_net/provider/gpt/chat.py +10 -7
- pygpt_net/provider/gpt/completion.py +11 -5
- pygpt_net/provider/gpt/image.py +9 -2
- pygpt_net/provider/gpt/store.py +53 -18
- pygpt_net/provider/gpt/vision.py +17 -11
- pygpt_net/provider/llms/anthropic.py +7 -2
- pygpt_net/provider/llms/azure_openai.py +26 -5
- pygpt_net/provider/llms/base.py +47 -9
- pygpt_net/provider/llms/google.py +7 -2
- pygpt_net/provider/llms/hugging_face.py +13 -3
- pygpt_net/provider/llms/hugging_face_api.py +18 -4
- pygpt_net/provider/llms/local.py +7 -2
- pygpt_net/provider/llms/ollama.py +30 -6
- pygpt_net/provider/llms/openai.py +32 -6
- pygpt_net/provider/vector_stores/__init__.py +45 -14
- pygpt_net/provider/vector_stores/base.py +35 -8
- pygpt_net/provider/vector_stores/chroma.py +13 -3
- pygpt_net/provider/vector_stores/ctx_attachment.py +31 -12
- pygpt_net/provider/vector_stores/elasticsearch.py +12 -3
- pygpt_net/provider/vector_stores/pinecode.py +12 -3
- pygpt_net/provider/vector_stores/redis.py +12 -3
- pygpt_net/provider/vector_stores/simple.py +12 -3
- pygpt_net/provider/vector_stores/temp.py +16 -4
- pygpt_net/provider/web/base.py +10 -3
- pygpt_net/provider/web/google_custom_search.py +9 -3
- pygpt_net/provider/web/microsoft_bing.py +9 -3
- pygpt_net/tools/__init__.py +20 -4
- pygpt_net/tools/audio_transcriber/__init__.py +4 -3
- pygpt_net/tools/base.py +28 -7
- pygpt_net/tools/code_interpreter/__init__.py +177 -77
- pygpt_net/tools/code_interpreter/ui/dialogs.py +21 -103
- pygpt_net/tools/code_interpreter/ui/widgets.py +284 -9
- pygpt_net/tools/html_canvas/__init__.py +81 -25
- pygpt_net/tools/html_canvas/ui/dialogs.py +46 -62
- pygpt_net/tools/html_canvas/ui/widgets.py +96 -3
- pygpt_net/tools/image_viewer/__init__.py +10 -4
- pygpt_net/tools/indexer/__init__.py +8 -7
- pygpt_net/tools/media_player/__init__.py +4 -3
- pygpt_net/tools/text_editor/__init__.py +36 -10
- pygpt_net/ui/base/context_menu.py +2 -2
- pygpt_net/ui/layout/chat/input.py +10 -18
- pygpt_net/ui/layout/chat/output.py +27 -45
- pygpt_net/ui/layout/ctx/ctx_list.py +13 -4
- pygpt_net/ui/layout/toolbox/footer.py +18 -2
- pygpt_net/ui/main.py +2 -2
- pygpt_net/ui/menu/audio.py +12 -1
- pygpt_net/ui/menu/config.py +7 -11
- pygpt_net/ui/menu/debug.py +11 -1
- pygpt_net/ui/menu/theme.py +9 -2
- pygpt_net/ui/widget/filesystem/explorer.py +2 -2
- pygpt_net/ui/widget/lists/context.py +27 -5
- pygpt_net/ui/widget/tabs/Input.py +2 -2
- pygpt_net/ui/widget/tabs/body.py +2 -1
- pygpt_net/ui/widget/tabs/layout.py +195 -0
- pygpt_net/ui/widget/tabs/output.py +218 -55
- pygpt_net/ui/widget/textarea/html.py +11 -1
- pygpt_net/ui/widget/textarea/output.py +10 -1
- pygpt_net/ui/widget/textarea/search_input.py +4 -1
- pygpt_net/ui/widget/textarea/web.py +49 -9
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.42.dist-info}/METADATA +177 -183
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.42.dist-info}/RECORD +340 -325
- /pygpt_net/data/css/{web.dark.css → web-blocks.dark.css} +0 -0
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.42.dist-info}/LICENSE +0 -0
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.42.dist-info}/WHEEL +0 -0
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.42.dist-info}/entry_points.txt +0 -0
pygpt_net/core/debug/__init__.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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 00:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
import os
|
@@ -16,6 +16,7 @@ import traceback
|
|
16
16
|
import logging
|
17
17
|
|
18
18
|
from pathlib import Path
|
19
|
+
from typing import Any, Tuple
|
19
20
|
|
20
21
|
from pygpt_net.config import Config
|
21
22
|
|
@@ -125,7 +126,7 @@ class Debug:
|
|
125
126
|
else:
|
126
127
|
return "unknown"
|
127
128
|
|
128
|
-
def info(self, message:
|
129
|
+
def info(self, message: Any = None, console: bool = True):
|
129
130
|
"""
|
130
131
|
Handle info message
|
131
132
|
|
@@ -139,7 +140,7 @@ class Debug:
|
|
139
140
|
console=console,
|
140
141
|
)
|
141
142
|
|
142
|
-
def debug(self, message:
|
143
|
+
def debug(self, message: Any = None, console: bool = True):
|
143
144
|
"""
|
144
145
|
Handle debug message
|
145
146
|
|
@@ -152,7 +153,7 @@ class Debug:
|
|
152
153
|
console=console,
|
153
154
|
)
|
154
155
|
|
155
|
-
def warning(self, message:
|
156
|
+
def warning(self, message: Any = None, console: bool = True):
|
156
157
|
"""
|
157
158
|
Handle warning message
|
158
159
|
|
@@ -165,7 +166,7 @@ class Debug:
|
|
165
166
|
console=console,
|
166
167
|
)
|
167
168
|
|
168
|
-
def error(self, message:
|
169
|
+
def error(self, message: Any = None, console: bool = True):
|
169
170
|
"""
|
170
171
|
Handle error message
|
171
172
|
|
@@ -178,7 +179,7 @@ class Debug:
|
|
178
179
|
console=console,
|
179
180
|
)
|
180
181
|
|
181
|
-
def log(self, message:
|
182
|
+
def log(self, message: Any = None, level: int = logging.ERROR, console: bool = True):
|
182
183
|
"""
|
183
184
|
Handle logger message (by level), default level is ERROR
|
184
185
|
|
@@ -227,7 +228,7 @@ class Debug:
|
|
227
228
|
except Exception as e:
|
228
229
|
pass
|
229
230
|
|
230
|
-
def parse_exception(self, e = None, limit: int = 4) ->
|
231
|
+
def parse_exception(self, e: Any = None, limit: int = 4) -> Tuple[bool, str]:
|
231
232
|
"""
|
232
233
|
Parse exception traceback
|
233
234
|
|
@@ -268,7 +269,7 @@ class Debug:
|
|
268
269
|
|
269
270
|
return is_sys, data
|
270
271
|
|
271
|
-
def parse_alert(self, msg:
|
272
|
+
def parse_alert(self, msg: Any) -> str:
|
272
273
|
"""
|
273
274
|
Parse alert message
|
274
275
|
|
@@ -317,7 +318,7 @@ class Debug:
|
|
317
318
|
"""
|
318
319
|
self.window.controller.dialogs.debug.end(id)
|
319
320
|
|
320
|
-
def add(self, id: str, k: str, v:
|
321
|
+
def add(self, id: str, k: str, v: Any):
|
321
322
|
"""
|
322
323
|
Append debug entry (debug window)
|
323
324
|
|
pygpt_net/core/debug/events.py
CHANGED
@@ -6,10 +6,17 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 19:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
-
from pygpt_net.core.events import
|
12
|
+
from pygpt_net.core.events import (
|
13
|
+
ControlEvent,
|
14
|
+
AppEvent,
|
15
|
+
Event,
|
16
|
+
KernelEvent,
|
17
|
+
RenderEvent,
|
18
|
+
BaseEvent
|
19
|
+
)
|
13
20
|
|
14
21
|
|
15
22
|
class EventsDebug:
|
@@ -25,19 +32,24 @@ class EventsDebug:
|
|
25
32
|
def update(self):
|
26
33
|
"""Update debug window."""
|
27
34
|
self.window.core.debug.begin(self.id)
|
28
|
-
self.window.core.debug.add(self.id, 'App Events:', str(AppEvent
|
29
|
-
self.window.core.debug.add(self.id, 'Control Events:', str(ControlEvent
|
30
|
-
self.window.core.debug.add(self.id, 'Kernel Events:', str(KernelEvent
|
31
|
-
self.window.core.debug.add(self.id, 'Render Events:', str(RenderEvent
|
32
|
-
self.window.core.debug.add(self.id, 'Plugin Events:', str(self.
|
35
|
+
self.window.core.debug.add(self.id, 'App Events:', str(self.extract_events(AppEvent)))
|
36
|
+
self.window.core.debug.add(self.id, 'Control Events:', str(self.extract_events(ControlEvent)))
|
37
|
+
self.window.core.debug.add(self.id, 'Kernel Events:', str(self.extract_events(KernelEvent)))
|
38
|
+
self.window.core.debug.add(self.id, 'Render Events:', str(self.extract_events(RenderEvent)))
|
39
|
+
self.window.core.debug.add(self.id, 'Plugin Events:', str(self.extract_events(Event)))
|
40
|
+
self.window.core.debug.add(self.id, '----', '')
|
33
41
|
self.window.core.debug.add(self.id, 'Voice Cmds (all):', str(self.window.core.access.voice.commands))
|
34
42
|
self.window.core.debug.add(self.id, 'Voice Cmds (allowed):', str(self.window.core.access.voice.get_commands()))
|
35
43
|
self.window.core.debug.end(self.id)
|
36
44
|
|
37
|
-
def
|
38
|
-
"""
|
45
|
+
def extract_events(self, events: BaseEvent) -> dict:
|
46
|
+
"""
|
47
|
+
Extract events
|
48
|
+
|
49
|
+
:param events: Events class
|
50
|
+
"""
|
39
51
|
result = {}
|
40
|
-
for property, value in vars(
|
52
|
+
for property, value in vars(events).items():
|
41
53
|
if (isinstance(value, str)
|
42
54
|
or isinstance(value, int)
|
43
55
|
or isinstance(value, float)
|
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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 17:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
class TabsDebug:
|
@@ -22,10 +22,15 @@ class TabsDebug:
|
|
22
22
|
def update(self):
|
23
23
|
"""Update debug window."""
|
24
24
|
self.window.core.debug.begin(self.id)
|
25
|
-
self.window.core.debug.add(self.id, 'current
|
25
|
+
self.window.core.debug.add(self.id, 'current Col', str(self.window.controller.ui.tabs.get_current_column_idx()))
|
26
26
|
self.window.core.debug.add(self.id, 'current IDX', str(self.window.controller.ui.tabs.get_current_idx()))
|
27
|
+
self.window.core.debug.add(self.id, 'current Tab', str(self.window.controller.ui.tabs.get_current_tab()))
|
28
|
+
self.window.core.debug.add(self.id, 'current PID', str(self.window.controller.ui.tabs.get_current_pid()))
|
27
29
|
self.window.core.debug.add(self.id, 'current Type', str(self.window.controller.ui.tabs.get_current_type()))
|
30
|
+
self.window.core.debug.add(self.id, '----', '')
|
28
31
|
self.window.core.debug.add(self.id, 'last_pid', str(self.window.core.tabs.last_pid))
|
32
|
+
self.window.core.debug.add(self.id, 'locked', str(self.window.controller.ui.tabs.locked))
|
33
|
+
self.window.core.debug.add(self.id, 'col', str(self.window.controller.ui.tabs.col))
|
29
34
|
self.window.core.debug.add(self.id, 'count(pids)', str(len(self.window.core.tabs.pids)))
|
30
35
|
self.window.core.debug.add(self.id, 'count(ctx bags)', str(len(self.window.core.ctx.container.bags)))
|
31
36
|
self.window.core.debug.add(self.id, '----', '')
|
@@ -37,7 +42,8 @@ class TabsDebug:
|
|
37
42
|
self.window.core.debug.add(self.id, "PID ["+str(pid)+"]", str(data))
|
38
43
|
|
39
44
|
# mapping PID => meta.id
|
45
|
+
self.window.core.debug.add(self.id, '----', '')
|
40
46
|
self.window.core.debug.add(self.id, 'PID => meta.id', str(self.window.core.ctx.output.mapping))
|
41
|
-
self.window.core.debug.add(self.id, '(last)
|
47
|
+
self.window.core.debug.add(self.id, '(last) meta.id => PID', str(self.window.core.ctx.output.last_pids))
|
42
48
|
self.window.core.debug.add(self.id, '(last) PID', str(self.window.core.ctx.output.last_pid))
|
43
49
|
self.window.core.debug.end(self.id)
|
@@ -6,10 +6,12 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 00:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
import os
|
13
|
+
from typing import Optional, Any
|
14
|
+
|
13
15
|
import docker
|
14
16
|
import io
|
15
17
|
import tarfile
|
@@ -65,8 +67,12 @@ class Docker:
|
|
65
67
|
tar_stream.seek(0)
|
66
68
|
return tar_stream
|
67
69
|
|
68
|
-
def is_image(self):
|
69
|
-
"""
|
70
|
+
def is_image(self) -> bool:
|
71
|
+
"""
|
72
|
+
Check if the Docker image exists.
|
73
|
+
|
74
|
+
:return: True if the image exists.
|
75
|
+
"""
|
70
76
|
client = self.get_docker_client()
|
71
77
|
try:
|
72
78
|
client.images.get(self.get_image_name())
|
@@ -334,7 +340,7 @@ class Docker:
|
|
334
340
|
"""
|
335
341
|
return self.plugin.get_option_value('docker_entrypoint')
|
336
342
|
|
337
|
-
def execute(self, cmd: str) -> bytes
|
343
|
+
def execute(self, cmd: str) -> Optional[bytes]:
|
338
344
|
"""
|
339
345
|
Execute command in Docker container.
|
340
346
|
|
@@ -394,7 +400,7 @@ class Docker:
|
|
394
400
|
"""
|
395
401
|
self.signals = signals
|
396
402
|
|
397
|
-
def log(self, msg):
|
403
|
+
def log(self, msg: Any):
|
398
404
|
"""
|
399
405
|
Log the message.
|
400
406
|
|
pygpt_net/core/docker/builder.py
CHANGED
@@ -6,9 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 00:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Any
|
13
|
+
|
12
14
|
from PySide6.QtCore import Signal, Slot, QObject
|
13
15
|
|
14
16
|
from pygpt_net.core.events import RenderEvent
|
@@ -48,13 +50,19 @@ class Builder(QObject):
|
|
48
50
|
|
49
51
|
|
50
52
|
@Slot(object)
|
51
|
-
def handle_build_failed(self, error):
|
52
|
-
"""
|
53
|
+
def handle_build_failed(self, error: Any):
|
54
|
+
"""
|
55
|
+
Handle build failed
|
56
|
+
|
57
|
+
:param error: error
|
58
|
+
"""
|
53
59
|
self.plugin.window.ui.dialogs.alert(str(error))
|
54
60
|
self.plugin.window.update_status(str(error))
|
55
61
|
self.plugin.window.controller.kernel.stop()
|
56
62
|
event = RenderEvent(RenderEvent.END)
|
57
63
|
self.plugin.window.dispatch(event)
|
64
|
+
|
65
|
+
|
58
66
|
class WorkerSignals(BaseSignals):
|
59
67
|
build_finished = Signal()
|
60
68
|
|
pygpt_net/core/events/app.py
CHANGED
@@ -6,9 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional
|
13
|
+
|
12
14
|
from .base import BaseEvent
|
13
15
|
|
14
16
|
class AppEvent(BaseEvent):
|
@@ -39,8 +41,8 @@ class AppEvent(BaseEvent):
|
|
39
41
|
|
40
42
|
def __init__(
|
41
43
|
self,
|
42
|
-
name: str = None,
|
43
|
-
data: dict = None,
|
44
|
+
name: Optional[str] = None,
|
45
|
+
data: Optional[dict] = None,
|
44
46
|
):
|
45
47
|
"""
|
46
48
|
Event object class
|
pygpt_net/core/events/base.py
CHANGED
@@ -6,17 +6,19 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
|
+
|
11
12
|
import json
|
13
|
+
from typing import Optional, Dict, Any
|
12
14
|
|
13
15
|
from pygpt_net.item.ctx import CtxItem
|
14
16
|
|
15
17
|
class BaseEvent:
|
16
18
|
def __init__(
|
17
19
|
self,
|
18
|
-
name: str = None,
|
19
|
-
data: dict = None,
|
20
|
+
name: Optional[str] = None,
|
21
|
+
data: Optional[dict] = None,
|
20
22
|
ctx: CtxItem = None
|
21
23
|
):
|
22
24
|
"""
|
@@ -39,10 +41,14 @@ class BaseEvent:
|
|
39
41
|
|
40
42
|
@property
|
41
43
|
def full_name(self) -> str:
|
42
|
-
"""
|
44
|
+
"""
|
45
|
+
Get full event name
|
46
|
+
|
47
|
+
:return: Full event name
|
48
|
+
"""
|
43
49
|
return self.id + ": " + self.name
|
44
50
|
|
45
|
-
def to_dict(self) ->
|
51
|
+
def to_dict(self) -> Dict[str, Any]:
|
46
52
|
"""Dump event to dict"""
|
47
53
|
return {
|
48
54
|
'name': self.name,
|
pygpt_net/core/events/control.py
CHANGED
@@ -6,9 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional
|
13
|
+
|
12
14
|
from .base import BaseEvent
|
13
15
|
|
14
16
|
|
@@ -73,8 +75,8 @@ class ControlEvent(BaseEvent):
|
|
73
75
|
|
74
76
|
def __init__(
|
75
77
|
self,
|
76
|
-
name: str = None,
|
77
|
-
data: dict = None,
|
78
|
+
name: Optional[str] = None,
|
79
|
+
data: Optional[dict] = None,
|
78
80
|
):
|
79
81
|
"""
|
80
82
|
Event object class
|
pygpt_net/core/events/event.py
CHANGED
@@ -6,10 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
import json
|
13
|
+
from typing import Optional, Dict, Any
|
13
14
|
|
14
15
|
from pygpt_net.item.ctx import CtxItem
|
15
16
|
from .base import BaseEvent
|
@@ -61,9 +62,9 @@ class Event(BaseEvent):
|
|
61
62
|
|
62
63
|
def __init__(
|
63
64
|
self,
|
64
|
-
name: str = None,
|
65
|
-
data: dict = None,
|
66
|
-
ctx: CtxItem = None
|
65
|
+
name: Optional[str] = None,
|
66
|
+
data: Optional[dict] = None,
|
67
|
+
ctx: Optional[CtxItem] = None
|
67
68
|
):
|
68
69
|
"""
|
69
70
|
Event object class
|
@@ -84,8 +85,12 @@ class Event(BaseEvent):
|
|
84
85
|
# internal event, not called from user
|
85
86
|
# internal event is handled synchronously, ctx item has internal flag
|
86
87
|
|
87
|
-
def to_dict(self) ->
|
88
|
-
"""
|
88
|
+
def to_dict(self) -> Dict[str, Any]:
|
89
|
+
"""
|
90
|
+
Dump event to dict
|
91
|
+
|
92
|
+
:return: Event dict
|
93
|
+
"""
|
89
94
|
return {
|
90
95
|
'name': self.name,
|
91
96
|
'data': self.data,
|
@@ -106,5 +111,10 @@ class Event(BaseEvent):
|
|
106
111
|
pass
|
107
112
|
return ""
|
108
113
|
|
109
|
-
def __str__(self):
|
114
|
+
def __str__(self) -> str:
|
115
|
+
"""
|
116
|
+
String representation of event
|
117
|
+
|
118
|
+
:return: Event string
|
119
|
+
"""
|
110
120
|
return self.dump()
|
pygpt_net/core/events/kernel.py
CHANGED
@@ -6,9 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional
|
13
|
+
|
12
14
|
from .base import BaseEvent
|
13
15
|
|
14
16
|
|
@@ -52,8 +54,8 @@ class KernelEvent(BaseEvent):
|
|
52
54
|
|
53
55
|
def __init__(
|
54
56
|
self,
|
55
|
-
name: str = None,
|
56
|
-
data: dict = None,
|
57
|
+
name: Optional[str] = None,
|
58
|
+
data: Optional[dict] = None,
|
57
59
|
):
|
58
60
|
"""
|
59
61
|
Event object class
|
pygpt_net/core/events/render.py
CHANGED
@@ -6,9 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional
|
13
|
+
|
12
14
|
from .base import BaseEvent
|
13
15
|
|
14
16
|
|
@@ -56,8 +58,8 @@ class RenderEvent(BaseEvent):
|
|
56
58
|
|
57
59
|
def __init__(
|
58
60
|
self,
|
59
|
-
name: str = None,
|
60
|
-
data: dict = None,
|
61
|
+
name: Optional[str] = None,
|
62
|
+
data: Optional[dict] = None,
|
61
63
|
):
|
62
64
|
"""
|
63
65
|
Event object class
|
@@ -6,9 +6,10 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Dict, List
|
12
13
|
|
13
14
|
from pygpt_net.core.types import (
|
14
15
|
MODE_AGENT,
|
@@ -90,7 +91,7 @@ class Experts:
|
|
90
91
|
"""
|
91
92
|
return self.window.core.presets.get_by_id(MODE_EXPERT, id)
|
92
93
|
|
93
|
-
def get_experts(self) ->
|
94
|
+
def get_experts(self) -> Dict[str, str]:
|
94
95
|
"""
|
95
96
|
Get experts names with keys
|
96
97
|
|
@@ -191,7 +192,7 @@ class Experts:
|
|
191
192
|
prompt = prompt.replace("{presets}", "\n".join(experts_list))
|
192
193
|
return prompt
|
193
194
|
|
194
|
-
def extract_calls(self, ctx: CtxItem) ->
|
195
|
+
def extract_calls(self, ctx: CtxItem) -> Dict[str, str]:
|
195
196
|
"""
|
196
197
|
Extract expert calls from context output
|
197
198
|
|
@@ -456,7 +457,7 @@ class Experts:
|
|
456
457
|
})
|
457
458
|
self.window.dispatch(event)
|
458
459
|
|
459
|
-
def get_functions(self) ->
|
460
|
+
def get_functions(self) -> List[Dict[str, str]]:
|
460
461
|
"""
|
461
462
|
Append call the expert commands
|
462
463
|
|