pygpt-net 2.6.60__py3-none-any.whl → 2.6.62__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 +14 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/controller/chat/common.py +115 -6
- pygpt_net/controller/chat/input.py +4 -1
- pygpt_net/controller/chat/response.py +8 -2
- pygpt_net/controller/presets/presets.py +121 -6
- pygpt_net/controller/settings/editor.py +0 -15
- pygpt_net/controller/settings/profile.py +16 -4
- pygpt_net/controller/settings/workdir.py +30 -5
- pygpt_net/controller/theme/common.py +4 -2
- pygpt_net/controller/theme/markdown.py +4 -7
- pygpt_net/controller/theme/theme.py +2 -1
- pygpt_net/controller/ui/ui.py +32 -7
- pygpt_net/core/agents/custom/__init__.py +7 -1
- pygpt_net/core/agents/custom/llama_index/factory.py +17 -6
- pygpt_net/core/agents/custom/llama_index/runner.py +52 -4
- pygpt_net/core/agents/custom/llama_index/utils.py +12 -1
- pygpt_net/core/agents/custom/router.py +45 -6
- pygpt_net/core/agents/custom/runner.py +11 -5
- pygpt_net/core/agents/custom/schema.py +3 -1
- pygpt_net/core/agents/custom/utils.py +13 -1
- pygpt_net/core/agents/runners/llama_workflow.py +65 -5
- pygpt_net/core/agents/runners/openai_workflow.py +2 -1
- pygpt_net/core/db/viewer.py +11 -5
- pygpt_net/core/node_editor/graph.py +18 -9
- pygpt_net/core/node_editor/models.py +9 -2
- pygpt_net/core/node_editor/types.py +15 -1
- pygpt_net/core/presets/presets.py +216 -29
- pygpt_net/core/render/markdown/parser.py +0 -2
- pygpt_net/core/render/web/renderer.py +76 -11
- pygpt_net/data/config/config.json +5 -6
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/settings.json +2 -38
- pygpt_net/data/css/style.dark.css +18 -0
- pygpt_net/data/css/style.light.css +20 -1
- pygpt_net/data/locale/locale.de.ini +66 -1
- pygpt_net/data/locale/locale.en.ini +64 -3
- pygpt_net/data/locale/locale.es.ini +66 -1
- pygpt_net/data/locale/locale.fr.ini +66 -1
- pygpt_net/data/locale/locale.it.ini +66 -1
- pygpt_net/data/locale/locale.pl.ini +67 -2
- pygpt_net/data/locale/locale.uk.ini +66 -1
- pygpt_net/data/locale/locale.zh.ini +66 -1
- pygpt_net/data/locale/plugin.cmd_system.en.ini +62 -66
- pygpt_net/item/ctx.py +23 -1
- pygpt_net/provider/agents/llama_index/flow_from_schema.py +2 -2
- pygpt_net/provider/agents/llama_index/workflow/codeact.py +9 -6
- pygpt_net/provider/agents/llama_index/workflow/openai.py +38 -11
- pygpt_net/provider/agents/llama_index/workflow/planner.py +36 -16
- pygpt_net/provider/agents/llama_index/workflow/supervisor.py +60 -10
- pygpt_net/provider/agents/openai/agent.py +3 -1
- pygpt_net/provider/agents/openai/agent_b2b.py +13 -9
- pygpt_net/provider/agents/openai/agent_planner.py +6 -2
- pygpt_net/provider/agents/openai/agent_with_experts.py +4 -1
- pygpt_net/provider/agents/openai/agent_with_experts_feedback.py +4 -2
- pygpt_net/provider/agents/openai/agent_with_feedback.py +4 -2
- pygpt_net/provider/agents/openai/evolve.py +6 -2
- pygpt_net/provider/agents/openai/supervisor.py +3 -1
- pygpt_net/provider/api/openai/agents/response.py +1 -0
- pygpt_net/provider/core/config/patch.py +18 -1
- pygpt_net/provider/core/config/patches/patch_before_2_6_42.py +0 -6
- pygpt_net/tools/agent_builder/tool.py +48 -26
- pygpt_net/tools/agent_builder/ui/dialogs.py +36 -28
- pygpt_net/ui/__init__.py +2 -4
- pygpt_net/ui/dialog/about.py +58 -38
- pygpt_net/ui/dialog/db.py +142 -3
- pygpt_net/ui/dialog/preset.py +47 -8
- pygpt_net/ui/layout/toolbox/presets.py +64 -16
- pygpt_net/ui/main.py +2 -2
- pygpt_net/ui/widget/dialog/confirm.py +27 -3
- pygpt_net/ui/widget/dialog/db.py +0 -0
- pygpt_net/ui/widget/draw/painter.py +90 -1
- pygpt_net/ui/widget/lists/preset.py +908 -60
- pygpt_net/ui/widget/node_editor/command.py +10 -10
- pygpt_net/ui/widget/node_editor/config.py +157 -0
- pygpt_net/ui/widget/node_editor/editor.py +223 -153
- pygpt_net/ui/widget/node_editor/item.py +12 -11
- pygpt_net/ui/widget/node_editor/node.py +246 -13
- pygpt_net/ui/widget/node_editor/view.py +179 -63
- pygpt_net/ui/widget/tabs/output.py +1 -1
- pygpt_net/ui/widget/textarea/input.py +157 -23
- pygpt_net/utils.py +114 -2
- {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.62.dist-info}/METADATA +26 -100
- {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.62.dist-info}/RECORD +86 -85
- {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.62.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.62.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.62.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.09.17
|
|
9
|
+
# Updated Date: 2025.09.26 17:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import json
|
|
@@ -16,15 +16,13 @@ import html as _html
|
|
|
16
16
|
from dataclasses import dataclass, field
|
|
17
17
|
|
|
18
18
|
from datetime import datetime
|
|
19
|
-
from typing import Optional, List, Any,
|
|
19
|
+
from typing import Optional, List, Any, Tuple
|
|
20
20
|
from time import monotonic
|
|
21
21
|
from io import StringIO
|
|
22
22
|
|
|
23
|
-
from PySide6.QtCore import QTimer,
|
|
24
|
-
from PySide6.QtWebEngineCore import QWebEnginePage
|
|
23
|
+
from PySide6.QtCore import QTimer, QCoreApplication, QEventLoop, QEvent
|
|
25
24
|
|
|
26
25
|
from pygpt_net.core.render.base import BaseRenderer
|
|
27
|
-
from pygpt_net.core.text.utils import has_unclosed_code_tag
|
|
28
26
|
from pygpt_net.item.ctx import CtxItem, CtxMeta
|
|
29
27
|
from pygpt_net.ui.widget.textarea.input import ChatInput
|
|
30
28
|
from pygpt_net.ui.widget.textarea.web import ChatWebOutput
|
|
@@ -155,6 +153,7 @@ class Renderer(BaseRenderer):
|
|
|
155
153
|
app_path = self.window.core.config.get_app_path() if self.window else ""
|
|
156
154
|
self._icon_expand = os.path.join(app_path, "data", "icons", "expand.svg")
|
|
157
155
|
self._icon_sync = os.path.join(app_path, "data", "icons", "sync.svg")
|
|
156
|
+
self._agent_avatar = os.path.join(app_path, "data", "icons", "robot.svg")
|
|
158
157
|
self._file_prefix = 'file:///' if self.window and self.window.core.platforms.is_windows() else 'file://'
|
|
159
158
|
|
|
160
159
|
# Bridge readiness for node append/replace path
|
|
@@ -378,6 +377,15 @@ class Renderer(BaseRenderer):
|
|
|
378
377
|
self.tool_output_end()
|
|
379
378
|
self.prev_chunk_replace = False
|
|
380
379
|
|
|
380
|
+
# Ensure stream header identity is up-to-date (agent/preset override)
|
|
381
|
+
try:
|
|
382
|
+
header = self.get_name_header(ctx, stream=True)
|
|
383
|
+
if pid is not None:
|
|
384
|
+
self.pids[pid].header = header
|
|
385
|
+
self._stream_header[pid] = header or ""
|
|
386
|
+
except Exception:
|
|
387
|
+
pass
|
|
388
|
+
|
|
381
389
|
def end(self, meta: CtxMeta, ctx: CtxItem, stream: bool = False):
|
|
382
390
|
"""
|
|
383
391
|
Render end
|
|
@@ -1163,6 +1171,26 @@ class Renderer(BaseRenderer):
|
|
|
1163
1171
|
meta = ctx.meta
|
|
1164
1172
|
if meta is None:
|
|
1165
1173
|
return ""
|
|
1174
|
+
|
|
1175
|
+
# Agent-provided display name override:
|
|
1176
|
+
# If ctx.get_agent_name() returns a non-empty name, force "fake personalize":
|
|
1177
|
+
# - use that name
|
|
1178
|
+
# - optionally attach default avatar when enabled via config
|
|
1179
|
+
# - treat as personalized header regardless of preset
|
|
1180
|
+
agent_name = self._get_agent_name(ctx)
|
|
1181
|
+
if agent_name:
|
|
1182
|
+
avatar_html = ""
|
|
1183
|
+
try:
|
|
1184
|
+
use_default = self.window.core.config.get("agent.avatar.default", True)
|
|
1185
|
+
if use_default and os.path.exists(self._agent_avatar):
|
|
1186
|
+
avatar_html = f"<img src=\"{self._file_prefix}{self._agent_avatar}\" class=\"avatar\"> "
|
|
1187
|
+
except Exception:
|
|
1188
|
+
pass
|
|
1189
|
+
if stream:
|
|
1190
|
+
return f"{avatar_html}{agent_name}"
|
|
1191
|
+
else:
|
|
1192
|
+
return f"<div class=\"name-header name-bot\">{avatar_html}{agent_name}</div>"
|
|
1193
|
+
|
|
1166
1194
|
preset_id = meta.preset
|
|
1167
1195
|
if preset_id is None or preset_id == "":
|
|
1168
1196
|
return ""
|
|
@@ -1904,23 +1932,60 @@ class Renderer(BaseRenderer):
|
|
|
1904
1932
|
|
|
1905
1933
|
# ------------------------- Helpers: build JSON blocks -------------------------
|
|
1906
1934
|
|
|
1935
|
+
def _get_agent_name(self, ctx: CtxItem) -> Optional[str]:
|
|
1936
|
+
"""
|
|
1937
|
+
Resolve agent-provided name from ctx if available.
|
|
1938
|
+
|
|
1939
|
+
This is used to force "fake personalize" on the UI:
|
|
1940
|
+
- when present and non-empty, we use this name,
|
|
1941
|
+
- optionally attach default avatar when enabled via config,
|
|
1942
|
+
- we set personalize flag to True in node payloads.
|
|
1943
|
+
"""
|
|
1944
|
+
try:
|
|
1945
|
+
if hasattr(ctx, "get_agent_name"):
|
|
1946
|
+
name = ctx.get_agent_name()
|
|
1947
|
+
if isinstance(name, str):
|
|
1948
|
+
name = name.strip()
|
|
1949
|
+
return name or None
|
|
1950
|
+
except Exception:
|
|
1951
|
+
pass
|
|
1952
|
+
return None
|
|
1953
|
+
|
|
1907
1954
|
def _output_identity(self, ctx: CtxItem) -> Tuple[str, Optional[str], bool]:
|
|
1908
1955
|
"""
|
|
1909
|
-
Resolve output identity (name, avatar file:// path) based on preset.
|
|
1956
|
+
Resolve output identity (name, avatar file:// path) based on preset or ctx-provided agent name.
|
|
1910
1957
|
|
|
1911
1958
|
:param ctx: context item
|
|
1912
1959
|
:return: (name, avatar, personalize)
|
|
1913
1960
|
"""
|
|
1961
|
+
# 1) Agent-provided name override -> force personalize, optionally default avatar
|
|
1962
|
+
agent_name = self._get_agent_name(ctx)
|
|
1963
|
+
if agent_name:
|
|
1964
|
+
avatar = None
|
|
1965
|
+
try:
|
|
1966
|
+
if self.window.core.config.get("agent.avatar.default", True) and os.path.exists(self._agent_avatar):
|
|
1967
|
+
avatar = f"{self._file_prefix}{self._agent_avatar}"
|
|
1968
|
+
except Exception:
|
|
1969
|
+
pass
|
|
1970
|
+
return agent_name, avatar, True
|
|
1971
|
+
|
|
1972
|
+
# 2) Fallback to preset-based personalize
|
|
1914
1973
|
meta = ctx.meta
|
|
1915
1974
|
if meta is None:
|
|
1916
|
-
return
|
|
1975
|
+
return "", None, False
|
|
1976
|
+
|
|
1977
|
+
pid = self.get_or_create_pid(meta)
|
|
1978
|
+
default_name = self.pids[pid].name_bot if pid in self.pids else ""
|
|
1979
|
+
|
|
1917
1980
|
preset_id = meta.preset
|
|
1918
1981
|
if not preset_id:
|
|
1919
|
-
return
|
|
1982
|
+
return default_name, None, False
|
|
1983
|
+
|
|
1920
1984
|
preset = self.window.core.presets.get(preset_id)
|
|
1921
1985
|
if preset is None or not preset.ai_personalize:
|
|
1922
|
-
return
|
|
1923
|
-
|
|
1986
|
+
return default_name, None, False
|
|
1987
|
+
|
|
1988
|
+
name = preset.ai_name or default_name
|
|
1924
1989
|
avatar = None
|
|
1925
1990
|
if preset.ai_avatar:
|
|
1926
1991
|
presets_dir = self.window.core.config.get_user_dir("presets")
|
|
@@ -1928,7 +1993,7 @@ class Renderer(BaseRenderer):
|
|
|
1928
1993
|
avatar_path = os.path.join(avatars_dir, preset.ai_avatar)
|
|
1929
1994
|
if os.path.exists(avatar_path):
|
|
1930
1995
|
avatar = f"{self._file_prefix}{avatar_path}"
|
|
1931
|
-
return name, avatar,
|
|
1996
|
+
return name, avatar, True
|
|
1932
1997
|
|
|
1933
1998
|
def _build_render_block(
|
|
1934
1999
|
self,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-09-
|
|
3
|
+
"version": "2.6.62",
|
|
4
|
+
"app.version": "2.6.62",
|
|
5
|
+
"updated_at": "2025-09-26T00:00:00"
|
|
6
6
|
},
|
|
7
7
|
"access.audio.event.speech": false,
|
|
8
8
|
"access.audio.event.speech.disabled": [],
|
|
@@ -141,7 +141,6 @@
|
|
|
141
141
|
"ctx.auto_summary": true,
|
|
142
142
|
"ctx.auto_summary.model": "gpt-4o-mini",
|
|
143
143
|
"ctx.code_interpreter": true,
|
|
144
|
-
"ctx.convert_lists": false,
|
|
145
144
|
"ctx.counters.all": false,
|
|
146
145
|
"ctx.edit_icons": true,
|
|
147
146
|
"ctx.list.expanded": [],
|
|
@@ -219,7 +218,6 @@
|
|
|
219
218
|
"interpreter.input": "",
|
|
220
219
|
"interpreter.ipython": true,
|
|
221
220
|
"lang": "en",
|
|
222
|
-
"layout.animation.disable": false,
|
|
223
221
|
"layout.density": -1,
|
|
224
222
|
"layout.dialog.geometry.store": true,
|
|
225
223
|
"layout.dialog.geometry": {},
|
|
@@ -398,6 +396,8 @@
|
|
|
398
396
|
"presence_penalty": 0.0,
|
|
399
397
|
"preset": "current.chat",
|
|
400
398
|
"preset.plugins": "",
|
|
399
|
+
"presets.drag_and_drop.enabled": true,
|
|
400
|
+
"presets_order": {},
|
|
401
401
|
"prompt": "",
|
|
402
402
|
"prompt.agent.continue": "Continue, or complete the run if the goal is fully achieved.",
|
|
403
403
|
"prompt.agent.continue.always": "Continue reasoning...",
|
|
@@ -522,7 +522,6 @@
|
|
|
522
522
|
},
|
|
523
523
|
"temperature": 1.0,
|
|
524
524
|
"theme": "dark_darker",
|
|
525
|
-
"theme.markdown": true,
|
|
526
525
|
"theme.style": "chatgpt",
|
|
527
526
|
"top_p": 1.0,
|
|
528
527
|
"upload.data_dir": false,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-09-
|
|
3
|
+
"version": "2.6.62",
|
|
4
|
+
"app.version": "2.6.62",
|
|
5
|
+
"updated_at": "2025-09-26T00:00:00"
|
|
6
6
|
},
|
|
7
7
|
"items": {
|
|
8
8
|
"SpeakLeash/bielik-11b-v2.3-instruct:Q4_K_M": {
|
|
@@ -838,19 +838,6 @@
|
|
|
838
838
|
"step": 1,
|
|
839
839
|
"advanced": false
|
|
840
840
|
},
|
|
841
|
-
"layout.animation.disable": {
|
|
842
|
-
"section": "layout",
|
|
843
|
-
"type": "bool",
|
|
844
|
-
"slider": false,
|
|
845
|
-
"label": "settings.layout.animation.disable",
|
|
846
|
-
"description": "settings.layout.animation.disable.desc",
|
|
847
|
-
"value": false,
|
|
848
|
-
"min": 0,
|
|
849
|
-
"max": 0,
|
|
850
|
-
"multiplier": 1,
|
|
851
|
-
"step": 1,
|
|
852
|
-
"advanced": false
|
|
853
|
-
},
|
|
854
841
|
"layout.dialog.geometry.store": {
|
|
855
842
|
"section": "layout",
|
|
856
843
|
"type": "bool",
|
|
@@ -863,18 +850,6 @@
|
|
|
863
850
|
"step": 1,
|
|
864
851
|
"advanced": false
|
|
865
852
|
},
|
|
866
|
-
"theme.markdown": {
|
|
867
|
-
"section": "layout",
|
|
868
|
-
"type": "bool",
|
|
869
|
-
"slider": false,
|
|
870
|
-
"label": "settings.theme.markdown",
|
|
871
|
-
"value": true,
|
|
872
|
-
"min": 0,
|
|
873
|
-
"max": 0,
|
|
874
|
-
"multiplier": 1,
|
|
875
|
-
"step": 1,
|
|
876
|
-
"advanced": false
|
|
877
|
-
},
|
|
878
853
|
"upload.store": {
|
|
879
854
|
"section": "files",
|
|
880
855
|
"type": "bool",
|
|
@@ -1179,24 +1154,12 @@
|
|
|
1179
1154
|
"step": null,
|
|
1180
1155
|
"secret": false
|
|
1181
1156
|
},
|
|
1182
|
-
"ctx.convert_lists": {
|
|
1183
|
-
"section": "ctx",
|
|
1184
|
-
"type": "bool",
|
|
1185
|
-
"slider": false,
|
|
1186
|
-
"label": "settings.ctx.convert_lists",
|
|
1187
|
-
"description": "settings.ctx.convert_lists.desc",
|
|
1188
|
-
"value": true,
|
|
1189
|
-
"min": null,
|
|
1190
|
-
"max": null,
|
|
1191
|
-
"multiplier": null,
|
|
1192
|
-
"step": null,
|
|
1193
|
-
"advanced": false
|
|
1194
|
-
},
|
|
1195
1157
|
"max_output_tokens": {
|
|
1196
1158
|
"section": "model",
|
|
1197
1159
|
"type": "int",
|
|
1198
1160
|
"slider": true,
|
|
1199
1161
|
"label": "settings.max_output_tokens",
|
|
1162
|
+
"description": "settings.zero.limit.desc",
|
|
1200
1163
|
"value": 50,
|
|
1201
1164
|
"min": 0,
|
|
1202
1165
|
"max": 32000,
|
|
@@ -1209,6 +1172,7 @@
|
|
|
1209
1172
|
"type": "int",
|
|
1210
1173
|
"slider": true,
|
|
1211
1174
|
"label": "settings.max_total_tokens",
|
|
1175
|
+
"description": "settings.zero.limit.desc",
|
|
1212
1176
|
"value": 400,
|
|
1213
1177
|
"min": 0,
|
|
1214
1178
|
"max": 256000,
|
|
@@ -144,4 +144,22 @@ QCalendarWidget QAbstractItemView::item:hover {{
|
|
|
144
144
|
QCalendarWidget QMenu::item:selected:focus,
|
|
145
145
|
QCalendarWidget QMenu::item:selected {{
|
|
146
146
|
background: #3a4045;
|
|
147
|
+
}}
|
|
148
|
+
|
|
149
|
+
/* Node editor */
|
|
150
|
+
NodeEditor {{
|
|
151
|
+
qproperty-gridBackColor: #242629;
|
|
152
|
+
qproperty-gridPenColor: #3b3f46;
|
|
153
|
+
|
|
154
|
+
qproperty-nodeBackgroundColor: #2d2f34;
|
|
155
|
+
qproperty-nodeBorderColor: #4b4f57;
|
|
156
|
+
qproperty-nodeSelectionColor: #ff9900;
|
|
157
|
+
qproperty-nodeTitleColor: #3a3d44;
|
|
158
|
+
|
|
159
|
+
qproperty-portInputColor: #66b2ff;
|
|
160
|
+
qproperty-portOutputColor: #70e070;
|
|
161
|
+
qproperty-portConnectedColor: #ffd166;
|
|
162
|
+
|
|
163
|
+
qproperty-edgeColor: #c0c0c0;
|
|
164
|
+
qproperty-edgeSelectedColor: #ff8a5c;
|
|
147
165
|
}}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
QWidget {{
|
|
7
7
|
color: #000;
|
|
8
8
|
margin: 1px;
|
|
9
|
+
background-color: #eeeeee;
|
|
9
10
|
}}
|
|
10
11
|
|
|
11
12
|
QListView,
|
|
@@ -248,7 +249,7 @@ QCalendarWidget QToolButton:hover {{
|
|
|
248
249
|
height: 20px;
|
|
249
250
|
}}
|
|
250
251
|
QMenu::indicator {{
|
|
251
|
-
border: 1px solid gray;
|
|
252
|
+
border: 1px solid gray;
|
|
252
253
|
}}
|
|
253
254
|
QCalendarWidget QAbstractItemView::item:selected:focus,
|
|
254
255
|
QCalendarWidget QAbstractItemView::item:selected {{
|
|
@@ -259,4 +260,22 @@ QCalendarWidget QAbstractItemView::item:hover {{
|
|
|
259
260
|
}}
|
|
260
261
|
.file-explorer QTreeView::branch {{
|
|
261
262
|
background: #fff;
|
|
263
|
+
}}
|
|
264
|
+
|
|
265
|
+
/* Node editor */
|
|
266
|
+
NodeEditor {{
|
|
267
|
+
qproperty-gridBackColor: #ffffff;
|
|
268
|
+
qproperty-gridPenColor: #eaeaea;
|
|
269
|
+
|
|
270
|
+
qproperty-nodeBackgroundColor: #2d2f34;
|
|
271
|
+
qproperty-nodeBorderColor: #4b4f57;
|
|
272
|
+
qproperty-nodeSelectionColor: #ff9900;
|
|
273
|
+
qproperty-nodeTitleColor: #3a3d44;
|
|
274
|
+
|
|
275
|
+
qproperty-portInputColor: #66b2ff;
|
|
276
|
+
qproperty-portOutputColor: #70e070;
|
|
277
|
+
qproperty-portConnectedColor: #ffd166;
|
|
278
|
+
|
|
279
|
+
qproperty-edgeColor: #c0c0c0;
|
|
280
|
+
qproperty-edgeSelectedColor: #ff8a5c;
|
|
262
281
|
}}
|
|
@@ -43,6 +43,7 @@ action.profile.delete = Profil entfernen (nur aus Liste)
|
|
|
43
43
|
action.profile.delete_all = Profil löschen (und alle Benutzerdateien)
|
|
44
44
|
action.redo = Wiederholen
|
|
45
45
|
action.refresh = Aktualisieren
|
|
46
|
+
action.reload: Neuladen
|
|
46
47
|
action.rename = Umbenennen
|
|
47
48
|
action.reset = Zurücksetzen
|
|
48
49
|
action.restore = Wiederherstellen
|
|
@@ -50,7 +51,8 @@ action.save = Speichern
|
|
|
50
51
|
action.save_as = Speichern unter...
|
|
51
52
|
action.save_selection_as = Auswahl speichern unter...
|
|
52
53
|
action.select_all = Alle auswählen
|
|
53
|
-
action.tab.add.chat
|
|
54
|
+
action.tab.add.chat: Neuen Chat hinzufügen
|
|
55
|
+
action.tab.add.chat.tooltip: Neuen Chat hinzufügen (RMT für mehr Optionen...)
|
|
54
56
|
action.tab.add.notepad = Neuen Notizblock hinzufügen
|
|
55
57
|
action.tab.add.tool = Neues Werkzeug hinzufügen
|
|
56
58
|
action.tab.close = Schließen
|
|
@@ -72,6 +74,8 @@ action.use.read_cmd = Bitten, diese Datei zu lesen...
|
|
|
72
74
|
action.video.open = Video oder Audio öffnen...
|
|
73
75
|
action.video.play = Video oder Audio abspielen...
|
|
74
76
|
action.video.transcribe = Ton transkribieren...
|
|
77
|
+
agent.builder.title = Agenten-Editor
|
|
78
|
+
agent.builder.tooltip = Öffne den Agenten-Editor
|
|
75
79
|
agent.coder.additional.label = Zusätzlicher Prompt
|
|
76
80
|
agent.coder.additional.prompt.desc = Zusätzlicher Prompt für Agent (wird zum Basis-Prompt hinzugefügt)
|
|
77
81
|
agent.coder.base.label = Basis-Prompt
|
|
@@ -101,6 +105,7 @@ agent.option.prompt.planner.desc = Prompt für Planer-Agent
|
|
|
101
105
|
agent.option.prompt.search.desc = Prompt für Such-Agent
|
|
102
106
|
agent.option.prompt.supervisor.desc = Prompt für Supervisor
|
|
103
107
|
agent.option.prompt.worker.desc = Prompt für Arbeiter
|
|
108
|
+
agent.option.role = Kurze Beschreibung des Betriebs des Agents zur Anweisung des Modells (optional)
|
|
104
109
|
agent.option.section.base = Basisagent
|
|
105
110
|
agent.option.section.chooser = Wähler
|
|
106
111
|
agent.option.section.feedback = Feedback
|
|
@@ -239,6 +244,8 @@ clipboard.copied_to = In die Zwischenablage kopiert:
|
|
|
239
244
|
cmd.enabled = + Werkzeuge
|
|
240
245
|
cmd.tip = Tipp: Um die Ausführung von Werkzeugen aus Plugins zu ermöglichen, müssen Sie die Option "+ Werkzeuge" aktivieren.
|
|
241
246
|
coming_soon = Demnächst...
|
|
247
|
+
common.down = Nach unten verschieben
|
|
248
|
+
common.up = Nach oben verschieben
|
|
242
249
|
confirm.assistant.delete = Assistent löschen?
|
|
243
250
|
confirm.assistant.files.clear = Dateien löschen (nur lokal)?
|
|
244
251
|
confirm.assistant.files.truncate = Sind Sie sicher, dass Sie alle Dateien von allen Speichern entfernen möchten?
|
|
@@ -651,6 +658,7 @@ event.control.voice_cmd.toggle = Sprachsteuerung: Umschalten
|
|
|
651
658
|
event.control.voice_msg.start = Spracheingabe: Start
|
|
652
659
|
event.control.voice_msg.stop = Spracheingabe: Stopp
|
|
653
660
|
event.control.voice_msg.toggle = Spracheingabe: Umschalten
|
|
661
|
+
exit.msg = Gefällt dir PyGPT? Unterstütze die Entwicklung des Projekts:
|
|
654
662
|
expert.wait.failed: Aufruf des Experten fehlgeschlagen
|
|
655
663
|
expert.wait.status: Warten auf Experten...
|
|
656
664
|
files.delete.confirm = Datei/Verzeichnis löschen?
|
|
@@ -678,6 +686,8 @@ html_canvas.clear.confirm = HTML-Canvas-Ausgabe löschen?
|
|
|
678
686
|
icon.audio.input = Audioeingang aktivieren/deaktivieren
|
|
679
687
|
icon.audio.output = Audioausgang aktivieren/deaktivieren
|
|
680
688
|
icon.remote_tool.web = Websuche (ferngesteuertes Werkzeug, kein lokales Werkzeug)
|
|
689
|
+
icon.remote_tool.web.disabled: Websuche (Remote-Tool, kein lokales Tool) - deaktiviert
|
|
690
|
+
icon.remote_tool.web.enabled: Websuche (Remote-Tool, kein lokales Tool) - aktiviert
|
|
681
691
|
icon.video.capture = Videoaufnahme von der Kamera aktivieren/deaktivieren
|
|
682
692
|
idx.btn.clear = Index löschen
|
|
683
693
|
idx.btn.index_all = Alles indizieren
|
|
@@ -725,6 +735,7 @@ input.search.placeholder = Suchen...
|
|
|
725
735
|
input.send_clear = Nach dem Senden löschen
|
|
726
736
|
input.stream = Streamen
|
|
727
737
|
input.tab = Eingabe
|
|
738
|
+
input.tab.tooltip = {chars} Zeichen (~{tokens} Token)
|
|
728
739
|
interpreter.all = Verlauf ausführen (alle)
|
|
729
740
|
interpreter.auto_clear = Bei Senden löschen
|
|
730
741
|
interpreter.btn.clear = Ausgabe löschen
|
|
@@ -773,6 +784,7 @@ menu.config.save = Konfiguration speichern
|
|
|
773
784
|
menu.config.settings = Einstellungen...
|
|
774
785
|
menu.debug = Debug
|
|
775
786
|
menu.debug.agent = Agent...
|
|
787
|
+
menu.debug.agent_builder = Agenten-Editor
|
|
776
788
|
menu.debug.app.log = Logdatei ansehen (app.log)
|
|
777
789
|
menu.debug.assistants = Assistenten...
|
|
778
790
|
menu.debug.attachments = Dateien/Anhänge...
|
|
@@ -826,6 +838,7 @@ menu.theme.style = Stil...
|
|
|
826
838
|
menu.theme.syntax = Syntaxhervorhebung des Codes...
|
|
827
839
|
menu.theme.tooltips = Tooltips anzeigen
|
|
828
840
|
menu.tools = Werkzeuge
|
|
841
|
+
menu.tools.agent.builder = Agenten-Editor
|
|
829
842
|
menu.tools.audio.transcribe = Audio-/Videodateien transkribieren
|
|
830
843
|
menu.tools.html_canvas = HTML/JS-Canvas
|
|
831
844
|
menu.tools.image.viewer = Bildbetrachter
|
|
@@ -933,6 +946,57 @@ multimodal.audio = Audio
|
|
|
933
946
|
multimodal.image = Bild
|
|
934
947
|
multimodal.text = Text
|
|
935
948
|
multimodal.video = Video
|
|
949
|
+
node.editor.bottom.tip: Rechtsklick: Knoten hinzufügen / rückgängig machen / wiederherstellen • Mittelklick: Ansichts verschieben • Strg + Mausrad: zoom; Linksklick auf Port: Verbindung erstellen • Strg + Linksklick auf Port: neu verdrahten/lösen • Rechtsklick oder ENTF auf Knoten/Verbindung: entfernen
|
|
950
|
+
node.editor.cap.na: k.A.
|
|
951
|
+
node.editor.cap.unlimited: unbegrenzt (∞)
|
|
952
|
+
node.editor.cmd.add: Hinzufügen
|
|
953
|
+
node.editor.cmd.clear: Leeren
|
|
954
|
+
node.editor.cmd.connect: Verbinden
|
|
955
|
+
node.editor.cmd.delete_connection: Verbindung löschen
|
|
956
|
+
node.editor.cmd.delete_node: Knoten löschen
|
|
957
|
+
node.editor.cmd.move_node: Knoten verschieben
|
|
958
|
+
node.editor.cmd.resize_node: Knotengröße ändern
|
|
959
|
+
node.editor.cmd.rewire_connection: Verbindung neu verdrahten
|
|
960
|
+
node.editor.edge.delete: Verbindung löschen
|
|
961
|
+
node.editor.hint.click_start: Klicken: eine neue Verbindung starten
|
|
962
|
+
node.editor.hint.ctrl_rewire: Strg+Klicken: bestehende neu verdrahten/lösen
|
|
963
|
+
node.editor.label.id: ID
|
|
964
|
+
node.editor.lbl.allowed: Erlaubte Verbindungen:
|
|
965
|
+
node.editor.lbl.node: Knoten:
|
|
966
|
+
node.editor.lbl.port: Anschluss:
|
|
967
|
+
node.editor.list.tip: Liste der hinzugefügten benutzerdefinierten Agenten-Workflows
|
|
968
|
+
node.editor.macro.delete_selection: Auswahl löschen
|
|
969
|
+
node.editor.menu.add: Hinzufügen
|
|
970
|
+
node.editor.menu.clear: Leeren
|
|
971
|
+
node.editor.menu.redo: Wiederherstellen
|
|
972
|
+
node.editor.menu.undo: Rückgängig
|
|
973
|
+
node.editor.node.delete: Löschen
|
|
974
|
+
node.editor.node.rename: Umbenennen
|
|
975
|
+
node.editor.overlay.grab: Greifen: globales Schwenken mit LMT umschalten
|
|
976
|
+
node.editor.overlay.zoom_in: Vergrößern
|
|
977
|
+
node.editor.overlay.zoom_out: Verkleinern
|
|
978
|
+
node.editor.property.agent.name = Agent
|
|
979
|
+
node.editor.property.input.name = Eingabe
|
|
980
|
+
node.editor.property.instruction.name = Anweisung
|
|
981
|
+
node.editor.property.instruction.placeholder = Systemanweisung für den Agenten
|
|
982
|
+
node.editor.property.local_tools.name = Lokale Werkzeuge
|
|
983
|
+
node.editor.property.memory.name = Speicher
|
|
984
|
+
node.editor.property.name.name = Name
|
|
985
|
+
node.editor.property.name.placeholder = Name des Agenten
|
|
986
|
+
node.editor.property.output.name = Ausgabe
|
|
987
|
+
node.editor.property.remote_tools.name = Remote-Werkzeuge
|
|
988
|
+
node.editor.property.role.name = Rolle
|
|
989
|
+
node.editor.property.role.placeholder = Optionale kurze Beschreibung des Zwecks des Agenten
|
|
990
|
+
node.editor.rename.label: Name:
|
|
991
|
+
node.editor.rename.title: Knoten umbenennen
|
|
992
|
+
node.editor.side.input: Eingang
|
|
993
|
+
node.editor.side.output: Ausgang
|
|
994
|
+
node.editor.spec.agent.title = Agent
|
|
995
|
+
node.editor.spec.end.title = Ende
|
|
996
|
+
node.editor.spec.memory.title = Speicher (Kontext)
|
|
997
|
+
node.editor.spec.start.title = Start
|
|
998
|
+
node.editor.status.no_nodes: Keine Knoten
|
|
999
|
+
node.editor.type.unknown: Unbekannt
|
|
936
1000
|
notify.agent.goal.content = Agent: das Ziel wurde erreicht.
|
|
937
1001
|
notify.agent.goal.title = Ziel erreicht
|
|
938
1002
|
notify.agent.stop.content = Agent: gestoppt
|
|
@@ -1418,6 +1482,7 @@ settings.vision.capture.idx = Kameragerät
|
|
|
1418
1482
|
settings.vision.capture.idx.desc = Wählen Sie ein Kameragerät für die Echtzeit-Videoaufnahme
|
|
1419
1483
|
settings.vision.capture.quality = Aufnahmequalität (%)
|
|
1420
1484
|
settings.vision.capture.width = Aufnahmewidth (in Pixeln)
|
|
1485
|
+
settings.zero.limit.desc: Stellen Sie 0 ein, um das Limit zu deaktivieren.
|
|
1421
1486
|
settings.zoom = Zoomen des Chat-Ausgabefensters
|
|
1422
1487
|
speech.enable = Sprachausgabe aktivieren
|
|
1423
1488
|
speech.listening = Sprechen Sie jetzt...
|
|
@@ -43,6 +43,7 @@ action.profile.delete = Remove profile (from list only)
|
|
|
43
43
|
action.profile.delete_all = Delete profile (with all user files)
|
|
44
44
|
action.redo = Redo
|
|
45
45
|
action.refresh = Refresh
|
|
46
|
+
action.reload = Reload
|
|
46
47
|
action.rename = Rename
|
|
47
48
|
action.reset = Reset
|
|
48
49
|
action.restore = Restore
|
|
@@ -51,6 +52,7 @@ action.save_as = Save as...
|
|
|
51
52
|
action.save_selection_as = Save selection as...
|
|
52
53
|
action.select_all = Select all
|
|
53
54
|
action.tab.add.chat = Add a new chat
|
|
55
|
+
action.tab.add.chat.tooltip = Add a new chat (RMB click to more options...)
|
|
54
56
|
action.tab.add.notepad = Add a new notepad
|
|
55
57
|
action.tab.add.tool = Add a new tool
|
|
56
58
|
action.tab.close = Close
|
|
@@ -75,7 +77,7 @@ action.video.transcribe = Transcribe audio...
|
|
|
75
77
|
agent.builder.confirm.clear.msg = Do you really want to clear the graph?
|
|
76
78
|
agent.builder.confirm.clear.title = Clear
|
|
77
79
|
agent.builder.confirm.delete.msg = Do you really want to delete the agent?
|
|
78
|
-
agent.builder.title = Agents Builder
|
|
80
|
+
agent.builder.title = Agents Builder
|
|
79
81
|
agent.coder.additional.label = Additional prompt
|
|
80
82
|
agent.coder.additional.prompt.desc = Additional prompt for agent (will be added to the base prompt)
|
|
81
83
|
agent.coder.base.label = Base prompt
|
|
@@ -105,6 +107,7 @@ agent.option.prompt.planner.desc = Prompt for Planner agent
|
|
|
105
107
|
agent.option.prompt.search.desc = Prompt for search agent
|
|
106
108
|
agent.option.prompt.supervisor.desc = Prompt for Supervisor
|
|
107
109
|
agent.option.prompt.worker.desc = Prompt for Worker
|
|
110
|
+
agent.option.role = Short description of the agent's operation for instructing the model (optional)
|
|
108
111
|
agent.option.section.base = Base agent
|
|
109
112
|
agent.option.section.chooser = Chooser
|
|
110
113
|
agent.option.section.feedback = Feedback
|
|
@@ -245,6 +248,8 @@ clipboard.copied_to = Copied to clipboard:
|
|
|
245
248
|
cmd.enabled = + Tools
|
|
246
249
|
cmd.tip = Tip: To enable the execution of tools from plugins you must enable the "+ Tools" option.
|
|
247
250
|
coming_soon = Coming soon...
|
|
251
|
+
common.down = Move down
|
|
252
|
+
common.up = Move up
|
|
248
253
|
confirm.assistant.delete = Delete assistant?
|
|
249
254
|
confirm.assistant.files.clear = Clear files (local only)?
|
|
250
255
|
confirm.assistant.files.truncate = Are you sure you want to remove all files from all Assistants?
|
|
@@ -658,6 +663,7 @@ event.control.voice_cmd.toggle = Voice control: Toggle
|
|
|
658
663
|
event.control.voice_msg.start = Voice input: Start
|
|
659
664
|
event.control.voice_msg.stop = Voice input: Stop
|
|
660
665
|
event.control.voice_msg.toggle = Voice input: Toggle
|
|
666
|
+
exit.msg = Do you like PyGPT? Support the development of the project:
|
|
661
667
|
expert.wait.failed: Failed calling expert
|
|
662
668
|
expert.wait.status: Waiting for expert...
|
|
663
669
|
files.delete.confirm = Delete file/directory?
|
|
@@ -685,6 +691,8 @@ html_canvas.clear.confirm = Clear HTML canvas output?
|
|
|
685
691
|
icon.audio.input = Enable/disable audio input
|
|
686
692
|
icon.audio.output = Enable/disable audio output
|
|
687
693
|
icon.remote_tool.web = Web Search (remote tool, not a local tool)
|
|
694
|
+
icon.remote_tool.web.disabled = Web Search (remote tool, not a local tool) - disabled
|
|
695
|
+
icon.remote_tool.web.enabled = Web Search (remote tool, not a local tool) - enabled
|
|
688
696
|
icon.video.capture = Enable/disable camera capture
|
|
689
697
|
idx.btn.clear = Clear index
|
|
690
698
|
idx.btn.index_all = Index all
|
|
@@ -732,6 +740,7 @@ input.search.placeholder = Search...
|
|
|
732
740
|
input.send_clear = Clear on send
|
|
733
741
|
input.stream = Stream
|
|
734
742
|
input.tab = Input
|
|
743
|
+
input.tab.tooltip = {chars} chars (~{tokens} tokens)
|
|
735
744
|
interpreter.all = Execute history (all)
|
|
736
745
|
interpreter.auto_clear = Clear output on send
|
|
737
746
|
interpreter.btn.clear = Clear output
|
|
@@ -780,7 +789,7 @@ menu.config.save = Save config
|
|
|
780
789
|
menu.config.settings = Settings...
|
|
781
790
|
menu.debug = Debug
|
|
782
791
|
menu.debug.agent = Agent...
|
|
783
|
-
menu.debug.agent_builder = Agents Builder
|
|
792
|
+
menu.debug.agent_builder = Agents Builder
|
|
784
793
|
menu.debug.app.log = View log file (app.log)
|
|
785
794
|
menu.debug.assistants = Assistants...
|
|
786
795
|
menu.debug.attachments = Files / attachments...
|
|
@@ -835,7 +844,7 @@ menu.theme.style = Style...
|
|
|
835
844
|
menu.theme.syntax = Code syntax highlight...
|
|
836
845
|
menu.theme.tooltips = Show tooltips
|
|
837
846
|
menu.tools = Tools
|
|
838
|
-
menu.tools.agent.builder = Agents Builder
|
|
847
|
+
menu.tools.agent.builder = Agents Builder
|
|
839
848
|
menu.tools.audio.transcribe = Transcribe Audio/Video Files
|
|
840
849
|
menu.tools.html_canvas = HTML/JS Canvas
|
|
841
850
|
menu.tools.image.viewer = Image Viewer
|
|
@@ -943,6 +952,57 @@ multimodal.audio = Audio
|
|
|
943
952
|
multimodal.image = Image
|
|
944
953
|
multimodal.text = Text
|
|
945
954
|
multimodal.video = Video
|
|
955
|
+
node.editor.bottom.tip = Right-click: add node / undo / redo • Middle-click: pan view • Ctrl + Mouse wheel: zoom Left-click a port: create connection • Ctrl + Left-click a port: rewire or detach • Right-click or DEL a node/connection: remove
|
|
956
|
+
node.editor.cap.na = n/a
|
|
957
|
+
node.editor.cap.unlimited = unlimited (∞)
|
|
958
|
+
node.editor.cmd.add = Add
|
|
959
|
+
node.editor.cmd.clear = Clear
|
|
960
|
+
node.editor.cmd.connect = Connect
|
|
961
|
+
node.editor.cmd.delete_connection = Delete Connection
|
|
962
|
+
node.editor.cmd.delete_node = Delete Node
|
|
963
|
+
node.editor.cmd.move_node = Move Node
|
|
964
|
+
node.editor.cmd.resize_node = Resize Node
|
|
965
|
+
node.editor.cmd.rewire_connection = Rewire Connection
|
|
966
|
+
node.editor.edge.delete = Delete connection
|
|
967
|
+
node.editor.hint.click_start = Click: start a new connection
|
|
968
|
+
node.editor.hint.ctrl_rewire = Ctrl+Click: rewire/detach existing
|
|
969
|
+
node.editor.label.id = ID
|
|
970
|
+
node.editor.lbl.allowed = Allowed connections:
|
|
971
|
+
node.editor.lbl.node = Node:
|
|
972
|
+
node.editor.lbl.port = Port:
|
|
973
|
+
node.editor.list.tip = List of added custom agent workflows (available in the agent type section of the presets editor)
|
|
974
|
+
node.editor.macro.delete_selection = Delete selection
|
|
975
|
+
node.editor.menu.add = Add
|
|
976
|
+
node.editor.menu.clear = Clear
|
|
977
|
+
node.editor.menu.redo = Redo
|
|
978
|
+
node.editor.menu.undo = Undo
|
|
979
|
+
node.editor.node.delete = Delete
|
|
980
|
+
node.editor.node.rename = Rename
|
|
981
|
+
node.editor.overlay.grab = Grab: toggle global panning with Left Mouse Button
|
|
982
|
+
node.editor.overlay.zoom_in = Zoom In
|
|
983
|
+
node.editor.overlay.zoom_out = Zoom Out
|
|
984
|
+
node.editor.property.agent.name = Agent
|
|
985
|
+
node.editor.property.input.name = Input
|
|
986
|
+
node.editor.property.instruction.name = Instruction
|
|
987
|
+
node.editor.property.instruction.placeholder = System instruction for the agent
|
|
988
|
+
node.editor.property.local_tools.name = Local tools
|
|
989
|
+
node.editor.property.memory.name = Memory
|
|
990
|
+
node.editor.property.name.name = Name
|
|
991
|
+
node.editor.property.name.placeholder = Name of the agent
|
|
992
|
+
node.editor.property.output.name = Output
|
|
993
|
+
node.editor.property.remote_tools.name = Remote tools
|
|
994
|
+
node.editor.property.role.name = Role
|
|
995
|
+
node.editor.property.role.placeholder = Optional short description of agent's purpose
|
|
996
|
+
node.editor.rename.label = Name:
|
|
997
|
+
node.editor.rename.title = Rename Node
|
|
998
|
+
node.editor.side.input = Input
|
|
999
|
+
node.editor.side.output = Output
|
|
1000
|
+
node.editor.spec.agent.title = Agent
|
|
1001
|
+
node.editor.spec.end.title = End
|
|
1002
|
+
node.editor.spec.memory.title = Memory (Context)
|
|
1003
|
+
node.editor.spec.start.title = Start
|
|
1004
|
+
node.editor.status.no_nodes = No nodes
|
|
1005
|
+
node.editor.type.unknown = Unknown
|
|
946
1006
|
notify.agent.goal.content = Agent: the goal has been achieved.
|
|
947
1007
|
notify.agent.goal.title = Goal achieved
|
|
948
1008
|
notify.agent.stop.content = Agent: stopped
|
|
@@ -1492,6 +1552,7 @@ settings.vision.capture.idx = Camera Device
|
|
|
1492
1552
|
settings.vision.capture.idx.desc = Select a camera device for real-time video capture
|
|
1493
1553
|
settings.vision.capture.quality = Capture quality (%)
|
|
1494
1554
|
settings.vision.capture.width = Capture width (in pixels)
|
|
1555
|
+
settings.zero.limit.desc = Set to 0 to disable the limit.
|
|
1495
1556
|
settings.zoom = Chat output window zoom
|
|
1496
1557
|
speech.enable = Speak
|
|
1497
1558
|
speech.listening = Speak now...
|