pygpt-net 2.6.13__py3-none-any.whl → 2.6.15__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 +11 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/controller/chat/render.py +10 -1
- pygpt_net/controller/plugins/settings.py +10 -1
- pygpt_net/controller/theme/common.py +2 -2
- pygpt_net/controller/ui/tabs.py +5 -1
- pygpt_net/core/agents/observer/evaluation.py +46 -17
- pygpt_net/core/agents/runner.py +2 -4
- pygpt_net/core/experts/experts.py +0 -4
- pygpt_net/core/render/base.py +8 -0
- pygpt_net/core/render/markdown/renderer.py +9 -0
- pygpt_net/core/render/plain/renderer.py +9 -0
- pygpt_net/core/render/web/renderer.py +21 -5
- pygpt_net/data/config/config.json +3 -3
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/locale/locale.de.ini +1 -0
- pygpt_net/data/locale/locale.en.ini +1 -0
- pygpt_net/data/locale/locale.es.ini +1 -0
- pygpt_net/data/locale/locale.fr.ini +1 -0
- pygpt_net/data/locale/locale.it.ini +1 -0
- pygpt_net/data/locale/locale.pl.ini +2 -1
- pygpt_net/data/locale/locale.uk.ini +1 -0
- pygpt_net/data/locale/locale.zh.ini +1 -0
- {pygpt_net-2.6.13.dist-info → pygpt_net-2.6.15.dist-info}/METADATA +13 -2
- {pygpt_net-2.6.13.dist-info → pygpt_net-2.6.15.dist-info}/RECORD +28 -28
- {pygpt_net-2.6.13.dist-info → pygpt_net-2.6.15.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.13.dist-info → pygpt_net-2.6.15.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.13.dist-info → pygpt_net-2.6.15.dist-info}/entry_points.txt +0 -0
pygpt_net/CHANGELOG.txt
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
2.6.15 (2025-08-20)
|
|
2
|
+
|
|
3
|
+
- Added: do not change the context menu font size in text editing.
|
|
4
|
+
- Added: do not reload context items on tab change if already loaded.
|
|
5
|
+
- Fixed: appending of names and avatars in the stream chunk.
|
|
6
|
+
|
|
7
|
+
2.6.14 (2025-08-19)
|
|
8
|
+
|
|
9
|
+
- Fixed: Agent evaluation tool runs even if tools are disabled.
|
|
10
|
+
- Extended agent response evaluation by providing the full context of the output.
|
|
11
|
+
|
|
1
12
|
2.6.13 (2025-08-19)
|
|
2
13
|
|
|
3
14
|
- Fix: Do not load the index in experts if it is not provided.
|
pygpt_net/__init__.py
CHANGED
|
@@ -6,15 +6,15 @@
|
|
|
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.20 00:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
__author__ = "Marcin Szczygliński"
|
|
13
13
|
__copyright__ = "Copyright 2025, Marcin Szczygliński"
|
|
14
14
|
__credits__ = ["Marcin Szczygliński"]
|
|
15
15
|
__license__ = "MIT"
|
|
16
|
-
__version__ = "2.6.
|
|
17
|
-
__build__ = "2025-08-
|
|
16
|
+
__version__ = "2.6.15"
|
|
17
|
+
__build__ = "2025-08-20"
|
|
18
18
|
__maintainer__ = "Marcin Szczygliński"
|
|
19
19
|
__github__ = "https://github.com/szczyglis-dev/py-gpt"
|
|
20
20
|
__report__ = "https://github.com/szczyglis-dev/py-gpt/issues"
|
|
@@ -654,4 +654,13 @@ class Render:
|
|
|
654
654
|
|
|
655
655
|
:param text: Text to read # TODO: move to another class
|
|
656
656
|
"""
|
|
657
|
-
self.window.controller.audio.read_text(text)
|
|
657
|
+
self.window.controller.audio.read_text(text)
|
|
658
|
+
|
|
659
|
+
def get_pid_data(self, pid: int) -> Optional[CtxItem]:
|
|
660
|
+
"""
|
|
661
|
+
Get PID data
|
|
662
|
+
|
|
663
|
+
:param pid: PID
|
|
664
|
+
:return: CtxItem or None
|
|
665
|
+
"""
|
|
666
|
+
return self.instance().get_pid_data(pid)
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
from typing import Any
|
|
13
13
|
|
|
14
|
-
from
|
|
14
|
+
from PySide6.QtWidgets import QApplication
|
|
15
|
+
|
|
16
|
+
from pygpt_net.core.events import Event, KernelEvent
|
|
15
17
|
from pygpt_net.utils import trans
|
|
16
18
|
|
|
17
19
|
|
|
@@ -46,6 +48,10 @@ class Settings:
|
|
|
46
48
|
def open(self):
|
|
47
49
|
"""Open plugin settings dialog"""
|
|
48
50
|
if not self.config_initialized:
|
|
51
|
+
self.window.dispatch(KernelEvent(KernelEvent.STATUS, {
|
|
52
|
+
'status': trans("status.loading")
|
|
53
|
+
}))
|
|
54
|
+
QApplication.processEvents()
|
|
49
55
|
self.setup()
|
|
50
56
|
self.config_initialized = True
|
|
51
57
|
if self.config_dialog:
|
|
@@ -56,6 +62,9 @@ class Settings:
|
|
|
56
62
|
width=self.width,
|
|
57
63
|
height=self.height
|
|
58
64
|
)
|
|
65
|
+
self.window.dispatch(KernelEvent(KernelEvent.STATUS, {
|
|
66
|
+
'status': ""
|
|
67
|
+
}))
|
|
59
68
|
self.config_dialog = True
|
|
60
69
|
|
|
61
70
|
def open_plugin(self, id: str):
|
|
@@ -110,9 +110,9 @@ class Common:
|
|
|
110
110
|
"""
|
|
111
111
|
# get font size
|
|
112
112
|
if element == "font.chat.output":
|
|
113
|
-
return 'font-size: {}px;'.format(self.window.core.config.get('font_size'))
|
|
113
|
+
return 'QTextEdit {{ font-size: {}px; }}'.format(self.window.core.config.get('font_size'))
|
|
114
114
|
elif element == "font.chat.input":
|
|
115
|
-
return 'font-size: {}px;'.format(self.window.core.config.get('font_size.input'))
|
|
115
|
+
return 'QTextEdit {{ font-size: {}px; }}'.format(self.window.core.config.get('font_size.input'))
|
|
116
116
|
elif element == "font.ctx.list":
|
|
117
117
|
return 'font-size: {}px;'.format(self.window.core.config.get('font_size.ctx'))
|
|
118
118
|
elif element == "font.toolbox":
|
pygpt_net/controller/ui/tabs.py
CHANGED
|
@@ -204,7 +204,11 @@ class Tabs:
|
|
|
204
204
|
meta_id = core.ctx.output.prepare_meta(tab)
|
|
205
205
|
meta = core.ctx.get_meta_by_id(meta_id)
|
|
206
206
|
if meta is not None:
|
|
207
|
-
w.controller.
|
|
207
|
+
pid_data = w.controller.chat.render.get_pid_data(tab.pid)
|
|
208
|
+
if not pid_data or not pid_data.loaded:
|
|
209
|
+
w.controller.ctx.load(meta.id)
|
|
210
|
+
else:
|
|
211
|
+
w.controller.ctx.select_on_list_only(meta.id)
|
|
208
212
|
elif tab.type == Tab.TAB_TOOL_PAINTER:
|
|
209
213
|
if core.config.get('vision.capture.enabled'):
|
|
210
214
|
w.controller.camera.enable_capture()
|
|
@@ -132,17 +132,37 @@ class Evaluation:
|
|
|
132
132
|
:param force_prev: force to use previous input
|
|
133
133
|
:return: last user input
|
|
134
134
|
"""
|
|
135
|
-
|
|
135
|
+
last_input = ""
|
|
136
136
|
use_prev = self.window.core.config.get("agent.llama.append_eval", False)
|
|
137
137
|
if force_prev:
|
|
138
138
|
use_prev = True
|
|
139
139
|
for ctx in history:
|
|
140
|
-
if ctx
|
|
140
|
+
if self.is_input(ctx): # ensure ctx is input
|
|
141
141
|
if not use_prev and "agent_evaluate" in ctx.extra: # exclude evaluation inputs
|
|
142
142
|
continue
|
|
143
143
|
if ctx.input:
|
|
144
|
-
|
|
145
|
-
return
|
|
144
|
+
last_input = ctx.input
|
|
145
|
+
return last_input
|
|
146
|
+
|
|
147
|
+
def is_input(self, ctx: CtxItem) -> bool:
|
|
148
|
+
"""
|
|
149
|
+
Check if the context item is an input
|
|
150
|
+
|
|
151
|
+
:param ctx: context item
|
|
152
|
+
:return: True if input, False otherwise
|
|
153
|
+
"""
|
|
154
|
+
return ctx.extra is not None and "agent_input" in ctx.extra
|
|
155
|
+
|
|
156
|
+
def is_output(self, ctx: CtxItem) -> bool:
|
|
157
|
+
"""
|
|
158
|
+
Check if the context item is an output
|
|
159
|
+
|
|
160
|
+
:param ctx: context item
|
|
161
|
+
:return: True if output, False otherwise
|
|
162
|
+
"""
|
|
163
|
+
return (ctx.extra is not None
|
|
164
|
+
and ("agent_output" in ctx.extra or "agent_finish" in ctx.extra)
|
|
165
|
+
and "agent_finish_evaluate" not in ctx.extra)
|
|
146
166
|
|
|
147
167
|
def get_main_task(self, history: List[CtxItem]) -> str:
|
|
148
168
|
"""
|
|
@@ -151,10 +171,12 @@ class Evaluation:
|
|
|
151
171
|
:param history: ctx items
|
|
152
172
|
:return: main task
|
|
153
173
|
"""
|
|
154
|
-
first = history[0]
|
|
155
174
|
task = ""
|
|
156
|
-
|
|
157
|
-
|
|
175
|
+
for ctx in history:
|
|
176
|
+
if self.is_input(ctx):
|
|
177
|
+
if ctx.input:
|
|
178
|
+
task = ctx.input
|
|
179
|
+
break
|
|
158
180
|
return task
|
|
159
181
|
|
|
160
182
|
def get_final_response(self, history: List[CtxItem]) -> str:
|
|
@@ -164,19 +186,28 @@ class Evaluation:
|
|
|
164
186
|
:param history: ctx items
|
|
165
187
|
:return: final response from agent
|
|
166
188
|
"""
|
|
167
|
-
|
|
189
|
+
outputs = []
|
|
168
190
|
for ctx in history:
|
|
169
|
-
if
|
|
191
|
+
if self.is_output(ctx):
|
|
170
192
|
if ctx.output:
|
|
171
|
-
|
|
193
|
+
outputs.append(ctx.output)
|
|
194
|
+
|
|
195
|
+
# if next input then clear outputs - use only output after last user input
|
|
196
|
+
if self.is_input(ctx):
|
|
197
|
+
outputs.clear()
|
|
172
198
|
|
|
173
199
|
# feedback for OpenAI agents
|
|
174
|
-
if
|
|
200
|
+
if len(outputs) == 0:
|
|
175
201
|
for ctx in history:
|
|
176
|
-
if
|
|
202
|
+
if self.is_output(ctx):
|
|
177
203
|
if ctx.output:
|
|
178
|
-
|
|
179
|
-
|
|
204
|
+
outputs.append(ctx.output)
|
|
205
|
+
|
|
206
|
+
# if next input then clear outputs - use only output after last user input
|
|
207
|
+
if self.is_input(ctx):
|
|
208
|
+
outputs.clear()
|
|
209
|
+
|
|
210
|
+
return "\n\n".join(outputs) if outputs else ""
|
|
180
211
|
|
|
181
212
|
def get_prompt_score(self, history: List[CtxItem]) -> str:
|
|
182
213
|
"""
|
|
@@ -224,9 +255,7 @@ class Evaluation:
|
|
|
224
255
|
return "OK. Feedback has been sent."
|
|
225
256
|
|
|
226
257
|
tool = FunctionTool.from_defaults(fn=send_feedback)
|
|
227
|
-
|
|
228
|
-
tools.append(tool)
|
|
229
|
-
return tools
|
|
258
|
+
return [tool]
|
|
230
259
|
|
|
231
260
|
def handle_evaluation(
|
|
232
261
|
self,
|
pygpt_net/core/agents/runner.py
CHANGED
|
@@ -251,16 +251,14 @@ class Runner:
|
|
|
251
251
|
tools = extra["agent_tools"] # use tools from extra if provided
|
|
252
252
|
else:
|
|
253
253
|
tools = self.window.core.agents.tools.prepare(context, extra, force=True)
|
|
254
|
+
if not is_cmd:
|
|
255
|
+
tools = [] # disable tools if cmd is not enabled, force agent tools
|
|
254
256
|
|
|
255
257
|
if "agent_history" in extra:
|
|
256
258
|
history = extra["agent_history"]
|
|
257
259
|
else:
|
|
258
260
|
history = self.window.core.agents.memory.prepare(context)
|
|
259
261
|
|
|
260
|
-
# disable tools if cmd is not enabled
|
|
261
|
-
if not is_cmd:
|
|
262
|
-
tools = []
|
|
263
|
-
|
|
264
262
|
# append system prompt
|
|
265
263
|
if agent_id in self.APPEND_SYSTEM_PROMPT_TO_MSG:
|
|
266
264
|
if system_prompt:
|
|
@@ -694,10 +694,6 @@ class ExpertWorker(QRunnable):
|
|
|
694
694
|
tools = self.window.core.agents.tools.prepare(
|
|
695
695
|
bridge_context, extra, verbose=False, force=True)
|
|
696
696
|
|
|
697
|
-
# disable tools if cmd is not enabled
|
|
698
|
-
if not self.window.core.command.is_cmd(inline=False):
|
|
699
|
-
tools = []
|
|
700
|
-
|
|
701
697
|
# remove expert_call tool from tools
|
|
702
698
|
for tool in list(tools):
|
|
703
699
|
if tool.metadata.name == "expert_call":
|
pygpt_net/core/render/base.py
CHANGED
|
@@ -78,6 +78,15 @@ class Renderer(BaseRenderer):
|
|
|
78
78
|
if pid is not None:
|
|
79
79
|
self.pids[pid] = PidData(pid, meta)
|
|
80
80
|
|
|
81
|
+
def get_pid_data(self, pid: int):
|
|
82
|
+
"""
|
|
83
|
+
Get PID data for given PID
|
|
84
|
+
|
|
85
|
+
:param pid: PID
|
|
86
|
+
"""
|
|
87
|
+
if pid in self.pids:
|
|
88
|
+
return self.pids[pid]
|
|
89
|
+
|
|
81
90
|
def begin(
|
|
82
91
|
self,
|
|
83
92
|
meta: CtxMeta,
|
|
@@ -81,6 +81,15 @@ class Renderer(BaseRenderer):
|
|
|
81
81
|
if pid is not None:
|
|
82
82
|
self.pids[pid] = PidData(pid, meta)
|
|
83
83
|
|
|
84
|
+
def get_pid_data(self, pid: int):
|
|
85
|
+
"""
|
|
86
|
+
Get PID data for given PID
|
|
87
|
+
|
|
88
|
+
:param pid: PID
|
|
89
|
+
"""
|
|
90
|
+
if pid in self.pids:
|
|
91
|
+
return self.pids[pid]
|
|
92
|
+
|
|
84
93
|
def begin(
|
|
85
94
|
self,
|
|
86
95
|
meta: CtxMeta,
|
|
@@ -151,6 +151,15 @@ class Renderer(BaseRenderer):
|
|
|
151
151
|
if pid is not None:
|
|
152
152
|
self.pids[pid] = PidData(pid, meta)
|
|
153
153
|
|
|
154
|
+
def get_pid_data(self, pid: int):
|
|
155
|
+
"""
|
|
156
|
+
Get PID data for given PID
|
|
157
|
+
|
|
158
|
+
:param pid: PID
|
|
159
|
+
"""
|
|
160
|
+
if pid in self.pids:
|
|
161
|
+
return self.pids[pid]
|
|
162
|
+
|
|
154
163
|
def init(self, pid: Optional[int]):
|
|
155
164
|
"""
|
|
156
165
|
Initialize renderer
|
|
@@ -653,7 +662,7 @@ class Renderer(BaseRenderer):
|
|
|
653
662
|
return
|
|
654
663
|
|
|
655
664
|
if begin: # prepare name and avatar header only at the beginning to avoid unnecessary checks
|
|
656
|
-
pctx.header = self.get_name_header(ctx)
|
|
665
|
+
pctx.header = self.get_name_header(ctx, stream=True)
|
|
657
666
|
self.update_names(meta, ctx)
|
|
658
667
|
|
|
659
668
|
name_header_str = pctx.header
|
|
@@ -1317,8 +1326,10 @@ class Renderer(BaseRenderer):
|
|
|
1317
1326
|
or out.startswith(('<tool>{"cmd"', '<tool>{"cmd"'))
|
|
1318
1327
|
or out.rstrip().endswith(('}</tool>', '}</tool>'))
|
|
1319
1328
|
):
|
|
1320
|
-
spinner_class = ""
|
|
1321
|
-
spinner =
|
|
1329
|
+
spinner_class = ""
|
|
1330
|
+
spinner = ""
|
|
1331
|
+
# spinner_class = "" if ctx.live else "display:none"
|
|
1332
|
+
# spinner = f"<span class=\"spinner\" style=\"{spinner_class}\"><img src=\"{self._file_prefix}{self._icon_sync}\" width=\"30\" height=\"30\" class=\"loading\"></span>"
|
|
1322
1333
|
|
|
1323
1334
|
tool_extra = self.body.prepare_tool_extra(ctx)
|
|
1324
1335
|
debug = self.append_debug(ctx, pid, "output") if self.is_debug() else ""
|
|
@@ -1326,11 +1337,12 @@ class Renderer(BaseRenderer):
|
|
|
1326
1337
|
|
|
1327
1338
|
return f"<div class='msg-box msg-bot' id='{msg_id}'>{name_header}<div class='msg'>{html}{spinner}<div class='msg-tool-extra'>{tool_extra}</div><div class='tool-output' style='{output_class}'><span class='toggle-cmd-output' onclick='toggleToolOutput({ctx.id});' title='{trans('action.cmd.expand')}' role='button'><img src='{self._file_prefix}{self._icon_expand}' width='25' height='25' valign='middle'></span><div class='content' style='display:none'>{tool_output}</div></div><div class='msg-extra'>{extra}</div>{footer}{debug}</div></div>"
|
|
1328
1339
|
|
|
1329
|
-
def get_name_header(self, ctx: CtxItem) -> str:
|
|
1340
|
+
def get_name_header(self, ctx: CtxItem, stream: bool = False) -> str:
|
|
1330
1341
|
"""
|
|
1331
1342
|
Get name header for the bot
|
|
1332
1343
|
|
|
1333
1344
|
:param ctx: CtxItem instance
|
|
1345
|
+
:param stream: True if it is a stream
|
|
1334
1346
|
:return: HTML name header
|
|
1335
1347
|
"""
|
|
1336
1348
|
meta = ctx.meta
|
|
@@ -1358,7 +1370,11 @@ class Renderer(BaseRenderer):
|
|
|
1358
1370
|
|
|
1359
1371
|
if not output_name and not avatar_html:
|
|
1360
1372
|
return ""
|
|
1361
|
-
|
|
1373
|
+
|
|
1374
|
+
if stream:
|
|
1375
|
+
return f"{avatar_html}{output_name}"
|
|
1376
|
+
else:
|
|
1377
|
+
return f"<div class=\"name-header name-bot\">{avatar_html}{output_name}</div>"
|
|
1362
1378
|
|
|
1363
1379
|
def flush_output(
|
|
1364
1380
|
self,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-08-
|
|
3
|
+
"version": "2.6.15",
|
|
4
|
+
"app.version": "2.6.15",
|
|
5
|
+
"updated_at": "2025-08-20T00:00:00"
|
|
6
6
|
},
|
|
7
7
|
"access.audio.event.speech": false,
|
|
8
8
|
"access.audio.event.speech.disabled": [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-08-
|
|
3
|
+
"version": "2.6.15",
|
|
4
|
+
"app.version": "2.6.15",
|
|
5
|
+
"updated_at": "2025-08-20T23:07:35"
|
|
6
6
|
},
|
|
7
7
|
"items": {
|
|
8
8
|
"SpeakLeash/bielik-11b-v2.3-instruct:Q4_K_M": {
|
|
@@ -1341,6 +1341,7 @@ status.evaluating = Bitte warten... bewerten...
|
|
|
1341
1341
|
status.finished = Abgeschlossen.
|
|
1342
1342
|
status.img.generated = Bild wurde generiert
|
|
1343
1343
|
status.img.saved = Bild gespeichert
|
|
1344
|
+
status.loading = Laden... Bitte warten
|
|
1344
1345
|
status.preset.cleared = Voreinstellung gelöscht
|
|
1345
1346
|
status.preset.deleted = Voreinstellung gelöscht
|
|
1346
1347
|
status.preset.duplicated = Voreinstellung dupliziert
|
|
@@ -1353,6 +1353,7 @@ status.evaluating = Please wait... evaluating...
|
|
|
1353
1353
|
status.finished = Finished.
|
|
1354
1354
|
status.img.generated = Image has been generated.
|
|
1355
1355
|
status.img.saved = Image has been saved.
|
|
1356
|
+
status.loading = Loading... Please wait
|
|
1356
1357
|
status.preset.cleared = Preset has been cleared.
|
|
1357
1358
|
status.preset.deleted = Preset has been deleted.
|
|
1358
1359
|
status.preset.duplicated = Preset has been duplicated.
|
|
@@ -1342,6 +1342,7 @@ status.evaluating = Por favor espera... evaluando...
|
|
|
1342
1342
|
status.finished = Terminado.
|
|
1343
1343
|
status.img.generated = La imagen ha sido generada
|
|
1344
1344
|
status.img.saved = Imagen guardada
|
|
1345
|
+
status.loading = Cargando... Por favor, espera
|
|
1345
1346
|
status.preset.cleared = Ajuste preestablecido limpiado
|
|
1346
1347
|
status.preset.deleted = Ajuste preestablecido eliminado
|
|
1347
1348
|
status.preset.duplicated = Ajuste preestablecido duplicado
|
|
@@ -1341,6 +1341,7 @@ status.evaluating = Veuillez patienter... évaluation en cours...
|
|
|
1341
1341
|
status.finished = Terminé.
|
|
1342
1342
|
status.img.generated = L'image a été générée.
|
|
1343
1343
|
status.img.saved = Image sauvegardée
|
|
1344
|
+
status.loading = Chargement... Veuillez patienter
|
|
1344
1345
|
status.preset.cleared = Préréglage effacé
|
|
1345
1346
|
status.preset.deleted = Préréglage supprimé
|
|
1346
1347
|
status.preset.duplicated = Préréglage dupliqué
|
|
@@ -1341,6 +1341,7 @@ status.evaluating = Attendere prego... valutazione in corso...
|
|
|
1341
1341
|
status.finished = Finito.
|
|
1342
1342
|
status.img.generated = L'immagine è stata generata.
|
|
1343
1343
|
status.img.saved = Immagine salvata.
|
|
1344
|
+
status.loading = Caricamento... Attendere prego
|
|
1344
1345
|
status.preset.cleared = Preset cancellato.
|
|
1345
1346
|
status.preset.deleted = Preset cancellato.
|
|
1346
1347
|
status.preset.duplicated = Preset duplicato.
|
|
@@ -1007,7 +1007,7 @@ settings.agent.func_call.native.desc = Jeśli włączone, aplikacja będzie uży
|
|
|
1007
1007
|
settings.agent.goal.notify = Wyświetl powiadomienie w zasobniku systemowym, gdy cel zostanie osiągnięty.
|
|
1008
1008
|
settings.agent.idx = Indeks
|
|
1009
1009
|
settings.agent.idx.auto_retrieve = Automatyczne pobieranie dodatkowego kontekstu z RAG
|
|
1010
|
-
settings.agent.idx.auto_retrieve.desc = Automatyczne pobieranie dodatkowego kontekstu z RAG na początku, jeśli został podany indeks.
|
|
1010
|
+
settings.agent.idx.auto_retrieve.desc = Automatyczne pobieranie dodatkowego kontekstu z RAG na początku, jeśli został podany indeks.
|
|
1011
1011
|
settings.agent.idx.desc = Tylko jeśli tryb wewnętrzny to llama_index (Czat z plikami), wybierz indeks do użycia w trybach Agenta i Experta
|
|
1012
1012
|
settings.agent.llama.append_eval = Dodaj i porównaj poprzedni prompt oceny w następnej ocenie
|
|
1013
1013
|
settings.agent.llama.append_eval.desc = Jeśli włączone, poprzedni prompt ulepszenia będzie sprawdzany w kolejnej ewaluacji w pętli
|
|
@@ -1344,6 +1344,7 @@ status.evaluating = Proszę czekać... ocena w toku...
|
|
|
1344
1344
|
status.finished = Zakończono.
|
|
1345
1345
|
status.img.generated = Obraz został wygenerowany.
|
|
1346
1346
|
status.img.saved = Obraz został zapisany
|
|
1347
|
+
status.loading = Ładowanie... Proszę czekać
|
|
1347
1348
|
status.preset.cleared = Preset wyczyszczony
|
|
1348
1349
|
status.preset.deleted = Preset usunięty
|
|
1349
1350
|
status.preset.duplicated = Preset skopiowany
|
|
@@ -1341,6 +1341,7 @@ status.evaluating = Будь ласка, зачекайте... оцінюван
|
|
|
1341
1341
|
status.finished = Завершено.
|
|
1342
1342
|
status.img.generated = Зображення було згенеровано.
|
|
1343
1343
|
status.img.saved = Зображення збережено
|
|
1344
|
+
status.loading = Завантаження... Будь ласка, зачекайте
|
|
1344
1345
|
status.preset.cleared = Пресет очищено
|
|
1345
1346
|
status.preset.deleted = Пресет видалено
|
|
1346
1347
|
status.preset.duplicated = Пресет дубльовано
|
|
@@ -1341,6 +1341,7 @@ status.evaluating = 请稍候... 评估中...
|
|
|
1341
1341
|
status.finished = 完成。
|
|
1342
1342
|
status.img.generated = 图像已生成。
|
|
1343
1343
|
status.img.saved = 图像已保存。
|
|
1344
|
+
status.loading = 加载中... 请稍候
|
|
1344
1345
|
status.preset.cleared = 预设已清除。
|
|
1345
1346
|
status.preset.deleted = 预设已删除。
|
|
1346
1347
|
status.preset.duplicated = 预设已复制。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pygpt-net
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.15
|
|
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
|
|
@@ -108,7 +108,7 @@ Description-Content-Type: text/markdown
|
|
|
108
108
|
|
|
109
109
|
[](https://snapcraft.io/pygpt)
|
|
110
110
|
|
|
111
|
-
Release: **2.6.
|
|
111
|
+
Release: **2.6.15** | build: **2025-08-20** | Python: **>=3.10, <3.14**
|
|
112
112
|
|
|
113
113
|
> Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
|
|
114
114
|
>
|
|
@@ -4566,6 +4566,17 @@ may consume additional tokens that are not displayed in the main window.
|
|
|
4566
4566
|
|
|
4567
4567
|
## Recent changes:
|
|
4568
4568
|
|
|
4569
|
+
**2.6.15 (2025-08-20)**
|
|
4570
|
+
|
|
4571
|
+
- Added: do not change the context menu font size in text editing.
|
|
4572
|
+
- Added: do not reload context items on tab change if already loaded.
|
|
4573
|
+
- Fixed: appending of names and avatars in the stream chunk.
|
|
4574
|
+
|
|
4575
|
+
**2.6.14 (2025-08-19)**
|
|
4576
|
+
|
|
4577
|
+
- Fixed: Agent evaluation tool runs even if tools are disabled.
|
|
4578
|
+
- Extended agent response evaluation by providing the full context of the output.
|
|
4579
|
+
|
|
4569
4580
|
**2.6.13 (2025-08-19)**
|
|
4570
4581
|
|
|
4571
4582
|
- Fix: Do not load the index in experts if it is not provided.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
pygpt_net/CHANGELOG.txt,sha256=
|
|
1
|
+
pygpt_net/CHANGELOG.txt,sha256=nvzM6_l4V4_ZuaKv2A97l_kUPc9aNBsCYCfdj2EVR0M,100187
|
|
2
2
|
pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
|
|
3
|
-
pygpt_net/__init__.py,sha256=
|
|
3
|
+
pygpt_net/__init__.py,sha256=E2MbiOYX3tjLmymqV1LBe1LhQyq2ONNVsxC5a3ZszOk,1373
|
|
4
4
|
pygpt_net/app.py,sha256=2IXjjYJ0tm-iFn3pHu3-JGoFAnN9YvmXGHPmeOhpU3Y,20999
|
|
5
5
|
pygpt_net/config.py,sha256=LCKrqQfePVNrAvH3EY_1oZx1Go754sDoyUneJ0iGWFI,16660
|
|
6
6
|
pygpt_net/container.py,sha256=NsMSHURaEC_eW8vrCNdztwqkxB7jui3yVlzUOMYvCHg,4124
|
|
@@ -41,7 +41,7 @@ pygpt_net/controller/chat/files.py,sha256=QZAi1Io57EU7htKt9M5I9OoGAFX51OH2V5-NsJ
|
|
|
41
41
|
pygpt_net/controller/chat/image.py,sha256=yPX26gsz0fLnyXR88lpVyvvHnKA-yZwfXJ4paUDYkeM,8579
|
|
42
42
|
pygpt_net/controller/chat/input.py,sha256=EPA90r6GqHIlu4JJbr0cuvKIEYSs6LVkimxrWHAyyX0,12390
|
|
43
43
|
pygpt_net/controller/chat/output.py,sha256=aSgZ8E8IaP4Jjd0ab6eXhebM_YIRPW7pRJUesYCgDQg,10864
|
|
44
|
-
pygpt_net/controller/chat/render.py,sha256
|
|
44
|
+
pygpt_net/controller/chat/render.py,sha256=-Z-beOsEvw_tS4I8kBT5Z0n9KhDlgrEQH4x1PLDvxhE,20613
|
|
45
45
|
pygpt_net/controller/chat/response.py,sha256=tacJOG_iG7IjEFiZ4iDggEVVS9mbL0e92JBC--7bnCY,12543
|
|
46
46
|
pygpt_net/controller/chat/stream.py,sha256=zmDGI_Z9Rn8IYv6vEIVBMTOGjjY0zlfmM3qJMddRGRI,21994
|
|
47
47
|
pygpt_net/controller/chat/text.py,sha256=ktluNw9ItG4g9p3OpOSmgALhFf1Gnonhl3J9kLzdTqU,10743
|
|
@@ -110,7 +110,7 @@ pygpt_net/controller/painter/painter.py,sha256=1Ekmr2a3irDkSb2wowiPXhW59rfdZOW1t
|
|
|
110
110
|
pygpt_net/controller/plugins/__init__.py,sha256=iocY37De1H2Nh7HkC7ZYvUus2xzcckslgr5a4PwtQII,511
|
|
111
111
|
pygpt_net/controller/plugins/plugins.py,sha256=jO5KcC0jsIcwF2U6eSZqicGKUr2MzC0F7zLMDiqwtE8,13849
|
|
112
112
|
pygpt_net/controller/plugins/presets.py,sha256=8EsEwpU2MjWMQu1kcY4JTcyqqN8pjBrcxA2uW2tFU_A,11674
|
|
113
|
-
pygpt_net/controller/plugins/settings.py,sha256=
|
|
113
|
+
pygpt_net/controller/plugins/settings.py,sha256=OT1MNRUKx_9E3COJKVBnNIf3ZybkI2fORgQUbRE-z4U,6063
|
|
114
114
|
pygpt_net/controller/presets/__init__.py,sha256=Bb9_aAvGxQcKCW2fvG5CAJ6ZUwNYN3GaCf3BXB9eGfI,511
|
|
115
115
|
pygpt_net/controller/presets/editor.py,sha256=-fFDkIqDwhYwAaSRuK6IayjX8RriqFoc0_LKblSOi-Q,39449
|
|
116
116
|
pygpt_net/controller/presets/experts.py,sha256=dfPKmAPO-7gaUD2ILs3lR005ir32G5vV-Sa5TGEHwOU,5820
|
|
@@ -121,7 +121,7 @@ pygpt_net/controller/settings/profile.py,sha256=Zom4qT2j71lZadB2nbJvn5Ewoek8jdf5
|
|
|
121
121
|
pygpt_net/controller/settings/settings.py,sha256=cFA4ZKjcsu8uoapWMTllUUB9DvJXVBzbxLT6InRS4zU,7768
|
|
122
122
|
pygpt_net/controller/settings/workdir.py,sha256=YEMCMR_IFIPKU4SRvMQ6JZCUQfnPGMWzVjNAARHlpCg,20031
|
|
123
123
|
pygpt_net/controller/theme/__init__.py,sha256=-HMDkTGRa7Q6_AGomkZPVyasIOgNCqeez0Ocw_z9gMc,509
|
|
124
|
-
pygpt_net/controller/theme/common.py,sha256=
|
|
124
|
+
pygpt_net/controller/theme/common.py,sha256=z5mzpMnfkTeFstKm_uodDboAa3xj5vTpMKGCZzvkX9A,7114
|
|
125
125
|
pygpt_net/controller/theme/markdown.py,sha256=iH34dsZWyXCtIZuuRBHiAV__W0P4bY-7OuzEwehizr0,6064
|
|
126
126
|
pygpt_net/controller/theme/menu.py,sha256=3EjDVatt4lYNePHwHaEr0tZGbO2MljqY5uzkYVvtH5E,5962
|
|
127
127
|
pygpt_net/controller/theme/nodes.py,sha256=cnoZKp8gRczmWgsAC5liLB53YgsArAPvOWRLmyeAn1o,5463
|
|
@@ -130,7 +130,7 @@ pygpt_net/controller/tools/__init__.py,sha256=ds63rOuwLEIe-SlY_sQkhWSdXS0lfVwseU
|
|
|
130
130
|
pygpt_net/controller/tools/tools.py,sha256=GfDcAVyAiF1CcZ8ATnSJgfCwXYOaGQ1xoxXztVvU3qc,2905
|
|
131
131
|
pygpt_net/controller/ui/__init__.py,sha256=cxfh2SYeEDATGAZpcYDqCxYfp4KReQ1CYehevSf89EU,507
|
|
132
132
|
pygpt_net/controller/ui/mode.py,sha256=RX2omKQ65efycMPiH2BwMXIz30Ud5pA8MOe7WrX592s,8119
|
|
133
|
-
pygpt_net/controller/ui/tabs.py,sha256=
|
|
133
|
+
pygpt_net/controller/ui/tabs.py,sha256=6i-g9VcigFKIyXK8aYwZvv9PRcl5n5zkz_IYAZ-1BuI,28804
|
|
134
134
|
pygpt_net/controller/ui/ui.py,sha256=FxRwPIb_PjyqIK14cSC4KpQRjdhK6nI6Zi9v0cCp19U,7254
|
|
135
135
|
pygpt_net/controller/ui/vision.py,sha256=X4AxUXbPdoWgxNUUbWTeoQuyJa_AJ3sehSSNF0mQRaM,2415
|
|
136
136
|
pygpt_net/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -146,9 +146,9 @@ pygpt_net/core/agents/bridge.py,sha256=KhCbMTZNigNlgOhXEMN1kqWGNUhkEdjFdiHBBVTAr
|
|
|
146
146
|
pygpt_net/core/agents/legacy.py,sha256=DdlyIpFjmeAC4XUGtq3F5_1BLGZLPOej0RZ6x9ycFjM,1731
|
|
147
147
|
pygpt_net/core/agents/memory.py,sha256=9Jz9kT-xT8QPpGeXEpWopJUGBLLHu6Ys_-fRrg6BWDg,5210
|
|
148
148
|
pygpt_net/core/agents/observer/__init__.py,sha256=qVIBJKpGbc0k7PTESAwAR7SbN-pbkBMJUTzeliCAaJU,651
|
|
149
|
-
pygpt_net/core/agents/observer/evaluation.py,sha256=
|
|
149
|
+
pygpt_net/core/agents/observer/evaluation.py,sha256=r-zIRXZpOgo8TJ0qbNPL2Qm_9zmPac9AEWwIbnIW4T8,8491
|
|
150
150
|
pygpt_net/core/agents/provider.py,sha256=rjxnuqzRxv2Z1d9i_wKpREwJBTeTgtyBDYtyHuwcSPA,2440
|
|
151
|
-
pygpt_net/core/agents/runner.py,sha256=
|
|
151
|
+
pygpt_net/core/agents/runner.py,sha256=C3BQkpHLrd92EuM55mR4PnCJMVvZ4nV0kDhed4xfl9o,12186
|
|
152
152
|
pygpt_net/core/agents/runners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
153
|
pygpt_net/core/agents/runners/base.py,sha256=XjheBYhBZan51r3vkUh5uf00sYiRj8btZUeUP1jpqlA,5687
|
|
154
154
|
pygpt_net/core/agents/runners/helpers.py,sha256=0iQQlSg_pJfxY_gQEWImnyAVkTUQYYSW67Z9DS7oUYw,8305
|
|
@@ -232,7 +232,7 @@ pygpt_net/core/events/event.py,sha256=uxNdPGaV5KDBaosPM6uxio7dPig091wAoz-OdOPCmx
|
|
|
232
232
|
pygpt_net/core/events/kernel.py,sha256=Y5zQ-YCex04OQNMRMC7Q8g55A-imyj9XQ0Jkuyk2eCU,2074
|
|
233
233
|
pygpt_net/core/events/render.py,sha256=Xfncp6ESvjPyBLtFq6KiNxckAFDN0DsUOJ_mrowjfnM,2525
|
|
234
234
|
pygpt_net/core/experts/__init__.py,sha256=oscAmAEsCZclyHU7k3z5JzYqilwIO7J90e6oTa29tZ0,511
|
|
235
|
-
pygpt_net/core/experts/experts.py,sha256=
|
|
235
|
+
pygpt_net/core/experts/experts.py,sha256=Bq7-xsXK-UBs7ZbjC6kPDULOIwndDcAJSHlV1vXIMug,30287
|
|
236
236
|
pygpt_net/core/filesystem/__init__.py,sha256=KZLS3s_otd3Md9eDA6FN-b4CtOCWl_fplUlM9V6hTy8,514
|
|
237
237
|
pygpt_net/core/filesystem/actions.py,sha256=2lRVF_MpIxCwbH8DkugP0K6pY6FymLeH6LKVR2rtQGQ,4152
|
|
238
238
|
pygpt_net/core/filesystem/editor.py,sha256=or7cT2xhZfDwjX47reyXQCt-_1c4h_xPJDddYi1auNw,4284
|
|
@@ -290,24 +290,24 @@ pygpt_net/core/prompt/custom.py,sha256=kexQrazSm_pCmHclTkVT2YId3aNiF53kg6UCSCFZ-
|
|
|
290
290
|
pygpt_net/core/prompt/prompt.py,sha256=cEovsa_FUZfiOjC74AWDaXc1RzYdaxXXw3w9xKtVPss,7484
|
|
291
291
|
pygpt_net/core/prompt/template.py,sha256=Uygs2W-Bw53SX6gZXjYKuHlPtbFGZf41VzR8244dfc0,3329
|
|
292
292
|
pygpt_net/core/render/__init__.py,sha256=19xPDIYeoDn3Sf1tpcvXtxLaaKkjs0nDQ7-4GqTfeRk,489
|
|
293
|
-
pygpt_net/core/render/base.py,sha256=
|
|
293
|
+
pygpt_net/core/render/base.py,sha256=Lkj6_E4hnx7WT8sDOecJQcm41tg1jZ9q3VQSxtWHE5w,10197
|
|
294
294
|
pygpt_net/core/render/markdown/__init__.py,sha256=19xPDIYeoDn3Sf1tpcvXtxLaaKkjs0nDQ7-4GqTfeRk,489
|
|
295
295
|
pygpt_net/core/render/markdown/body.py,sha256=OgIshkfCqMnZ-0acCHE6A9ue6irT0cR6laE-v24TS48,7238
|
|
296
296
|
pygpt_net/core/render/markdown/helpers.py,sha256=qH0roW-XBa7fN6JYOqJrbcyXc_9ztIeQph0siVL0Jpo,2688
|
|
297
297
|
pygpt_net/core/render/markdown/parser.py,sha256=4lCC_pCWmi-SUli4nnDH-FZEbBi0SnVl0FoL0ZBuNHo,5450
|
|
298
298
|
pygpt_net/core/render/markdown/pid.py,sha256=bRAOdL8bS-LSfOKReWK3nu-BUZ2qfNchrAsrkxRKlHU,851
|
|
299
|
-
pygpt_net/core/render/markdown/renderer.py,sha256=
|
|
299
|
+
pygpt_net/core/render/markdown/renderer.py,sha256=PER4BxQUU2zjyMq-flM83_cNcjFyJrRHx2VNa7FN5-I,19488
|
|
300
300
|
pygpt_net/core/render/plain/__init__.py,sha256=19xPDIYeoDn3Sf1tpcvXtxLaaKkjs0nDQ7-4GqTfeRk,489
|
|
301
301
|
pygpt_net/core/render/plain/body.py,sha256=i2iQ8VGzh2E3r32XHPTArAQA1Lu-Xlr1tAjJyUwBZd8,4226
|
|
302
302
|
pygpt_net/core/render/plain/helpers.py,sha256=CMF84kSeuQnkgZVHmN_9YWaL5BC958tDE9ZWfZWhAzg,1630
|
|
303
303
|
pygpt_net/core/render/plain/pid.py,sha256=Pz3v1tnLj-XI_9vcaVkCf9SZ2EgVs4LYV4qzelBMoOg,1119
|
|
304
|
-
pygpt_net/core/render/plain/renderer.py,sha256=
|
|
304
|
+
pygpt_net/core/render/plain/renderer.py,sha256=Zzo4O-jo59outV3WuUUd6DNkpq0rkZPbvS-Y3HW7qWo,15781
|
|
305
305
|
pygpt_net/core/render/web/__init__.py,sha256=istp5dsn6EkLEP7lOBeDb8RjodUcWZqjcEvTroaTT-w,489
|
|
306
306
|
pygpt_net/core/render/web/body.py,sha256=rybg76GiLWowR-qEvM0Y64woSsO4KSBnww4f8BU7GgI,54872
|
|
307
307
|
pygpt_net/core/render/web/helpers.py,sha256=ivrXrCqRIUWHDmu3INu-i6XUlB2W9IOO8iYyqpbnSRU,5438
|
|
308
308
|
pygpt_net/core/render/web/parser.py,sha256=pDFc9Tf8P-jvrDilXyT1fukcQHbixHRJ9Dn9hF10Gko,12892
|
|
309
309
|
pygpt_net/core/render/web/pid.py,sha256=pXBdPb8hw_aZS2Rtz3pLBpuybpXrzoqwYAFWBal9bLE,3685
|
|
310
|
-
pygpt_net/core/render/web/renderer.py,sha256=
|
|
310
|
+
pygpt_net/core/render/web/renderer.py,sha256=slIQ4J-XcLoeCSd_EYBbXgxhzERHgwnH0U37SKpQZes,56482
|
|
311
311
|
pygpt_net/core/render/web/syntax_highlight.py,sha256=QSLGF5cJL_Xeqej7_TYwY_5C2w9enXV_cMEuaJ3C43U,2005
|
|
312
312
|
pygpt_net/core/settings/__init__.py,sha256=GQ6_gJ2jf_Chm7ZuZLvkcvEh_sfMDVMBieeoJi2iPI4,512
|
|
313
313
|
pygpt_net/core/settings/settings.py,sha256=onqwNiICm2VhHfmXLvp1MiEJ14m2jzeeI2pjUiaUwtY,7787
|
|
@@ -343,8 +343,8 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
|
|
|
343
343
|
pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
|
|
344
344
|
pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
|
|
345
345
|
pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
|
|
346
|
-
pygpt_net/data/config/config.json,sha256=
|
|
347
|
-
pygpt_net/data/config/models.json,sha256=
|
|
346
|
+
pygpt_net/data/config/config.json,sha256=4tWRTdqanNaSCrFx7ezZPnb-GEm5_78UqYuqguUwqPE,24924
|
|
347
|
+
pygpt_net/data/config/models.json,sha256=frsKP2IHdlXEdkNOV0X-DLMz3lykgFedlmCyG2agEfg,109650
|
|
348
348
|
pygpt_net/data/config/modes.json,sha256=M882iiqX_R2sNQl9cqZ3k-uneEvO9wpARtHRMLx_LHw,2265
|
|
349
349
|
pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
|
|
350
350
|
pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
|
|
@@ -1603,14 +1603,14 @@ pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff2,sha256=cdUX1ngneHz6
|
|
|
1603
1603
|
pygpt_net/data/js/katex/katex.min.css,sha256=lVaKnUaQNG4pI71WHffQZVALLQF4LMZEk4nOia8U9ow,23532
|
|
1604
1604
|
pygpt_net/data/js/katex/katex.min.js,sha256=KLASOtKS2x8pUxWVzCDmlWJ4jhuLb0vtrgakbD6gDDo,276757
|
|
1605
1605
|
pygpt_net/data/languages.csv,sha256=fvtER6vnTXFHQslCh-e0xCfZDQ-ijgW4GYpOJG4U7LY,8289
|
|
1606
|
-
pygpt_net/data/locale/locale.de.ini,sha256=
|
|
1607
|
-
pygpt_net/data/locale/locale.en.ini,sha256=
|
|
1608
|
-
pygpt_net/data/locale/locale.es.ini,sha256=
|
|
1609
|
-
pygpt_net/data/locale/locale.fr.ini,sha256=
|
|
1610
|
-
pygpt_net/data/locale/locale.it.ini,sha256
|
|
1611
|
-
pygpt_net/data/locale/locale.pl.ini,sha256=
|
|
1612
|
-
pygpt_net/data/locale/locale.uk.ini,sha256=
|
|
1613
|
-
pygpt_net/data/locale/locale.zh.ini,sha256=
|
|
1606
|
+
pygpt_net/data/locale/locale.de.ini,sha256=ERoIXnA8Atyzm5EOh6By1psT62ZqSYjkjVPHDasRPR8,100092
|
|
1607
|
+
pygpt_net/data/locale/locale.en.ini,sha256=0UUdtIC5S4zK9F2FfjX6AasDJ-LmBiHA4DtyBcZBn7Q,90709
|
|
1608
|
+
pygpt_net/data/locale/locale.es.ini,sha256=bImZrxHRY4yTuAlVznzQCn8mK4zB88p0Y0UUNzVOI4Y,100658
|
|
1609
|
+
pygpt_net/data/locale/locale.fr.ini,sha256=Z-1LvfecWp4ZMZf-9HqFddcoBbVxUWMKzSID86wASzk,103400
|
|
1610
|
+
pygpt_net/data/locale/locale.it.ini,sha256=-K3NkIURZ5gK1JPwjk_7GwCCH6TUqI9aUZDKoq8jL1o,98471
|
|
1611
|
+
pygpt_net/data/locale/locale.pl.ini,sha256=ZEoJJZqo0eptaoJI5tDPRq14leoYdO9LdKMDnMSqJ_Y,98152
|
|
1612
|
+
pygpt_net/data/locale/locale.uk.ini,sha256=NqaflpbTBUfOwUUPmI1_TxgTfCh6h9k3UHI4zupMPaI,136948
|
|
1613
|
+
pygpt_net/data/locale/locale.zh.ini,sha256=VuAe2oKEuHYWo0NyO8YCz11OKXunHjVUm6YaVclL3JE,87662
|
|
1614
1614
|
pygpt_net/data/locale/plugin.agent.de.ini,sha256=BY28KpfFvgfVYJzcw2o5ScWnR4uuErIYGyc3NVHlmTw,1714
|
|
1615
1615
|
pygpt_net/data/locale/plugin.agent.en.ini,sha256=HwOWCI7e8uzlIgyRWRVyr1x6Xzs8Xjv5pfEc7jfLOo4,1728
|
|
1616
1616
|
pygpt_net/data/locale/plugin.agent.es.ini,sha256=bqaJQne8HPKFVtZ8Ukzo1TSqVW41yhYbGUqW3j2x1p8,1680
|
|
@@ -2437,8 +2437,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=3XA7Ue8PtxYkVbZRaOPIGjpC5Iko37RlxfO35
|
|
|
2437
2437
|
pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
|
|
2438
2438
|
pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
|
|
2439
2439
|
pygpt_net/utils.py,sha256=gGbw-lBTodGg_uBx6zKEwa58GaVNZN1I9zY_ZDyJ9xg,8872
|
|
2440
|
-
pygpt_net-2.6.
|
|
2441
|
-
pygpt_net-2.6.
|
|
2442
|
-
pygpt_net-2.6.
|
|
2443
|
-
pygpt_net-2.6.
|
|
2444
|
-
pygpt_net-2.6.
|
|
2440
|
+
pygpt_net-2.6.15.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
|
|
2441
|
+
pygpt_net-2.6.15.dist-info/METADATA,sha256=AuKInUFuLHkfobwJiW8hZPv_0N85UWvWFhH9iMI9Lhw,189906
|
|
2442
|
+
pygpt_net-2.6.15.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
2443
|
+
pygpt_net-2.6.15.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
|
|
2444
|
+
pygpt_net-2.6.15.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|