pygpt-net 2.7.4__py3-none-any.whl → 2.7.5__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 +7 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app_core.py +4 -2
- pygpt_net/controller/__init__.py +5 -1
- pygpt_net/controller/assistant/assistant.py +1 -4
- pygpt_net/controller/assistant/batch.py +5 -504
- pygpt_net/controller/assistant/editor.py +5 -5
- pygpt_net/controller/assistant/files.py +16 -16
- pygpt_net/controller/chat/handler/google_stream.py +307 -1
- pygpt_net/controller/chat/handler/worker.py +8 -1
- pygpt_net/controller/chat/image.py +2 -2
- pygpt_net/controller/dialogs/confirm.py +73 -101
- pygpt_net/controller/lang/mapping.py +9 -9
- pygpt_net/controller/painter/capture.py +50 -1
- pygpt_net/controller/presets/presets.py +2 -1
- pygpt_net/controller/remote_store/__init__.py +12 -0
- pygpt_net/{provider/core/assistant_file/db_sqlite → controller/remote_store/google}/__init__.py +2 -2
- pygpt_net/controller/remote_store/google/batch.py +402 -0
- pygpt_net/controller/remote_store/google/store.py +615 -0
- pygpt_net/controller/remote_store/openai/__init__.py +12 -0
- pygpt_net/controller/remote_store/openai/batch.py +524 -0
- pygpt_net/controller/{assistant → remote_store/openai}/store.py +63 -60
- pygpt_net/controller/remote_store/remote_store.py +35 -0
- pygpt_net/controller/ui/ui.py +20 -1
- pygpt_net/core/assistants/assistants.py +3 -15
- pygpt_net/core/db/database.py +5 -3
- pygpt_net/core/locale/placeholder.py +35 -0
- pygpt_net/core/remote_store/__init__.py +12 -0
- pygpt_net/core/remote_store/google/__init__.py +11 -0
- pygpt_net/core/remote_store/google/files.py +224 -0
- pygpt_net/core/remote_store/google/store.py +248 -0
- pygpt_net/core/remote_store/openai/__init__.py +11 -0
- pygpt_net/core/{assistants → remote_store/openai}/files.py +26 -19
- pygpt_net/core/{assistants → remote_store/openai}/store.py +32 -15
- pygpt_net/core/remote_store/remote_store.py +24 -0
- pygpt_net/data/config/config.json +8 -4
- pygpt_net/data/config/models.json +77 -3
- pygpt_net/data/config/settings.json +45 -0
- pygpt_net/data/locale/locale.de.ini +41 -41
- pygpt_net/data/locale/locale.en.ini +53 -43
- pygpt_net/data/locale/locale.es.ini +41 -41
- pygpt_net/data/locale/locale.fr.ini +41 -41
- pygpt_net/data/locale/locale.it.ini +41 -41
- pygpt_net/data/locale/locale.pl.ini +42 -42
- pygpt_net/data/locale/locale.uk.ini +41 -41
- pygpt_net/data/locale/locale.zh.ini +41 -41
- pygpt_net/data/locale/plugin.cmd_history.de.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.en.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.es.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.fr.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.it.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.pl.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.uk.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_history.zh.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_mouse_control.en.ini +14 -0
- pygpt_net/data/locale/plugin.cmd_web.de.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.en.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.es.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.fr.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.it.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.pl.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.uk.ini +1 -1
- pygpt_net/data/locale/plugin.cmd_web.zh.ini +1 -1
- pygpt_net/data/locale/plugin.idx_llama_index.de.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.en.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.es.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.fr.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.it.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.pl.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.uk.ini +2 -2
- pygpt_net/data/locale/plugin.idx_llama_index.zh.ini +2 -2
- pygpt_net/item/assistant.py +1 -211
- pygpt_net/item/ctx.py +3 -1
- pygpt_net/item/store.py +238 -0
- pygpt_net/migrations/Version20260102190000.py +35 -0
- pygpt_net/migrations/__init__.py +3 -1
- pygpt_net/plugin/cmd_mouse_control/config.py +470 -1
- pygpt_net/plugin/cmd_mouse_control/plugin.py +488 -22
- pygpt_net/plugin/cmd_mouse_control/worker.py +464 -87
- pygpt_net/plugin/cmd_mouse_control/worker_sandbox.py +729 -0
- pygpt_net/plugin/idx_llama_index/config.py +2 -2
- pygpt_net/provider/api/google/__init__.py +16 -54
- pygpt_net/provider/api/google/chat.py +546 -129
- pygpt_net/provider/api/google/computer.py +190 -0
- pygpt_net/provider/api/google/realtime/realtime.py +2 -2
- pygpt_net/provider/api/google/remote_tools.py +93 -0
- pygpt_net/provider/api/google/store.py +546 -0
- pygpt_net/provider/api/google/worker/__init__.py +0 -0
- pygpt_net/provider/api/google/worker/importer.py +392 -0
- pygpt_net/provider/api/openai/computer.py +10 -1
- pygpt_net/provider/api/openai/store.py +6 -6
- pygpt_net/provider/api/openai/worker/importer.py +24 -24
- pygpt_net/provider/core/config/patch.py +16 -1
- pygpt_net/provider/core/config/patches/patch_before_2_6_42.py +3 -3
- pygpt_net/provider/core/model/patch.py +17 -3
- pygpt_net/provider/core/preset/json_file.py +13 -7
- pygpt_net/provider/core/{assistant_file → remote_file}/__init__.py +1 -1
- pygpt_net/provider/core/{assistant_file → remote_file}/base.py +9 -9
- pygpt_net/provider/core/remote_file/db_sqlite/__init__.py +12 -0
- pygpt_net/provider/core/{assistant_file → remote_file}/db_sqlite/patch.py +1 -1
- pygpt_net/provider/core/{assistant_file → remote_file}/db_sqlite/provider.py +23 -20
- pygpt_net/provider/core/{assistant_file → remote_file}/db_sqlite/storage.py +35 -27
- pygpt_net/provider/core/{assistant_file → remote_file}/db_sqlite/utils.py +5 -4
- pygpt_net/provider/core/{assistant_store → remote_store}/__init__.py +1 -1
- pygpt_net/provider/core/{assistant_store → remote_store}/base.py +10 -10
- pygpt_net/provider/core/{assistant_store → remote_store}/db_sqlite/__init__.py +1 -1
- pygpt_net/provider/core/{assistant_store → remote_store}/db_sqlite/patch.py +1 -1
- pygpt_net/provider/core/{assistant_store → remote_store}/db_sqlite/provider.py +16 -15
- pygpt_net/provider/core/{assistant_store → remote_store}/db_sqlite/storage.py +30 -23
- pygpt_net/provider/core/{assistant_store → remote_store}/db_sqlite/utils.py +5 -4
- pygpt_net/provider/core/{assistant_store → remote_store}/json_file.py +9 -9
- pygpt_net/provider/llms/google.py +2 -2
- pygpt_net/ui/base/config_dialog.py +3 -2
- pygpt_net/ui/dialog/assistant.py +3 -3
- pygpt_net/ui/dialog/plugins.py +3 -1
- pygpt_net/ui/dialog/remote_store_google.py +539 -0
- pygpt_net/ui/dialog/{assistant_store.py → remote_store_openai.py} +95 -95
- pygpt_net/ui/dialogs.py +5 -3
- pygpt_net/ui/layout/chat/attachments_uploaded.py +3 -3
- pygpt_net/ui/layout/toolbox/computer_env.py +26 -8
- pygpt_net/ui/menu/tools.py +13 -5
- pygpt_net/ui/widget/dialog/remote_store_google.py +56 -0
- pygpt_net/ui/widget/dialog/{assistant_store.py → remote_store_openai.py} +9 -9
- pygpt_net/ui/widget/element/button.py +4 -4
- pygpt_net/ui/widget/lists/remote_store_google.py +248 -0
- pygpt_net/ui/widget/lists/{assistant_store.py → remote_store_openai.py} +21 -21
- pygpt_net/ui/widget/option/checkbox_list.py +47 -9
- pygpt_net/ui/widget/option/combo.py +39 -3
- {pygpt_net-2.7.4.dist-info → pygpt_net-2.7.5.dist-info}/METADATA +33 -2
- {pygpt_net-2.7.4.dist-info → pygpt_net-2.7.5.dist-info}/RECORD +133 -108
- {pygpt_net-2.7.4.dist-info → pygpt_net-2.7.5.dist-info}/LICENSE +0 -0
- {pygpt_net-2.7.4.dist-info → pygpt_net-2.7.5.dist-info}/WHEEL +0 -0
- {pygpt_net-2.7.4.dist-info → pygpt_net-2.7.5.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:
|
|
9
|
+
# Updated Date: 2026.01.01 15:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from pygpt_net.core.types import MODEL_DEFAULT_MINI
|
|
@@ -65,7 +65,7 @@ class Config(BaseConfig):
|
|
|
65
65
|
use="models",
|
|
66
66
|
value=MODEL_DEFAULT_MINI,
|
|
67
67
|
label="Model for question preparation",
|
|
68
|
-
description="Model used to prepare question before asking Llama-index, default: gpt-
|
|
68
|
+
description="Model used to prepare question before asking Llama-index, default: gpt-4o-mini",
|
|
69
69
|
tooltip="Model",
|
|
70
70
|
)
|
|
71
71
|
plugin.add_option(
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date:
|
|
9
|
+
# Updated Date: 2026.01.02 19:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import os
|
|
@@ -22,16 +22,20 @@ from pygpt_net.core.types import (
|
|
|
22
22
|
MODE_COMPLETION,
|
|
23
23
|
MODE_IMAGE,
|
|
24
24
|
MODE_RESEARCH,
|
|
25
|
+
MODE_COMPUTER,
|
|
25
26
|
)
|
|
26
27
|
from pygpt_net.core.bridge.context import BridgeContext
|
|
27
28
|
from pygpt_net.item.model import ModelItem
|
|
28
29
|
|
|
29
30
|
from .chat import Chat
|
|
31
|
+
from .computer import Computer
|
|
30
32
|
from .vision import Vision
|
|
31
33
|
from .tools import Tools
|
|
32
34
|
from .audio import Audio
|
|
33
35
|
from .image import Image
|
|
34
36
|
from .realtime import Realtime
|
|
37
|
+
from .remote_tools import RemoteTools
|
|
38
|
+
from .store import Store
|
|
35
39
|
from .video import Video
|
|
36
40
|
from .music import Music
|
|
37
41
|
|
|
@@ -51,6 +55,9 @@ class ApiGoogle:
|
|
|
51
55
|
self.realtime = Realtime(window)
|
|
52
56
|
self.video = Video(window)
|
|
53
57
|
self.music = Music(window)
|
|
58
|
+
self.computer = Computer(window)
|
|
59
|
+
self.remote_tools = RemoteTools(window)
|
|
60
|
+
self.store = Store(window)
|
|
54
61
|
self.client: Optional[genai.Client] = None
|
|
55
62
|
self.locked = False
|
|
56
63
|
self.last_client_args: Optional[Dict[str, Any]] = None
|
|
@@ -125,7 +132,13 @@ class ApiGoogle:
|
|
|
125
132
|
used_tokens = 0
|
|
126
133
|
response = None
|
|
127
134
|
|
|
128
|
-
if mode in [
|
|
135
|
+
if mode in [
|
|
136
|
+
MODE_COMPLETION,
|
|
137
|
+
MODE_CHAT,
|
|
138
|
+
MODE_AUDIO,
|
|
139
|
+
MODE_RESEARCH,
|
|
140
|
+
MODE_COMPUTER
|
|
141
|
+
]:
|
|
129
142
|
|
|
130
143
|
# Live API for audio streaming
|
|
131
144
|
if mode == MODE_AUDIO and stream:
|
|
@@ -226,7 +239,7 @@ class ApiGoogle:
|
|
|
226
239
|
"""
|
|
227
240
|
# with remote tools
|
|
228
241
|
base_tools = self.tools.prepare(model, functions)
|
|
229
|
-
remote_tools = self.build_remote_tools(model)
|
|
242
|
+
remote_tools = self.remote_tools.build_remote_tools(model)
|
|
230
243
|
tools = (base_tools or []) + (remote_tools or [])
|
|
231
244
|
"""
|
|
232
245
|
|
|
@@ -262,57 +275,6 @@ class ApiGoogle:
|
|
|
262
275
|
finally:
|
|
263
276
|
self.locked = False
|
|
264
277
|
|
|
265
|
-
def build_remote_tools(self, model: ModelItem = None) -> list:
|
|
266
|
-
"""
|
|
267
|
-
Build Google GenAI remote tools based on config flags.
|
|
268
|
-
- remote_tools.google.web_search: enables grounding via Google Search (Gemini 2.x)
|
|
269
|
-
or GoogleSearchRetrieval (Gemini 1.5 fallback).
|
|
270
|
-
- remote_tools.google.code_interpreter: enables code execution tool.
|
|
271
|
-
|
|
272
|
-
Returns a list of gtypes.Tool objects (can be empty).
|
|
273
|
-
|
|
274
|
-
:param model: ModelItem
|
|
275
|
-
:return: list of gtypes.Tool
|
|
276
|
-
"""
|
|
277
|
-
tools: list = []
|
|
278
|
-
cfg = self.window.core.config
|
|
279
|
-
model_id = (model.id if model and getattr(model, "id", None) else "").lower()
|
|
280
|
-
is_web = self.window.controller.chat.remote_tools.enabled(model, "web_search") # get global config
|
|
281
|
-
|
|
282
|
-
# Google Search tool
|
|
283
|
-
if is_web and "image" not in model.id:
|
|
284
|
-
try:
|
|
285
|
-
if not model_id.startswith("gemini-1.5") and not model_id.startswith("models/gemini-1.5"):
|
|
286
|
-
# Gemini 2.x uses GoogleSearch
|
|
287
|
-
tools.append(gtypes.Tool(google_search=gtypes.GoogleSearch()))
|
|
288
|
-
else:
|
|
289
|
-
# Gemini 1.5 fallback uses GoogleSearchRetrieval
|
|
290
|
-
# Note: Supported only for 1.5 models.
|
|
291
|
-
tools.append(gtypes.Tool(
|
|
292
|
-
google_search_retrieval=gtypes.GoogleSearchRetrieval()
|
|
293
|
-
))
|
|
294
|
-
except Exception as e:
|
|
295
|
-
# Do not break the request if tool construction fails
|
|
296
|
-
self.window.core.debug.log(e)
|
|
297
|
-
|
|
298
|
-
# Code Execution tool
|
|
299
|
-
if cfg.get("remote_tools.google.code_interpreter") and "image" not in model.id:
|
|
300
|
-
try:
|
|
301
|
-
tools.append(gtypes.Tool(code_execution=gtypes.ToolCodeExecution))
|
|
302
|
-
except Exception as e:
|
|
303
|
-
self.window.core.debug.log(e)
|
|
304
|
-
|
|
305
|
-
# URL Context tool
|
|
306
|
-
if cfg.get("remote_tools.google.url_ctx") and "image" not in model.id:
|
|
307
|
-
try:
|
|
308
|
-
# Supported on Gemini 2.x+ models (not on 1.5)
|
|
309
|
-
if not model_id.startswith("gemini-1.5") and not model_id.startswith("models/gemini-1.5"):
|
|
310
|
-
tools.append(gtypes.Tool(url_context=gtypes.UrlContext))
|
|
311
|
-
except Exception as e:
|
|
312
|
-
self.window.core.debug.log(e)
|
|
313
|
-
|
|
314
|
-
return tools
|
|
315
|
-
|
|
316
278
|
def setup_env(self) -> bool:
|
|
317
279
|
"""
|
|
318
280
|
Setup environment variables for VertexAI via Google GenAI API
|