pygpt-net 2.6.19.post1__py3-none-any.whl → 2.6.20__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 +5 -0
- pygpt_net/__init__.py +1 -1
- pygpt_net/app.py +3 -1
- pygpt_net/data/config/config.json +2 -2
- pygpt_net/data/config/models.json +2 -2
- pygpt_net/plugin/server/__init__.py +12 -0
- pygpt_net/plugin/server/config.py +301 -0
- pygpt_net/plugin/server/plugin.py +111 -0
- pygpt_net/plugin/server/worker.py +1057 -0
- pygpt_net/ui/base/config_dialog.py +17 -3
- pygpt_net/ui/widget/option/checkbox.py +16 -2
- {pygpt_net-2.6.19.post1.dist-info → pygpt_net-2.6.20.dist-info}/METADATA +19 -2
- {pygpt_net-2.6.19.post1.dist-info → pygpt_net-2.6.20.dist-info}/RECORD +16 -12
- {pygpt_net-2.6.19.post1.dist-info → pygpt_net-2.6.20.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.19.post1.dist-info → pygpt_net-2.6.20.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.19.post1.dist-info → pygpt_net-2.6.20.dist-info}/entry_points.txt +0 -0
|
@@ -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.08.
|
|
9
|
+
# Updated Date: 2025.08.22 10:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from PySide6.QtCore import Qt
|
|
@@ -91,6 +91,20 @@ class BaseConfigDialog:
|
|
|
91
91
|
|
|
92
92
|
return widgets
|
|
93
93
|
|
|
94
|
+
def trans_or_not(self, label: str):
|
|
95
|
+
"""
|
|
96
|
+
Translate label or return it as is if translation is not available
|
|
97
|
+
|
|
98
|
+
:param label: Label to translate
|
|
99
|
+
:return: Translated label or original if not found
|
|
100
|
+
"""
|
|
101
|
+
txt = trans(label)
|
|
102
|
+
if txt == label:
|
|
103
|
+
if txt.startswith("dictionary."):
|
|
104
|
+
# get only last part after the dot
|
|
105
|
+
txt = txt.split('.')[-1].capitalize()
|
|
106
|
+
return txt
|
|
107
|
+
|
|
94
108
|
def add_option(self, widget: QWidget, option: dict) -> QHBoxLayout:
|
|
95
109
|
"""
|
|
96
110
|
Add option
|
|
@@ -105,7 +119,7 @@ class BaseConfigDialog:
|
|
|
105
119
|
label_key = f'{label}.label'
|
|
106
120
|
nodes = self.window.ui.nodes
|
|
107
121
|
|
|
108
|
-
txt =
|
|
122
|
+
txt = self.trans_or_not(label)
|
|
109
123
|
if extra.get('bold'):
|
|
110
124
|
nodes[label_key] = TitleLabel(txt)
|
|
111
125
|
else:
|
|
@@ -151,7 +165,7 @@ class BaseConfigDialog:
|
|
|
151
165
|
extra = option.get('extra') or {}
|
|
152
166
|
nodes = self.window.ui.nodes
|
|
153
167
|
|
|
154
|
-
txt =
|
|
168
|
+
txt = self.trans_or_not(label)
|
|
155
169
|
if extra.get('bold'):
|
|
156
170
|
nodes[label_key] = TitleLabel(txt)
|
|
157
171
|
else:
|
|
@@ -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.08.22 10:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from PySide6.QtGui import QIcon
|
|
@@ -50,7 +50,7 @@ class OptionCheckbox(QWidget):
|
|
|
50
50
|
if self.option is not None:
|
|
51
51
|
if "label" in self.option and self.option["label"] is not None \
|
|
52
52
|
and self.option["label"] != "":
|
|
53
|
-
self.title =
|
|
53
|
+
self.title = self.trans_or_not(self.option["label"])
|
|
54
54
|
if "value" in self.option:
|
|
55
55
|
self.value = self.option["value"]
|
|
56
56
|
if "real_time" in self.option:
|
|
@@ -90,6 +90,20 @@ class OptionCheckbox(QWidget):
|
|
|
90
90
|
|
|
91
91
|
#self.setLayout(self.layout)
|
|
92
92
|
|
|
93
|
+
def trans_or_not(self, label: str):
|
|
94
|
+
"""
|
|
95
|
+
Translate label or return it as is if translation is not available
|
|
96
|
+
|
|
97
|
+
:param label: Label to translate
|
|
98
|
+
:return: Translated label or original if not found
|
|
99
|
+
"""
|
|
100
|
+
txt = trans(label)
|
|
101
|
+
if txt == label:
|
|
102
|
+
if txt.startswith("dictionary."):
|
|
103
|
+
# get only last part after the dot
|
|
104
|
+
txt = txt.split('.')[-1].capitalize()
|
|
105
|
+
return txt
|
|
106
|
+
|
|
93
107
|
def setIcon(self, icon: str):
|
|
94
108
|
"""
|
|
95
109
|
Set icon
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pygpt-net
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.20
|
|
4
4
|
Summary: Desktop AI Assistant powered by: OpenAI GPT-5, o1, o3, GPT-4, Gemini, Claude, Grok, DeepSeek, and other models supported by Llama Index, and Ollama. Chatbot, agents, completion, image generation, vision analysis, speech-to-text, plugins, internet access, file handling, command execution and more.
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: py_gpt,py-gpt,pygpt,desktop,app,o1,o3,gpt-5,gpt,gpt4,gpt-4o,gpt-4v,gpt3.5,gpt-4,gpt-4-vision,gpt-3.5,llama3,mistral,gemini,grok,deepseek,bielik,claude,tts,whisper,vision,chatgpt,dall-e,chat,chatbot,assistant,text completion,image generation,ai,api,openai,api key,langchain,llama-index,ollama,presets,ui,qt,pyside
|
|
@@ -23,6 +23,7 @@ Requires-Dist: PySide6 (==6.9.1)
|
|
|
23
23
|
Requires-Dist: Pygments (>=2.19.2,<3.0.0)
|
|
24
24
|
Requires-Dist: SQLAlchemy (>=2.0.41,<3.0.0)
|
|
25
25
|
Requires-Dist: SpeechRecognition (>=3.14.3,<4.0.0)
|
|
26
|
+
Requires-Dist: Telethon (>=1.40.0,<2.0.0)
|
|
26
27
|
Requires-Dist: anthropic (>=0.54.0,<0.55.0)
|
|
27
28
|
Requires-Dist: azure-core (>=1.34.0,<2.0.0)
|
|
28
29
|
Requires-Dist: beautifulsoup4 (>=4.13.4,<5.0.0)
|
|
@@ -80,6 +81,7 @@ Requires-Dist: openai-agents (>=0.2.3,<0.3.0)
|
|
|
80
81
|
Requires-Dist: opencv-python (>=4.11.0.86,<5.0.0.0)
|
|
81
82
|
Requires-Dist: packaging (>=24.2,<25.0)
|
|
82
83
|
Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
|
84
|
+
Requires-Dist: paramiko (>=4.0.0,<5.0.0)
|
|
83
85
|
Requires-Dist: pillow (>=10.4.0,<11.0.0)
|
|
84
86
|
Requires-Dist: pinecone-client (>=3.2.2,<4.0.0)
|
|
85
87
|
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
|
@@ -109,7 +111,7 @@ Description-Content-Type: text/markdown
|
|
|
109
111
|
|
|
110
112
|
[](https://snapcraft.io/pygpt)
|
|
111
113
|
|
|
112
|
-
Release: **2.6.
|
|
114
|
+
Release: **2.6.20** | build: **2025-08-22** | Python: **>=3.10, <3.14**
|
|
113
115
|
|
|
114
116
|
> Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
|
|
115
117
|
>
|
|
@@ -1454,6 +1456,8 @@ The following plugins are currently available, and model can use them instantly:
|
|
|
1454
1456
|
|
|
1455
1457
|
- `Serial port / USB` - plugin provides commands for reading and sending data to USB ports.
|
|
1456
1458
|
|
|
1459
|
+
- `Server (SSH/FTP)` - Connect to remote servers using FTP, SFTP, and SSH. Execute remote commands, upload, download, and more.
|
|
1460
|
+
|
|
1457
1461
|
- `Slack` - Handle users, conversations, messages, and files on Slack.
|
|
1458
1462
|
|
|
1459
1463
|
- `System Prompt Extra (append)` - appends additional system prompts (extra data) from a list to every current system prompt. You can enhance every system prompt with extra instructions that will be automatically appended to the system prompt.
|
|
@@ -1802,6 +1806,14 @@ You can send commands to, for example, an Arduino or any other controllers using
|
|
|
1802
1806
|
|
|
1803
1807
|
Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#serial-port-usb
|
|
1804
1808
|
|
|
1809
|
+
## Server (SSH/FTP)
|
|
1810
|
+
|
|
1811
|
+
The Server plugin provides integration for remote server management via SSH, SFTP, and FTP protocols. This plugin allows executing commands, transferring files, and managing directories on remote servers.
|
|
1812
|
+
|
|
1813
|
+
For security reasons, the model will not see any credentials, only the server name and port fields (see the docs)
|
|
1814
|
+
|
|
1815
|
+
Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#server-ssh-ftp
|
|
1816
|
+
|
|
1805
1817
|
## Slack
|
|
1806
1818
|
|
|
1807
1819
|
The Slack plugin integrates with the Slack Web API, enabling interaction with Slack workspaces through the application. This plugin supports OAuth2 for authentication, which allows for seamless integration with Slack services, enabling actions such as posting messages, retrieving users, and managing conversations.
|
|
@@ -3526,6 +3538,11 @@ may consume additional tokens that are not displayed in the main window.
|
|
|
3526
3538
|
|
|
3527
3539
|
## Recent changes:
|
|
3528
3540
|
|
|
3541
|
+
**2.6.20 (2025-08-22)**
|
|
3542
|
+
|
|
3543
|
+
- Added a new plugin: Server (FTP/SSH) - connect to remote servers using FTP, SFTP, and SSH. Execute remote commands, upload, download, and more (beta).
|
|
3544
|
+
- Added support for Wayland in Snap/compiled versions.
|
|
3545
|
+
|
|
3529
3546
|
**2.6.19 (2025-08-22)**
|
|
3530
3547
|
|
|
3531
3548
|
- Fixed: added prevention for summarizing an empty context.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
pygpt_net/CHANGELOG.txt,sha256=
|
|
1
|
+
pygpt_net/CHANGELOG.txt,sha256=BH7azoY3n3_-wGzntMHMYEe-aGuRBWTo7MOiIEYApvo,100907
|
|
2
2
|
pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
|
|
3
|
-
pygpt_net/__init__.py,sha256=
|
|
4
|
-
pygpt_net/app.py,sha256=
|
|
3
|
+
pygpt_net/__init__.py,sha256=p67s29QpmIKCBG1A-IWqeqPeEFADmqpekr3TLVnjzaI,1373
|
|
4
|
+
pygpt_net/app.py,sha256=LEGL0ryTsLMZnP7rloMIRvTOr6BtpUT-sh9tzHVvqfM,21106
|
|
5
5
|
pygpt_net/config.py,sha256=LCKrqQfePVNrAvH3EY_1oZx1Go754sDoyUneJ0iGWFI,16660
|
|
6
6
|
pygpt_net/container.py,sha256=NsMSHURaEC_eW8vrCNdztwqkxB7jui3yVlzUOMYvCHg,4124
|
|
7
7
|
pygpt_net/controller/__init__.py,sha256=UAYJmyXJG1_kawo23FRH0IjU8S8YBbIuJrPkrsOy9Eo,6199
|
|
@@ -345,8 +345,8 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
|
|
|
345
345
|
pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
|
|
346
346
|
pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
|
|
347
347
|
pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
|
|
348
|
-
pygpt_net/data/config/config.json,sha256=
|
|
349
|
-
pygpt_net/data/config/models.json,sha256=
|
|
348
|
+
pygpt_net/data/config/config.json,sha256=Sm0utuUMmq_Dt7bjtSWfGlSIwMYUaA8EaRp3CDDBI0c,24924
|
|
349
|
+
pygpt_net/data/config/models.json,sha256=r86GEcMHPDv1d4LAT2_81ArNT4BGSEs5uDGXQ-j4vPA,109650
|
|
350
350
|
pygpt_net/data/config/modes.json,sha256=M882iiqX_R2sNQl9cqZ3k-uneEvO9wpARtHRMLx_LHw,2265
|
|
351
351
|
pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
|
|
352
352
|
pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
|
|
@@ -1936,6 +1936,10 @@ pygpt_net/plugin/openai_vision/worker.py,sha256=KhpLurNfYg6eVjRlJ0ijEh6Z2ZZZyOKY
|
|
|
1936
1936
|
pygpt_net/plugin/real_time/__init__.py,sha256=vBIhdxwwT5kc2yth5sjjbW2OjiBlMTqdCRrlh_mjNvM,510
|
|
1937
1937
|
pygpt_net/plugin/real_time/config.py,sha256=vgP33hiz5-mLF9WvJDOtCZx_TZrqo-zlgtVINRtpuHM,2128
|
|
1938
1938
|
pygpt_net/plugin/real_time/plugin.py,sha256=PTMe2KnYnFGW3Y2g_nEtHH6uT_4OpvYlvcM2r8xoucQ,5027
|
|
1939
|
+
pygpt_net/plugin/server/__init__.py,sha256=EnwWbtAF0hUV-Ck-Qm-DOt7jEkYDR0DN1F0PxTco7bo,510
|
|
1940
|
+
pygpt_net/plugin/server/config.py,sha256=rRSOrdN7ciuTlHeCSHtNgjn1lwmVAISeqrD5LYLLr5g,11959
|
|
1941
|
+
pygpt_net/plugin/server/plugin.py,sha256=kepeXQkZiz5GGDyKA1ebtMXs2Cvq0DnqQ34gFtH1mdI,3087
|
|
1942
|
+
pygpt_net/plugin/server/worker.py,sha256=fHPRlugy2HKrQeC-KsgGzaJ93SRYspVS-NdUoCdfoJY,43847
|
|
1939
1943
|
pygpt_net/plugin/slack/__init__.py,sha256=tvF6upS93L61NRbkQmscSJXM7ZzPlmVj16mVHUM-NHU,510
|
|
1940
1944
|
pygpt_net/plugin/slack/config.py,sha256=cA6VrABsGEITEHXse10qk7foLvPp3wiGC4yVRJuo794,14139
|
|
1941
1945
|
pygpt_net/plugin/slack/plugin.py,sha256=lusdnwrSjh326Ll4Np1eLZP1gWV8HKQe13Ns2jTrJfk,3278
|
|
@@ -2250,7 +2254,7 @@ pygpt_net/tools/translator/ui/dialogs.py,sha256=qC-dCNtOLbOe-h586iBmsBTlv4KlUoxC
|
|
|
2250
2254
|
pygpt_net/tools/translator/ui/widgets.py,sha256=2wQa1T0oWAkoQGTDntzFUE6r1slW-an5uretGxMAJeo,17540
|
|
2251
2255
|
pygpt_net/ui/__init__.py,sha256=OoyVKGWLxPSlwTnEJ-fpwe5EH1GLdRGbTaNHwDoJ7PI,9313
|
|
2252
2256
|
pygpt_net/ui/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2253
|
-
pygpt_net/ui/base/config_dialog.py,sha256=
|
|
2257
|
+
pygpt_net/ui/base/config_dialog.py,sha256=uDD7YOf1vyP8YKyakE8SY6X7i12RFvNDdqyrAoG_BWs,9071
|
|
2254
2258
|
pygpt_net/ui/base/context_menu.py,sha256=WqFYyAXJ0fguJ5LF5uOTSLyC38-DbewV2cDJVBYNWyk,4369
|
|
2255
2259
|
pygpt_net/ui/base/flow_layout.py,sha256=t6TeNSdmScs0NQKlIdzbFmR6oLogekzJGKPOYJUvXls,2803
|
|
2256
2260
|
pygpt_net/ui/dialog/__init__.py,sha256=1SGZ5i2G1UnKQpyj_HYkN0t-HLepD6jU_ICw1waaxlk,488
|
|
@@ -2405,7 +2409,7 @@ pygpt_net/ui/widget/lists/profile.py,sha256=DJXiD8mvyjM0Xon7d31heKppLPzR_lAg1NbH
|
|
|
2405
2409
|
pygpt_net/ui/widget/lists/settings.py,sha256=ZMOPvpu_h3NMQ2WTb5SfoAmSmBTW_lbtm7M-oAp1zA8,1052
|
|
2406
2410
|
pygpt_net/ui/widget/lists/uploaded.py,sha256=u7OJNW1R-7JBplQohKHA89P7BQ2CmLVnVTrlNNvuEZk,4382
|
|
2407
2411
|
pygpt_net/ui/widget/option/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
|
|
2408
|
-
pygpt_net/ui/widget/option/checkbox.py,sha256
|
|
2412
|
+
pygpt_net/ui/widget/option/checkbox.py,sha256=vt7rxy0jH-sCZzPXsWpY_AmGRNY6R8xxhrE-9YiQ1uc,3992
|
|
2409
2413
|
pygpt_net/ui/widget/option/checkbox_list.py,sha256=mIF8IT8S3It_Ajfbq7iGSqn3he8JUqxGMQ9_HWF_xzs,5821
|
|
2410
2414
|
pygpt_net/ui/widget/option/cmd.py,sha256=njMDaswRDHxJrkOMjPAYNOoVPhS_oCfShYDjNdxr0Ps,5828
|
|
2411
2415
|
pygpt_net/ui/widget/option/combo.py,sha256=g1UAi8Y5-eF-Pi1xA0xoEDfEIfXjI-RRj9VP-FFqyFA,4891
|
|
@@ -2439,8 +2443,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=xGI-47bZ5M_vf_jMc2R9sB1-vuHJbgd5FxE5t
|
|
|
2439
2443
|
pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
|
|
2440
2444
|
pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
|
|
2441
2445
|
pygpt_net/utils.py,sha256=GBAXOpp_Wjfu7Al7TnTV62-R-JPMiP9GuPXLJ0HmeJU,8906
|
|
2442
|
-
pygpt_net-2.6.
|
|
2443
|
-
pygpt_net-2.6.
|
|
2444
|
-
pygpt_net-2.6.
|
|
2445
|
-
pygpt_net-2.6.
|
|
2446
|
-
pygpt_net-2.6.
|
|
2446
|
+
pygpt_net-2.6.20.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
|
|
2447
|
+
pygpt_net-2.6.20.dist-info/METADATA,sha256=04RWfR_eAo_7cTA2pOW6b6DgJYrMwmokVmUfqVcCjlU,159861
|
|
2448
|
+
pygpt_net-2.6.20.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
2449
|
+
pygpt_net-2.6.20.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
|
|
2450
|
+
pygpt_net-2.6.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|