pygpt-net 2.5.16__py3-none-any.whl → 2.5.18__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.
Files changed (48) hide show
  1. pygpt_net/CHANGELOG.txt +12 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/controller/chat/common.py +4 -2
  4. pygpt_net/controller/chat/input.py +36 -27
  5. pygpt_net/controller/chat/stream.py +22 -2
  6. pygpt_net/controller/config/placeholder.py +1 -1
  7. pygpt_net/controller/model/__init__.py +1 -1
  8. pygpt_net/controller/model/editor.py +6 -1
  9. pygpt_net/controller/model/importer.py +4 -3
  10. pygpt_net/core/bridge/__init__.py +8 -4
  11. pygpt_net/core/command/__init__.py +10 -1
  12. pygpt_net/core/idx/chat.py +6 -1
  13. pygpt_net/core/image/__init__.py +15 -0
  14. pygpt_net/core/models/__init__.py +14 -6
  15. pygpt_net/core/models/ollama.py +4 -3
  16. pygpt_net/data/config/config.json +6 -4
  17. pygpt_net/data/config/models.json +205 -34
  18. pygpt_net/data/config/modes.json +10 -10
  19. pygpt_net/data/config/settings.json +35 -0
  20. pygpt_net/data/config/settings_section.json +3 -0
  21. pygpt_net/data/locale/locale.de.ini +4 -1
  22. pygpt_net/data/locale/locale.en.ini +9 -2
  23. pygpt_net/data/locale/locale.es.ini +4 -1
  24. pygpt_net/data/locale/locale.fr.ini +4 -1
  25. pygpt_net/data/locale/locale.it.ini +3 -0
  26. pygpt_net/data/locale/locale.pl.ini +4 -1
  27. pygpt_net/data/locale/locale.uk.ini +4 -1
  28. pygpt_net/data/locale/locale.zh.ini +4 -1
  29. pygpt_net/item/model.py +35 -1
  30. pygpt_net/provider/core/config/patch.py +14 -0
  31. pygpt_net/provider/core/model/json_file.py +4 -1
  32. pygpt_net/provider/core/model/patch.py +17 -1
  33. pygpt_net/provider/gpt/__init__.py +14 -0
  34. pygpt_net/provider/gpt/image.py +42 -8
  35. pygpt_net/provider/gpt/responses.py +24 -17
  36. pygpt_net/provider/llms/anthropic.py +3 -1
  37. pygpt_net/provider/llms/google.py +3 -1
  38. pygpt_net/provider/llms/hugging_face.py +3 -1
  39. pygpt_net/provider/llms/hugging_face_api.py +3 -1
  40. pygpt_net/provider/llms/ollama.py +9 -3
  41. pygpt_net/provider/llms/ollama_custom.py +2 -0
  42. pygpt_net/provider/llms/openai.py +7 -1
  43. pygpt_net/ui/dialog/preset.py +1 -1
  44. {pygpt_net-2.5.16.dist-info → pygpt_net-2.5.18.dist-info}/METADATA +18 -6
  45. {pygpt_net-2.5.16.dist-info → pygpt_net-2.5.18.dist-info}/RECORD +48 -48
  46. {pygpt_net-2.5.16.dist-info → pygpt_net-2.5.18.dist-info}/LICENSE +0 -0
  47. {pygpt_net-2.5.16.dist-info → pygpt_net-2.5.18.dist-info}/WHEEL +0 -0
  48. {pygpt_net-2.5.16.dist-info → pygpt_net-2.5.18.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.06.25 02:00:00 #
9
+ # Updated Date: 2025.06.26 18:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import json
@@ -17,13 +17,11 @@ from pygpt_net.core.types import (
17
17
  MODE_CHAT,
18
18
  MODE_VISION,
19
19
  MODE_AUDIO,
20
- MODE_RESEARCH,
21
20
  )
22
21
  from pygpt_net.core.bridge.context import BridgeContext, MultimodalContext
23
22
  from pygpt_net.item.ctx import CtxItem
24
23
  from pygpt_net.item.model import ModelItem
25
24
 
26
- from .utils import sanitize_name
27
25
  from pygpt_net.item.attachment import AttachmentItem
28
26
 
29
27
 
@@ -38,6 +36,7 @@ class Responses:
38
36
  self.input_tokens = 0
39
37
  self.audio_prev_id = None
40
38
  self.audio_prev_expires_ts = None
39
+ self.prev_response_id = None
41
40
 
42
41
  def send(
43
42
  self,
@@ -80,6 +79,7 @@ class Responses:
80
79
  user_name=user_name,
81
80
  multimodal_ctx=multimodal_ctx,
82
81
  )
82
+
83
83
  msg_tokens = self.window.core.tokens.from_messages(
84
84
  messages,
85
85
  model.id,
@@ -116,8 +116,15 @@ class Responses:
116
116
  response_kwargs['reasoning']['effort'] = model.extra["reasoning_effort"]
117
117
 
118
118
  # extend tools with external tools
119
- if not model.id.startswith("o1") and not model.id.startswith("o3"):
120
- tools.append({"type": "web_search_preview"})
119
+ if (not model.id.startswith("o1")
120
+ and not model.id.startswith("o3")):
121
+ if self.window.core.config.get("remote_tools.web_search", False):
122
+ tools.append({"type": "web_search_preview"})
123
+ if self.window.core.config.get("remote_tools.image", False):
124
+ tool = {"type": "image_generation"}
125
+ if stream:
126
+ tool["partial_images"] = 1 # required for streaming
127
+ tools.append(tool)
121
128
 
122
129
  # tool calls are not supported for o1-mini and o1-preview
123
130
  if (model.id is not None
@@ -125,18 +132,9 @@ class Responses:
125
132
  if len(tools) > 0:
126
133
  response_kwargs['tools'] = tools
127
134
 
128
- # audio mode
129
- if mode in [MODE_AUDIO]:
130
- stream = False
131
- voice_id = "alloy"
132
- tmp_voice = self.window.core.plugins.get_option("audio_output", "openai_voice")
133
- if tmp_voice:
134
- voice_id = tmp_voice
135
- response_kwargs["modalities"] = ["text", "audio"]
136
- response_kwargs["audio"] = {
137
- "voice": voice_id,
138
- "format": "wav"
139
- }
135
+ # attach previous response ID if available
136
+ if self.prev_response_id:
137
+ response_kwargs['previous_response_id'] = self.prev_response_id
140
138
 
141
139
  response = client.responses.create(
142
140
  input=messages,
@@ -144,6 +142,11 @@ class Responses:
144
142
  stream=stream,
145
143
  **response_kwargs,
146
144
  )
145
+
146
+ # store previous response ID
147
+ if not stream and response:
148
+ ctx.msg_id = response.id
149
+
147
150
  return response
148
151
 
149
152
  def build(
@@ -171,6 +174,7 @@ class Responses:
171
174
  :return: messages list
172
175
  """
173
176
  messages = []
177
+ self.prev_response_id = None # reset
174
178
 
175
179
  # tokens config
176
180
  mode = MODE_CHAT
@@ -239,6 +243,9 @@ class Responses:
239
243
  }
240
244
  messages.append(msg)
241
245
 
246
+ if item.msg_id and (item.cmds is None or len(item.cmds) == 0): # if no cmds before
247
+ self.prev_response_id = item.msg_id # previous response ID to use in current input
248
+
242
249
  # use vision and audio if available in current model
243
250
  content = str(prompt)
244
251
  if MODE_VISION in model.mode:
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2024.12.14 22:00:00 #
9
+ # Updated Date: 2025.06.26 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from llama_index.llms.anthropic import Anthropic
@@ -47,4 +47,6 @@ class AnthropicLLM(BaseLLM):
47
47
  :return: LLM provider instance
48
48
  """
49
49
  args = self.parse_args(model.llama_index)
50
+ if "model" not in args:
51
+ args["model"] = model.id
50
52
  return Anthropic(**args)
@@ -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.01.16 01:00:00 #
9
+ # Updated Date: 2025.06.26 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from typing import Optional, List, Dict
@@ -51,6 +51,8 @@ class GoogleLLM(BaseLLM):
51
51
  :return: LLM provider instance
52
52
  """
53
53
  args = self.parse_args(model.llama_index)
54
+ if "model" not in args:
55
+ args["model"] = model.id
54
56
  return Gemini(**args)
55
57
 
56
58
  def get_embeddings_model(
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2024.12.14 22:00:00 #
9
+ # Updated Date: 2025.06.26 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from langchain_community.llms import HuggingFaceHub
@@ -39,6 +39,8 @@ class HuggingFaceLLM(BaseLLM):
39
39
  :return: LLM provider instance
40
40
  """
41
41
  args = self.parse_args(model.langchain)
42
+ if "model" not in args:
43
+ args["model"] = model.id
42
44
  return HuggingFaceHub(**args)
43
45
 
44
46
  def chat(
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2024.12.14 22:00:00 #
9
+ # Updated Date: 2025.06.26 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import os
@@ -44,6 +44,8 @@ class HuggingFaceApiLLM(BaseLLM):
44
44
  :return: LLM provider instance
45
45
  """
46
46
  args = self.parse_args(model.llama_index)
47
+ if "model" not in args:
48
+ args["model"] = model.id
47
49
  return HuggingFaceInferenceAPI(**args)
48
50
 
49
51
  def get_embeddings_model(
@@ -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.06.24 16:00:00 #
9
+ # Updated Date: 2025.06.26 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import os
@@ -66,6 +66,8 @@ class OllamaLLM(BaseLLM):
66
66
  :return: LLM provider instance
67
67
  """
68
68
  args = self.parse_args(model.langchain)
69
+ if "model" not in args:
70
+ args["model"] = model.id
69
71
  return ChatOllama(**args)
70
72
 
71
73
  def llama(
@@ -87,7 +89,10 @@ class OllamaLLM(BaseLLM):
87
89
  if "request_timeout" not in args:
88
90
  args["request_timeout"] = 120
89
91
  if 'OLLAMA_API_BASE' in os.environ:
90
- args["base_url"] = os.environ['OLLAMA_API_BASE']
92
+ if "base_url" not in args:
93
+ args["base_url"] = os.environ['OLLAMA_API_BASE']
94
+ if "model" not in args:
95
+ args["model"] = model.id
91
96
  return Ollama(**args)
92
97
 
93
98
  def get_embeddings_model(
@@ -108,7 +113,8 @@ class OllamaLLM(BaseLLM):
108
113
  "args": config,
109
114
  })
110
115
  if 'OLLAMA_API_BASE' in os.environ:
111
- args["base_url"] = os.environ['OLLAMA_API_BASE']
116
+ if "base_url" not in args:
117
+ args["base_url"] = os.environ['OLLAMA_API_BASE']
112
118
  return OllamaEmbedding(**args)
113
119
 
114
120
  def init_embeddings(
@@ -299,6 +299,8 @@ class Ollama(FunctionCallingLLM):
299
299
  error_on_no_tool_call: bool = True,
300
300
  ) -> List[ToolSelection]:
301
301
  """Predict and call the tool."""
302
+ if response.message.additional_kwargs.get("tool_calls", []) is None:
303
+ response.message.additional_kwargs["tool_calls"] = []
302
304
  tool_calls = response.message.additional_kwargs.get("tool_calls", [])
303
305
  if len(tool_calls) < 1:
304
306
  if error_on_no_tool_call:
@@ -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.01.16 01:00:00 #
9
+ # Updated Date: 2025.06.26 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from typing import Optional, List, Dict
@@ -50,6 +50,8 @@ class OpenAILLM(BaseLLM):
50
50
  :return: LLM provider instance
51
51
  """
52
52
  args = self.parse_args(model.langchain)
53
+ if "model" not in args:
54
+ args["model"] = model.id
53
55
  return OpenAI(**args)
54
56
 
55
57
  def chat(
@@ -84,6 +86,8 @@ class OpenAILLM(BaseLLM):
84
86
  :return: LLM provider instance
85
87
  """
86
88
  args = self.parse_args(model.llama_index)
89
+ if "model" not in args:
90
+ args["model"] = model.id
87
91
  return LlamaOpenAI(**args)
88
92
 
89
93
  def llama_multimodal(
@@ -101,6 +105,8 @@ class OpenAILLM(BaseLLM):
101
105
  :return: LLM provider instance
102
106
  """
103
107
  args = self.parse_args(model.llama_index)
108
+ if "model" not in args:
109
+ args["model"] = model.id
104
110
  return LlamaOpenAIMultiModal(**args)
105
111
 
106
112
  def get_embeddings_model(
@@ -103,12 +103,12 @@ class Preset(BaseConfigDialog):
103
103
  # modes
104
104
  mode_keys = [
105
105
  MODE_CHAT,
106
+ MODE_LLAMA_INDEX,
106
107
  MODE_AUDIO,
107
108
  MODE_COMPLETION,
108
109
  MODE_IMAGE,
109
110
  MODE_VISION,
110
111
  MODE_LANGCHAIN,
111
- MODE_LLAMA_INDEX,
112
112
  MODE_AGENT_LLAMA,
113
113
  MODE_AGENT,
114
114
  MODE_EXPERT,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.5.16
3
+ Version: 2.5.18
4
4
  Summary: Desktop AI Assistant powered by models: OpenAI o1, GPT-4o, GPT-4, GPT-4 Vision, GPT-3.5, DALL-E 3, Llama 3, Mistral, Gemini, Claude, DeepSeek, Bielik, and other models supported by Langchain, Llama Index, and Ollama. Features include chatbot, text completion, image generation, vision analysis, speech-to-text, internet access, file handling, command execution and more.
5
5
  License: MIT
6
6
  Keywords: py_gpt,py-gpt,pygpt,desktop,app,o1,gpt,gpt4,gpt-4o,gpt-4v,gpt3.5,gpt-4,gpt-4-vision,gpt-3.5,llama3,mistral,gemini,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
@@ -100,7 +100,7 @@ Description-Content-Type: text/markdown
100
100
 
101
101
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
102
102
 
103
- Release: **2.5.16** | build: **2025-06-25** | Python: **>=3.10, <3.13**
103
+ Release: **2.5.18** | build: **2025-06-26** | Python: **>=3.10, <3.13**
104
104
 
105
105
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
106
106
  >
@@ -462,9 +462,9 @@ Your API keys will be available here:
462
462
 
463
463
  **+ Inline Vision and Image generation**
464
464
 
465
- This mode in **PyGPT** mirrors `ChatGPT`, allowing you to chat with models such as `o1`, `GPT-4`, `GPT-4o` and `GPT-3.5`. It works by using the `ChatCompletion` OpenAI API.
465
+ This mode in **PyGPT** mirrors `ChatGPT`, allowing you to chat with models such as `o1`, `o3`, `GPT-4`, `GPT-4o` and `GPT-3.5`. It works by using the `Responses` OpenAI API.
466
466
 
467
- **Tip: This mode directly uses the OpenAI API. If you want to use models other than GPT (such as Gemini, Claude, or Llama3), use `Chat with Files` mode.**
467
+ **Tip: This mode directly uses the OpenAI API. Other models, such as Gemini, Claude, or Llama3, are supported in Chat mode via LlamaIndex, which the application switches to in the background when working with models other than OpenAI.**
468
468
 
469
469
  The main part of the interface is a chat window where you see your conversations. Below it is a message box for typing. On the right side, you can set up or change the model and system prompt. You can also save these settings as presets to easily switch between models or tasks.
470
470
 
@@ -520,7 +520,7 @@ From version `2.0.107` the `davinci` models are deprecated and has been replaced
520
520
 
521
521
  ### DALL-E 3
522
522
 
523
- **PyGPT** enables quick and easy image creation with `DALL-E 3`.
523
+ **PyGPT** enables quick and easy image creation with `DALL-E 3` or `gpt-image-1`.
524
524
  The older model version, `DALL-E 2`, is also accessible. Generating images is akin to a chat conversation - a user's prompt triggers the generation, followed by downloading, saving to the computer,
525
525
  and displaying the image onscreen. You can send raw prompt to `DALL-E` in `Image generation` mode or ask the model for the best prompt.
526
526
 
@@ -1095,7 +1095,7 @@ There is built-in support for those LLM providers:
1095
1095
 
1096
1096
  How to use locally installed Llama 3 or Mistral models:
1097
1097
 
1098
- 1) Choose a working mode: `Chat with Files`.
1098
+ 1) Choose a working mode: `Chat` or `Chat with Files`.
1099
1099
 
1100
1100
  2) On the models list - select, edit, or add a new model (with `ollama` provider). You can edit the model settings through the menu `Config -> Models -> Edit`, then configure the model parameters in the `advanced` section.
1101
1101
 
@@ -4124,6 +4124,18 @@ may consume additional tokens that are not displayed in the main window.
4124
4124
 
4125
4125
  ## Recent changes:
4126
4126
 
4127
+ **2.5.18 (2025-06-26)**
4128
+
4129
+ - Non-GPT models are now available in standard Chat mode.
4130
+ - Added a new remote tool: `image_generation` in Responses API -> disabled by default, enable in `Config -> Settings -> Remote Tools`. Enables native image generation and editing of uploaded images in Chat mode.
4131
+ - Added a new model `gpt-image-1` and improved image generation.
4132
+ - Other small fixes.
4133
+
4134
+ **2.5.17 (2025-06-25)**
4135
+
4136
+ - Added settings for enable/disable Remote Tools via Responses API in Chat mode: Config -> Settings -> Remote tools. Currently only web-search-preview tool is available, rest of tools coming soon.
4137
+ - Fixed context summarization in Ollama provider.
4138
+
4127
4139
  **2.5.16 (2025-06-25)**
4128
4140
 
4129
4141
  - OpenAI API upgraded to 1.91.0.
@@ -1,6 +1,6 @@
1
- pygpt_net/CHANGELOG.txt,sha256=hFu7m9ErUfgHOMKcUo-CEWFdbWEdPugD8t3fldesfPE,83764
1
+ pygpt_net/CHANGELOG.txt,sha256=PYJboFWLvy_yIF6BTddmQ23EMwESIKEqgXaZ8n-CbSQ,84411
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=hxCVQq3kr3OQl8lw5kFVjHtdoZGowTS0RBw5ezfmPro,1373
3
+ pygpt_net/__init__.py,sha256=NiGpaEE4CWDjmzgyWg3-ycjTyNOFtWwz23Iw-rQvwmM,1373
4
4
  pygpt_net/app.py,sha256=XXjn9XaKHGRcsHN8mMuqbRHAg8_Da0GLmACUU9ddjBc,16217
5
5
  pygpt_net/config.py,sha256=Qc1FOBtTf3O6A6-6KoqUGtoJ0u8hXQeowvCVbZFwtik,16405
6
6
  pygpt_net/container.py,sha256=BemiVZPpPNIzfB-ZvnZeeBPFu-AcX2c30OqYFylEjJc,4023
@@ -28,14 +28,14 @@ pygpt_net/controller/chat/__init__.py,sha256=JUDt_DqxgpBROpr6k2jFQ03EIqXwmrAkwkk
28
28
  pygpt_net/controller/chat/attachment.py,sha256=6BzM8cKeazp12Ej6_3IH3I6NEMR5WON7N4PMY-i0h30,20974
29
29
  pygpt_net/controller/chat/audio.py,sha256=QsU36McxqlRoP6B-NSeck968g1M8JhlLkLwGLunbapw,3210
30
30
  pygpt_net/controller/chat/command.py,sha256=3fNYvgt9NmCZPNrlqfLXivmN63ZRsuFseNjj1ZLnwts,3293
31
- pygpt_net/controller/chat/common.py,sha256=6CWvXPD39RLl2TgppgCiDRViFPTSZDhoHXrgpy9B9jg,14682
31
+ pygpt_net/controller/chat/common.py,sha256=KuyPrRSlwo7VWukCCjdnMIcwNX5LocW5RrNmNaHcdA8,14782
32
32
  pygpt_net/controller/chat/files.py,sha256=VFiiTeWTYR15Nwf1CTLEmeXqlmRHzNQVkNaU6hY2Gz4,2846
33
33
  pygpt_net/controller/chat/image.py,sha256=XghPvTP8n3DxFgRrZ3bCfeLNTvOKSxbl-ewTwUTd4HM,8308
34
- pygpt_net/controller/chat/input.py,sha256=1r-zIWwFIdc0IOuC1rHGZYCZm9tsSeLEsrrlcWkL5-g,11377
34
+ pygpt_net/controller/chat/input.py,sha256=pmcKX9oZNKlXgwgR0HtDeMEXsIjpr5PdsVsoDYwAzsw,11956
35
35
  pygpt_net/controller/chat/output.py,sha256=VuziVuI9Lj_4kZmTWvXg8t2tq4w9uD7J1g2MqlMCV6s,9272
36
36
  pygpt_net/controller/chat/render.py,sha256=h23QCvMDIAaCpInqwwADa4G43sSpSn-CE5celnk1LSc,17206
37
37
  pygpt_net/controller/chat/response.py,sha256=UnTnnn2on-Qg2_T_QcQcklTCcuq6XhyLLxs1fn-D9Tg,9450
38
- pygpt_net/controller/chat/stream.py,sha256=vgjZYruBIMJ7V0udhVOf_pnlIuNDmzXRimToQ2i95WM,10496
38
+ pygpt_net/controller/chat/stream.py,sha256=52vm_6DmGdkytHGMVyWD5Vf3QC5JeUGBZ6_LYPfj1ts,11492
39
39
  pygpt_net/controller/chat/text.py,sha256=nDiHuKyuRmnDWK0YCsdMhd2k_5zvSSrNWNc9y6FWi2g,10316
40
40
  pygpt_net/controller/chat/vision.py,sha256=OFodxDRleFqY-DVfEfgNn1mpa60-ZWEBwUlu25oJwmw,2884
41
41
  pygpt_net/controller/command/__init__.py,sha256=sUvnvsKISkHTrbv7woQQ8r4SAGDR8Gy85H42q8eAg78,5671
@@ -48,7 +48,7 @@ pygpt_net/controller/config/field/dictionary.py,sha256=E8b3Quid_kdQQ54fuZJ4GdcPo
48
48
  pygpt_net/controller/config/field/input.py,sha256=081bzm0-MSN6UYIsyDS4gAEhgojWswCNjGqTyyg4Ric,3663
49
49
  pygpt_net/controller/config/field/slider.py,sha256=2XToxPkIvfRPcANa-um6HDQ8rLqpDGynDN05ocKdE1w,4692
50
50
  pygpt_net/controller/config/field/textarea.py,sha256=CySGd21ljR3v3DX9V2WwSvmKVEihD547rnHiRngWuuc,2398
51
- pygpt_net/controller/config/placeholder.py,sha256=Ejwe71awaPjjISvLoq2gRfKRQWcUlULWAe5Glx-Rszo,12556
51
+ pygpt_net/controller/config/placeholder.py,sha256=DdzaGZi3t-bCBsMDx3XPplhVjaR6eiMPZ8WbTiy0hig,12556
52
52
  pygpt_net/controller/ctx/__init__.py,sha256=K1LslZqoIPtTphLDcrTxiqqJ6Fx1EZkJkbPEUCRws9Y,33913
53
53
  pygpt_net/controller/ctx/common.py,sha256=yz1s4kVfxlRpd0XW_sygbmer66LqLxQA1e6O8Pz7FL4,6380
54
54
  pygpt_net/controller/ctx/extra.py,sha256=eDl0_iu80pRtyMX5ub52mjvOo_xo-vb1kZmTt0Idyoo,8219
@@ -75,9 +75,9 @@ pygpt_net/controller/lang/settings.py,sha256=awPEshWbHlOt11Zyg_uQKlbYjvABXrQ7QMH
75
75
  pygpt_net/controller/launcher/__init__.py,sha256=YykWa_vl8HEsH8wMz2aQsLlGqn62dIRpQ-OZzLDomgM,2063
76
76
  pygpt_net/controller/layout/__init__.py,sha256=9R30zrZtvedAf1OxQLzxDWt8o2XirUq0bkcFRnpCztg,11433
77
77
  pygpt_net/controller/mode/__init__.py,sha256=TY3y5fD8kpqLCmDyyCoEL_1OTSOXLnHVdIvH2lGUTew,7303
78
- pygpt_net/controller/model/__init__.py,sha256=e4G3MFtOVonmEA09yw9eiGyPQOvUgBGxVP5T9vgGjls,6003
79
- pygpt_net/controller/model/editor.py,sha256=8UaNi_Ui5ooPdio9_mw4ECihTxE7Iq5n5hDl41D3hu0,12675
80
- pygpt_net/controller/model/importer.py,sha256=3j0IfYqdN8ME0dO5e0AiWFpVO9EKDWseY6FFBoAEe-k,12123
78
+ pygpt_net/controller/model/__init__.py,sha256=_VBoZ-klC8FTYgJvAW9y9KidCMihMB7U10vNxyneipQ,6003
79
+ pygpt_net/controller/model/editor.py,sha256=Q-OnK6i7QzHsFicMEzuhRBVfIT97Bhi4kCkXFHO_OZ4,12839
80
+ pygpt_net/controller/model/importer.py,sha256=qGfX1wcQS0dLhO_Y2x-UbT7ZAe-Q8Wk_7OvsK3lTWuE,12165
81
81
  pygpt_net/controller/notepad/__init__.py,sha256=zLWbPvcOQ1yY7VFT27iarpBZqz9BPkOi4KvkLtUUsK4,9438
82
82
  pygpt_net/controller/painter/__init__.py,sha256=1Ekmr2a3irDkSb2wowiPXhW59rfdZOW1tdbxeubph-k,2747
83
83
  pygpt_net/controller/painter/capture.py,sha256=X3TqnNypxT_wngkQ4ovfS9glQwoGHyM-peR5aLJQGvk,6666
@@ -126,7 +126,7 @@ pygpt_net/core/audio/__init__.py,sha256=uszH6pqMToDzL0WpPeUvVlyJ8RN4gFmQbsL4GFYM
126
126
  pygpt_net/core/audio/capture.py,sha256=cR3PsnbxJ8yPE5oirHFAieAIaDGXynUxA4aitocXkgY,11223
127
127
  pygpt_net/core/audio/context.py,sha256=2XpXWhDC09iUvc0FRMq9BF2_rnQ60ZG4Js6LbO5MohY,1115
128
128
  pygpt_net/core/audio/whisper.py,sha256=WZ_fNQ06s1NBxyoYB-lTFqDO6ARcnq9MZFekRaTNxTo,993
129
- pygpt_net/core/bridge/__init__.py,sha256=4qEZJkMIe2o861ukwAlFy0ba_ri8sqx4nwLhUZXld0g,10007
129
+ pygpt_net/core/bridge/__init__.py,sha256=urV-W5x3hg2-iab-xj1VQtG3QNLveT6vQYfzlgm0NwI,10287
130
130
  pygpt_net/core/bridge/context.py,sha256=zIqbbFyZYsU5JEJGvwBg07u9QeeMUKsdTnURyp8tR4Y,4351
131
131
  pygpt_net/core/bridge/worker.py,sha256=8o8HmnjtoImHFFPOfzymePPgmVUPZoFNHFd0BYUHV3c,5885
132
132
  pygpt_net/core/calendar/__init__.py,sha256=ao9kQk6Xjse95m1TbL1Mlbo1k1Q8D9eGc10L-71G9TY,7227
@@ -134,7 +134,7 @@ pygpt_net/core/camera/__init__.py,sha256=iJ7ZIQPi3nFb5FtvH8Rig4v9pjRgccrHzSlY_ua
134
134
  pygpt_net/core/chain/__init__.py,sha256=C7Xm88bRblcyM4e0wZMFG-6SQCdw_frXN9kqnWzce60,3541
135
135
  pygpt_net/core/chain/chat.py,sha256=5LxPWHkocjrIAAwrdDH1ss6knAnh4_owfbHPsOQYSws,5238
136
136
  pygpt_net/core/chain/completion.py,sha256=GGRA-q6sQgPnSibiwHBwk7jgT0MgOkka1_jK2-IiBPg,5698
137
- pygpt_net/core/command/__init__.py,sha256=MIA8xR1opjL61Be8IyIgunoeLfgB7JYryDN00Tul15M,25243
137
+ pygpt_net/core/command/__init__.py,sha256=twrM8GFnoCWZlnhgwtL-_mZUV_DWmjhuo8TXvELMivQ,25677
138
138
  pygpt_net/core/ctx/__init__.py,sha256=WUV7OuQ7GXJ4GN75WfqV9v_VtKJhmgQ8uh8tfc2GPLc,43400
139
139
  pygpt_net/core/ctx/bag.py,sha256=-LRhttDRiQkw1Msl3kbGQYaY9w8zqn1o0miNRdqjHtQ,1286
140
140
  pygpt_net/core/ctx/container.py,sha256=tdPHPRfTi8yGY1MZGgFtYtx2lvc5K9OTqhjde16wivY,4232
@@ -177,7 +177,7 @@ pygpt_net/core/filesystem/types.py,sha256=1HFubxAHYup_SLQ7SlR5EvZb3KgVyd8K8vBRUk
177
177
  pygpt_net/core/filesystem/url.py,sha256=cXctpPHBY1-fwn7vFqfZi3CeP73n2nFXF-ZnePiRk7U,3236
178
178
  pygpt_net/core/history/__init__.py,sha256=PDE5Ut03mEgY9YPLZjqrimKQAyxoE7itViuqFV-VQf0,3123
179
179
  pygpt_net/core/idx/__init__.py,sha256=sK6zQDxetao3dnqcBaaT2HTKOz4zxOSEKmsHLQlsLGY,18115
180
- pygpt_net/core/idx/chat.py,sha256=kuWHDyyrvuUN0VfkBYhfl0cDfEnSpMWNzd0GWHGJkhM,24447
180
+ pygpt_net/core/idx/chat.py,sha256=IXkcY-H5DMB2tCAolsVObVWJ-O5YHHuLDGVo0iF0pAU,24569
181
181
  pygpt_net/core/idx/context.py,sha256=uISNiKprcA_Qv9t0PbMj1vDWCm1eccYbk5iGS-QcfG0,3143
182
182
  pygpt_net/core/idx/indexing.py,sha256=lj0FnPGBhL3AvmOT-NIQcdH6zY-Tpp3DB0zei2SV7xo,42989
183
183
  pygpt_net/core/idx/llm.py,sha256=RmYLBKhvMIL7XcvWa39HdNxq4yC-f2C34e93Wx7yaM8,4885
@@ -189,13 +189,13 @@ pygpt_net/core/idx/types/files.py,sha256=FzomPoQncYx3WtWNbHTjSNuTOP8x_z7f3ypybda
189
189
  pygpt_net/core/idx/ui/__init__.py,sha256=nfCat59itYOlE7hgn-Y5iemtkgU2NWSnKZK_ffZhoa8,719
190
190
  pygpt_net/core/idx/ui/loaders.py,sha256=15-5Q5C9jGcLZkNkcqZDfAsQqwzLCZOFzHXCTGiYN6k,8732
191
191
  pygpt_net/core/idx/worker.py,sha256=20rIDSHWSB0yDixAWuDRWAXZMN_-BD1z6YGW4_JE9XE,3803
192
- pygpt_net/core/image/__init__.py,sha256=rQrDze74AsggafIOTf2RfJFnCh-1ZVIFS1zHkNzjgsU,3497
192
+ pygpt_net/core/image/__init__.py,sha256=N0IZLNdIJG2ym92YvxaeHiC3mHc8LGybeNS0QovU-So,3953
193
193
  pygpt_net/core/info/__init__.py,sha256=YJEDJnGVMmMp0sQ0tEDyri6Kr94CopcZF6L97w9dXDg,829
194
194
  pygpt_net/core/installer/__init__.py,sha256=I7ALQy8P3SG7iOY04gDQpRVmSFNCtk83sz90-ER9t9Q,2022
195
195
  pygpt_net/core/llm/__init__.py,sha256=cns_L7QeKXwq22Jj09gOG5PPnX0PxB3dagcdiXZvBFI,1291
196
196
  pygpt_net/core/locale/__init__.py,sha256=KcG4lwtiI7mqtS8ojX2A2IuO0kCYGQP0-bwuBqzx_mc,5484
197
- pygpt_net/core/models/__init__.py,sha256=VL_KdPZx_dcES2M5kNuT7b1vHi8CKxFLFBHJ6c69vcI,10380
198
- pygpt_net/core/models/ollama.py,sha256=LCtUbKAPtyqWM7FMjrF5nDrAF5VRlYohHov8VpUofEE,2647
197
+ pygpt_net/core/models/__init__.py,sha256=3kBQLaRW8QA67C-u5y18hqbzbgb_OnkFaOHJ43IIwQk,10662
198
+ pygpt_net/core/models/ollama.py,sha256=-F_rnnTbQRXrb2hcggzE46pfOjnOgRJ5xiMt9fZHhmo,2677
199
199
  pygpt_net/core/modes/__init__.py,sha256=Wkv6-AqfySNNk1tRbh2tJXs-hcnKGnHuHWJe9TPTkk8,3156
200
200
  pygpt_net/core/notepad/__init__.py,sha256=lsgn4zXapg51227oTO3fr93FyltuEMEyJCNSAOki61o,4246
201
201
  pygpt_net/core/platforms/__init__.py,sha256=QygvsQadTpWW1K4_GraO38r7u82sYpgz3FI4iv_Dodw,4563
@@ -248,9 +248,9 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
248
248
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
249
249
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
250
250
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
251
- pygpt_net/data/config/config.json,sha256=saGOqexv27VNKNV_wS8dlGb6Dl2dCaTEAo7ubl48hY0,20083
252
- pygpt_net/data/config/models.json,sha256=42iGUxIPlrrN1YMWXZtw3X820I-2W69vCpT4KRefgqw,124691
253
- pygpt_net/data/config/modes.json,sha256=-q4Q4RsyoF2rLgvS0On59zXK0m0ml_kx6I0hNfLZRDY,2085
251
+ pygpt_net/data/config/config.json,sha256=A7GbzPXvEfSfotXYLex344gdyMXbFTHSqiMidbz42e8,20147
252
+ pygpt_net/data/config/models.json,sha256=vOHBPF6htMWz99dT1UVCr7P3V9ypHUgfhLyJHbC3m-I,129240
253
+ pygpt_net/data/config/modes.json,sha256=ghLjCPCCtVq-tvZqRFYGrZhx4hSXoukYe_UsTOFtXzk,2093
254
254
  pygpt_net/data/config/presets/agent_openai.json,sha256=vMTR-soRBiEZrpJJHuFLWyx8a3Ez_BqtqjyXgxCAM_Q,733
255
255
  pygpt_net/data/config/presets/agent_openai_assistant.json,sha256=awJw9lNTGpKML6SJUShVn7lv8AXh0oic7wBeyoN7AYs,798
256
256
  pygpt_net/data/config/presets/agent_planner.json,sha256=a6Rv58Bnm2STNWB0Rw_dGhnsz6Lb3J8_GwsUVZaTIXc,742
@@ -271,8 +271,8 @@ pygpt_net/data/config/presets/current.vision.json,sha256=x1ll5B3ROSKYQA6l27PRGXU
271
271
  pygpt_net/data/config/presets/dalle_white_cat.json,sha256=esqUb43cqY8dAo7B5u99tRC0MBV5lmlrVLnJhTSkL8w,552
272
272
  pygpt_net/data/config/presets/joke_agent.json,sha256=R6n9P7KRb0s-vZWZE7kHdlOfXAx1yYrPmUw8uLyw8OE,474
273
273
  pygpt_net/data/config/presets/joke_expert.json,sha256=aFBFCY97Uba71rRq0MSeakXaOj8yuaUqekQ842YHv64,683
274
- pygpt_net/data/config/settings.json,sha256=HdSmnEEKqtxq22OInEZzeKP9MXP85HsKtTx-y7Kd8kE,50810
275
- pygpt_net/data/config/settings_section.json,sha256=M22jrZvly6KliNr_fhkS6rk_bdzlFK4OyoWZ6TiyRnY,1004
274
+ pygpt_net/data/config/settings.json,sha256=EozvASp2W3BWaRB57YW4LJju2t5RI3sFp62TYwGZ3Vo,52000
275
+ pygpt_net/data/config/settings_section.json,sha256=Ng6kgmgxVmvt-KYFIqZvIDAEK4DfISNjNVF55DFWNjs,1082
276
276
  pygpt_net/data/css/fix_windows.css,sha256=Mks14Vg25ncbMqZJfAMStrhvZmgHF6kU75ohTWRZeI8,664
277
277
  pygpt_net/data/css/markdown.css,sha256=yaoJPogZZ_ghbqP8vTXTycwVyD61Ik5_033NpzuUzC0,1122
278
278
  pygpt_net/data/css/markdown.dark.css,sha256=ixAwuT69QLesZttKhO4RAy-QukplZwwfXCZsWLN9TP4,730
@@ -1487,14 +1487,14 @@ pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff,sha256=4U_tArGrp86fW
1487
1487
  pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff2,sha256=cdUX1ngneHz6vfGGkUzDNY7aU543kxlB8rL9SiH2jAs,13568
1488
1488
  pygpt_net/data/js/katex/katex.min.css,sha256=lVaKnUaQNG4pI71WHffQZVALLQF4LMZEk4nOia8U9ow,23532
1489
1489
  pygpt_net/data/js/katex/katex.min.js,sha256=KLASOtKS2x8pUxWVzCDmlWJ4jhuLb0vtrgakbD6gDDo,276757
1490
- pygpt_net/data/locale/locale.de.ini,sha256=AUcujqpl2NkMgMnvyKMpBN-DfVS-1_bofImMnRB-nR4,65877
1491
- pygpt_net/data/locale/locale.en.ini,sha256=fnYI-O6deNJCzMzK805ydPXfd58IniPmhxYtrbMc9tU,78559
1492
- pygpt_net/data/locale/locale.es.ini,sha256=DixNe-NMlNFxnOHsxsXcfmVQpMhlmVWkd-GIox1wypo,66021
1493
- pygpt_net/data/locale/locale.fr.ini,sha256=loEqR2eY9rmn_-vY-qLKEECbVPwEGwSknztuGtq034M,68100
1494
- pygpt_net/data/locale/locale.it.ini,sha256=i4b6nhklhop6KZhIO_tLIeCP_okUce5D2fTx_OJ16fc,64729
1495
- pygpt_net/data/locale/locale.pl.ini,sha256=w2yQe5Vt97OdvZLqP_6qLv1S0fF0OKjojdPsAQseRAg,64776
1496
- pygpt_net/data/locale/locale.uk.ini,sha256=tSH_0wLoGwM-JFRfqmymwrfCBndyumPlsBABkyWl7qY,90156
1497
- pygpt_net/data/locale/locale.zh.ini,sha256=UUOLVTBjp4RY5G6Hh8T6IXVklVIZUcHvPpMjCyVSb9U,66247
1490
+ pygpt_net/data/locale/locale.de.ini,sha256=rqWfqXip_kNrIr6o07PI6yMmdTiBWJIT__zWlAsgNPY,66016
1491
+ pygpt_net/data/locale/locale.en.ini,sha256=NYynCv1uSfu7XJ21uH7rHJPF2nCbNul-kw8GkFxFbaI,79102
1492
+ pygpt_net/data/locale/locale.es.ini,sha256=ALVNLou4HbMfmJL-mNUa9NkXccStUgSqInIx7qnCV6s,66183
1493
+ pygpt_net/data/locale/locale.fr.ini,sha256=b6LaF_MnW4j-nU7PuMgY5R7LvjZ7juKd0OwoJGXhNkY,68231
1494
+ pygpt_net/data/locale/locale.it.ini,sha256=PILGaGTCumfULasxW-2eJ0d3-06QJJJWC8_KEvjuuAs,64951
1495
+ pygpt_net/data/locale/locale.pl.ini,sha256=RmU7uUgWjWGHh6V3SH4f4-303BYMvJNSYKcGNOwoqVE,64941
1496
+ pygpt_net/data/locale/locale.uk.ini,sha256=3_H-9Ra5UFUX9GUOgnzKiggFs-dVMumrbDWDfiZ026o,90285
1497
+ pygpt_net/data/locale/locale.zh.ini,sha256=wdQ836TvaXkiTJGN9gZLWVVSRHSKbU_AXE5WM0JYy2M,66392
1498
1498
  pygpt_net/data/locale/plugin.agent.de.ini,sha256=BY28KpfFvgfVYJzcw2o5ScWnR4uuErIYGyc3NVHlmTw,1714
1499
1499
  pygpt_net/data/locale/plugin.agent.en.ini,sha256=88LkZUpilbV9l4QDbMyIdq_K9sbWt-CQPpavEttPjJU,1489
1500
1500
  pygpt_net/data/locale/plugin.agent.es.ini,sha256=bqaJQne8HPKFVtZ8Ukzo1TSqVW41yhYbGUqW3j2x1p8,1680
@@ -1675,7 +1675,7 @@ pygpt_net/item/calendar_note.py,sha256=Y9rfMmTbWwcFrHNra62aUww-NGPIE6O03wHRrF5Ty
1675
1675
  pygpt_net/item/ctx.py,sha256=XZ4aRlpISA9_f63VNAG8BmmqFxx01m33TPa1CCFX_xA,18971
1676
1676
  pygpt_net/item/index.py,sha256=gDQYPlhwHF0QVGwX4TFGxHyO7pt5tqHcuyc3DPgPCA0,1681
1677
1677
  pygpt_net/item/mode.py,sha256=bhX6ZOvTKsiLI6-N-7cuJ_9izlAqq6bsXF1FjufJvfw,600
1678
- pygpt_net/item/model.py,sha256=ZtyhQbMxOikaW4EQsAMDeW9X1ksn_Yw6eCF1tZ7AvAY,8313
1678
+ pygpt_net/item/model.py,sha256=iHJPPkB_tmErDfm7y-2P8Nb1dJXyGqNf8Kgh35XS6jc,9376
1679
1679
  pygpt_net/item/notepad.py,sha256=l5e0JAnwz5a3fPSaSq1ih3XfgrLX5365xAg5HYIqIyQ,1513
1680
1680
  pygpt_net/item/preset.py,sha256=m03LtRjODd64xoZ92EJaOPp82VXOZ3zBUDtJEFyxvc4,5575
1681
1681
  pygpt_net/item/prompt.py,sha256=aDzXxQ4kLQ0Ve1EvCmO8p9CzYVm2BYuR9ubYf6HFr4g,1563
@@ -1822,7 +1822,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=QDclQCQdr4QyRIqjgGX
1822
1822
  pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1823
1823
  pygpt_net/provider/core/config/base.py,sha256=cbvzbMNqL2XgC-36gGubnU37t94AX7LEw0lecb2Nm80,1365
1824
1824
  pygpt_net/provider/core/config/json_file.py,sha256=P78SRQpNr_nF7TYftYLnHl_DVo7GLPNs4_lvw97sqq8,5122
1825
- pygpt_net/provider/core/config/patch.py,sha256=JYNOz-_7ePQRBWfcc1SYHaeCZAZKox8VoArrygfcegQ,97421
1825
+ pygpt_net/provider/core/config/patch.py,sha256=N_faJxKqLkslJ1MwdhaIjgPv-D_UeMj0VBif7FvGKKE,97966
1826
1826
  pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1827
1827
  pygpt_net/provider/core/ctx/base.py,sha256=Tfb4MDNe9BXXPU3lbzpdYwJF9S1oa2-mzgu5XT4It9g,3003
1828
1828
  pygpt_net/provider/core/ctx/db_sqlite/__init__.py,sha256=G2pB7kZfREJRLJZmfv3DKTslXC-K7EhNN2sn56q6BFA,11753
@@ -1848,8 +1848,8 @@ pygpt_net/provider/core/mode/json_file.py,sha256=JFLwJ2DN-gyWliVDBHEY3W4tmok4u_r
1848
1848
  pygpt_net/provider/core/mode/patch.py,sha256=VS2KCYW05jxLd-lcStNY1k4fHKUUrVVLTdRsu5zQwC8,837
1849
1849
  pygpt_net/provider/core/model/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1850
1850
  pygpt_net/provider/core/model/base.py,sha256=L1x2rHha8a8hnCUYxZr88utay1EWEx5qBXW_2acpAN0,1319
1851
- pygpt_net/provider/core/model/json_file.py,sha256=xTuEkcYRgxaz8JwZ9hdhSt48oT8rRLv6HRO5Y7OoCDA,6681
1852
- pygpt_net/provider/core/model/patch.py,sha256=0ns0Oo_YTbfnUrQO6iI52XKXveMS3aZalj8h7gut0WM,25915
1851
+ pygpt_net/provider/core/model/json_file.py,sha256=DsGVNYIi5Pg57SJghHWBULq9Uu0sNTWEks3ZyRRTd4o,6786
1852
+ pygpt_net/provider/core/model/patch.py,sha256=b4tdmvf15zHXV-Z1Awiv5-C5WJQztVXlxxpxcmgiIjM,26668
1853
1853
  pygpt_net/provider/core/notepad/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1854
1854
  pygpt_net/provider/core/notepad/base.py,sha256=7aPhild8cALTaN3JEbI0YrkIW1DRIycGQWTfsdH6WcQ,1323
1855
1855
  pygpt_net/provider/core/notepad/db_sqlite/__init__.py,sha256=DQnVKJxvLq-6zlRlLk3MXSQZEObFtcQ5p5mEnuRzwYE,3104
@@ -1867,13 +1867,13 @@ pygpt_net/provider/core/preset/patch.py,sha256=uGeOqz-JnFVXHAjnlto5I79O-HNXMLRSJ
1867
1867
  pygpt_net/provider/core/prompt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1868
1868
  pygpt_net/provider/core/prompt/base.py,sha256=EYUA30T1QwJ9RSD0uW5x6VEstgIXNwgutmaXI64BWhw,1304
1869
1869
  pygpt_net/provider/core/prompt/json_file.py,sha256=5yfW1RgEa36tX4-ntze4PavWLry0YG43D2LO23_MrzE,4838
1870
- pygpt_net/provider/gpt/__init__.py,sha256=707FMcQfP-NgTZIXEUq6fr6Gv0zkTzy4RpvIYgRnAB8,11396
1870
+ pygpt_net/provider/gpt/__init__.py,sha256=P4v9s9L2S0onPP6ieuPL497FN24juQB39PwfCgPesu8,12014
1871
1871
  pygpt_net/provider/gpt/assistants.py,sha256=DSw1YB_J9n2rFD5CPDWZy59I38VSG6uLpYydGLTUPMQ,14083
1872
1872
  pygpt_net/provider/gpt/audio.py,sha256=frHElxYVaHYkNDCMJ9tQMoGqxSaZ-s5oPlAEHUAckkc,2032
1873
1873
  pygpt_net/provider/gpt/chat.py,sha256=W-p6njN843JyExMcyqD_ClzmWv8de9F4-LdLwjS_4Pg,10406
1874
1874
  pygpt_net/provider/gpt/completion.py,sha256=OusKOb4G11aYRJUjRWcMsf80cRQQvee9DzRe99ubLmc,6164
1875
- pygpt_net/provider/gpt/image.py,sha256=ZqYrtVTcfPa8Kf08pWLKy1Zhvi6pu61GBlslRBauoK0,8967
1876
- pygpt_net/provider/gpt/responses.py,sha256=HUgFXDoxOcO9B1ZlHD4yIbWu9AUbbLiiUyeS5JGti3c,9557
1875
+ pygpt_net/provider/gpt/image.py,sha256=lUHZrVCR2Fbxz5uXqPH9I-_xn0FkDyfzOGrpi-9RZbI,10134
1876
+ pygpt_net/provider/gpt/responses.py,sha256=fkFNfXN25EWLiqa8XCTVxAEyRR5bAsWWXkyvrdKk888,9976
1877
1877
  pygpt_net/provider/gpt/store.py,sha256=FaVd7SBC_QQ0W26_odJwcrLH54CSq0UZXZnuwIhRm54,17315
1878
1878
  pygpt_net/provider/gpt/summarizer.py,sha256=449yUqxwshSqeVoO7WIZasTpYlopG1Z_1ShPE5rAnvc,2260
1879
1879
  pygpt_net/provider/gpt/utils.py,sha256=O0H0EPb4lXUMfE1bFdWB56yuWLv7M5owVIGWRyDDv-E,855
@@ -1882,17 +1882,17 @@ pygpt_net/provider/gpt/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
1882
1882
  pygpt_net/provider/gpt/worker/assistants.py,sha256=MFUlFJ9Xe4VTJFOz5OtFHvOHkJnTr2wbeKDavCCDn00,21088
1883
1883
  pygpt_net/provider/gpt/worker/importer.py,sha256=zmu55TAWbSlRrI4Vk5llVhbiR6s7dskx3iaBgTrQ_js,15467
1884
1884
  pygpt_net/provider/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1885
- pygpt_net/provider/llms/anthropic.py,sha256=SLRWOZfYrtKMjwR1k_Vz5Eg3klAB04mYD_gKCglNFCI,1647
1885
+ pygpt_net/provider/llms/anthropic.py,sha256=edIt9QgUZCjZox_UVoIj1_2fTt9TBKwFNlIre973nWU,1716
1886
1886
  pygpt_net/provider/llms/azure_openai.py,sha256=Yr0-sRrxM1pyConA7PP4Vd74-ZF9WcTODCIPCPRiuc4,3459
1887
1887
  pygpt_net/provider/llms/base.py,sha256=7--jZH2NBO1i8qFU9l8wAbUDrY9zSBF9CN9XXPqLfRU,4931
1888
1888
  pygpt_net/provider/llms/deepseek_api.py,sha256=11OiHC4pJOQV3uoSt-OuGrng1F8smQ5XIeCbuw9wrqQ,1401
1889
- pygpt_net/provider/llms/google.py,sha256=6jVlCR8Mm57FKCPEbTiQRn0OgAPTNyjXIbH5uYB6Gy8,2312
1890
- pygpt_net/provider/llms/hugging_face.py,sha256=HLw0x8O0HuFNI-7yeI4m-ksl2KPpyENqT1ZiJ1_xEQs,1702
1891
- pygpt_net/provider/llms/hugging_face_api.py,sha256=EmMQL4QJnE-2SZwHg102ZqSZzi8WMIo84inG2bRiaw8,2892
1889
+ pygpt_net/provider/llms/google.py,sha256=5c1ojnnNPDy6jJsX5w1e-pNYOS4ng2UN1f-oMYIMvuc,2381
1890
+ pygpt_net/provider/llms/hugging_face.py,sha256=W7LvB9228IqClg65UBY4xZjNGXMBt9G0yPmb6c_5lAE,1771
1891
+ pygpt_net/provider/llms/hugging_face_api.py,sha256=2KfuL407AoFJtqfQ9lCrB7iOec8iLsG0_M5lthVlRWU,2961
1892
1892
  pygpt_net/provider/llms/local.py,sha256=s6Myi1dZ2fTCCno6UHT-gbffe0g5b_sYxnvMj5P8LlI,1393
1893
- pygpt_net/provider/llms/ollama.py,sha256=bA5m_IDSOyHPAOeCnsmxf1jaaTW8hiV4HgTT-Au7R0s,3985
1894
- pygpt_net/provider/llms/ollama_custom.py,sha256=FCbT95_ILfUwxQGD4aw8rBEohCynHN5H0Jap0koutBg,24024
1895
- pygpt_net/provider/llms/openai.py,sha256=8HUn-YAVM4YQ10fBbsnGvv0eAOFlyKURVPlv9aL8d7U,3730
1893
+ pygpt_net/provider/llms/ollama.py,sha256=OGz4CnsfjlPqJ9yXzftCgPsqCNzFeUCVocqUqpt6CYo,4209
1894
+ pygpt_net/provider/llms/ollama_custom.py,sha256=WVbLiEEwnz5loKiLy7EYmpuWz0Tp5Vhd1vOUB2051kI,24167
1895
+ pygpt_net/provider/llms/openai.py,sha256=ghJJ6D-efbIHFLEXsWLuN8Q1n9MbxYjUSJ_pG-OgKC0,3937
1896
1896
  pygpt_net/provider/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1897
1897
  pygpt_net/provider/loaders/base.py,sha256=3-qzzGAF2jxhriNHjE3Y2GtDXxs1_2_BIloaVJS4qzQ,3101
1898
1898
  pygpt_net/provider/loaders/file_csv.py,sha256=sV2JrQ4EqdWc2-8dMjjBvT8x56ux07eB5jyO61EX3pQ,1258
@@ -2022,7 +2022,7 @@ pygpt_net/ui/dialog/logger.py,sha256=tf1FjFHVVVLkvU6ZvaQv0zyuDmnZQbr5e_WjVOt9eo8
2022
2022
  pygpt_net/ui/dialog/models.py,sha256=efGznMPzweAAiDT6uqqiymB_e3AravTF2N8gBA6qEO0,13166
2023
2023
  pygpt_net/ui/dialog/models_importer.py,sha256=ucjhbQ6ho6nneGho5mWs8X7k8uf1-Dvj-A05m3xVmtY,3788
2024
2024
  pygpt_net/ui/dialog/plugins.py,sha256=wWgi_nylP_NTJmqckf5GOMQ3qe83lP08Bux6nsGOET0,20718
2025
- pygpt_net/ui/dialog/preset.py,sha256=MCNQnvaglyUpk15sVV1VS5Fu8vRqPcYSwnqvBpbxT5g,9574
2025
+ pygpt_net/ui/dialog/preset.py,sha256=vFQEGGSCSWCyLYltEqYBuvUrbfOzrL3rGyeulrv_EFU,9574
2026
2026
  pygpt_net/ui/dialog/preset_plugins.py,sha256=ynqc0aWjU7MTL4jxcVKaRH_tC9uzeWJCUzUjI74ADb0,3796
2027
2027
  pygpt_net/ui/dialog/profile.py,sha256=Xk9NNQmr1A5pRUxdedu7ePEBq5OYhLT8UInuRWYBktU,4105
2028
2028
  pygpt_net/ui/dialog/rename.py,sha256=Spb7cUVq1ivy3Zg28SBACJ7p_GwJ1gm82Oz9Ld_a_FU,973
@@ -2184,8 +2184,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=2LebPHa_e5lvBqnIVzjwsLcFMoc11BonXgAUs
2184
2184
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2185
2185
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2186
2186
  pygpt_net/utils.py,sha256=WtrdagJ-BlCjxGEEVq2rhsyAZMcU6JqltCXzOs823po,6707
2187
- pygpt_net-2.5.16.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2188
- pygpt_net-2.5.16.dist-info/METADATA,sha256=Zc5Bu31TysIpS2JbdYADOyQIsLXWlgWDnd9pq0O1-b0,171615
2189
- pygpt_net-2.5.16.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2190
- pygpt_net-2.5.16.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2191
- pygpt_net-2.5.16.dist-info/RECORD,,
2187
+ pygpt_net-2.5.18.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2188
+ pygpt_net-2.5.18.dist-info/METADATA,sha256=nHOTJNb6XaXlsTjCdJ0vgKP2HTPSQ2ACf7CP7tig5Uw,172380
2189
+ pygpt_net-2.5.18.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2190
+ pygpt_net-2.5.18.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2191
+ pygpt_net-2.5.18.dist-info/RECORD,,