pygpt-net 2.4.45__py3-none-any.whl → 2.4.46__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 (38) hide show
  1. CHANGELOG.md +6 -0
  2. README.md +28 -8
  3. pygpt_net/CHANGELOG.txt +6 -0
  4. pygpt_net/__init__.py +2 -2
  5. pygpt_net/controller/chat/text.py +5 -2
  6. pygpt_net/controller/idx/__init__.py +2 -1
  7. pygpt_net/controller/settings/__init__.py +2 -2
  8. pygpt_net/core/idx/chat.py +71 -11
  9. pygpt_net/data/config/config.json +7 -2
  10. pygpt_net/data/config/models.json +311 -14
  11. pygpt_net/data/config/modes.json +2 -2
  12. pygpt_net/data/config/settings.json +104 -11
  13. pygpt_net/data/config/settings_section.json +3 -0
  14. pygpt_net/data/locale/locale.de.ini +17 -1
  15. pygpt_net/data/locale/locale.en.ini +19 -2
  16. pygpt_net/data/locale/locale.es.ini +17 -1
  17. pygpt_net/data/locale/locale.fr.ini +17 -1
  18. pygpt_net/data/locale/locale.it.ini +17 -1
  19. pygpt_net/data/locale/locale.pl.ini +17 -1
  20. pygpt_net/data/locale/locale.uk.ini +17 -1
  21. pygpt_net/data/locale/locale.zh.ini +17 -1
  22. pygpt_net/data/locale/plugin.cmd_web.de.ini +1 -1
  23. pygpt_net/data/locale/plugin.cmd_web.en.ini +5 -5
  24. pygpt_net/data/locale/plugin.cmd_web.es.ini +1 -1
  25. pygpt_net/data/locale/plugin.cmd_web.fr.ini +1 -1
  26. pygpt_net/data/locale/plugin.cmd_web.it.ini +1 -1
  27. pygpt_net/data/locale/plugin.cmd_web.pl.ini +1 -1
  28. pygpt_net/data/locale/plugin.cmd_web.uk.ini +1 -1
  29. pygpt_net/data/locale/plugin.cmd_web.zh.ini +1 -1
  30. pygpt_net/data/locale/plugin.mailer.en.ini +9 -9
  31. pygpt_net/provider/core/config/patch.py +16 -1
  32. pygpt_net/provider/core/model/patch.py +156 -1
  33. pygpt_net/ui/dialog/settings.py +22 -7
  34. {pygpt_net-2.4.45.dist-info → pygpt_net-2.4.46.dist-info}/METADATA +29 -9
  35. {pygpt_net-2.4.45.dist-info → pygpt_net-2.4.46.dist-info}/RECORD +38 -38
  36. {pygpt_net-2.4.45.dist-info → pygpt_net-2.4.46.dist-info}/LICENSE +0 -0
  37. {pygpt_net-2.4.45.dist-info → pygpt_net-2.4.46.dist-info}/WHEEL +0 -0
  38. {pygpt_net-2.4.45.dist-info → pygpt_net-2.4.46.dist-info}/entry_points.txt +0 -0
@@ -50,8 +50,8 @@ prompt_summarize_url.description = Prompt używany do podsumowywania określonej
50
50
  prompt_summarize_url.label = Prompt podsumowujący (otwarte URL)
51
51
  provider.description = Wybierz dostawcę wyszukiwarki, domyślnie: Google.
52
52
  provider.label = Dostawca
53
- raw.label = Użyj surowej zawartości (bez podsumowania)
54
53
  raw.description = Zwróć surową zawartość z wyszukiwania w sieci zamiast podsumowanej zawartości
54
+ raw.label = Użyj surowej zawartości (bez podsumowania)
55
55
  summary_max_tokens.description = Maksymalna liczba tokenów w wyniku przy generowaniu podsumowania.
56
56
  summary_max_tokens.label = Maksymalna liczba tokenów podsumowania
57
57
  summary_model.description = Model używany do podsumowywania stron internetowych, domyślnie: gpt-3.5-turbo-1106.
@@ -50,8 +50,8 @@ prompt_summarize_url.description = Шаблон для підсумування
50
50
  prompt_summarize_url.label = Шаблон підсумування (відкриття URL)
51
51
  provider.description = Виберіть провайдера пошукової системи, за замовчуванням: Google.
52
52
  provider.label = Провайдер
53
- raw.label = Використовувати сирий контент (без узагальнення)
54
53
  raw.description = Повернути сирий контент з пошуку в Інтернеті замість узагальненого контенту
54
+ raw.label = Використовувати сирий контент (без узагальнення)
55
55
  summary_max_tokens.description = Максимальна кількість токенів у виводі при створенні підсумку.
56
56
  summary_max_tokens.label = Макс. токенів підсумування
57
57
  summary_model.description = Модель, яка використовується для підсумування вебсторінок, за замовчуванням: gpt-3.5-turbo-1106.
@@ -50,8 +50,8 @@ prompt_summarize_url.description = 用于总结指定URL页面的提示。
50
50
  prompt_summarize_url.label = 总结URL页面的提示
51
51
  provider.description = 选择搜索引擎提供者,默认为Google。
52
52
  provider.label = 提供者
53
- raw.label = 使用原始内容(不进行总结)
54
53
  raw.description = 返回来自网络搜索的原始内容,而不是总结的内容
54
+ raw.label = 使用原始内容(不进行总结)
55
55
  summary_max_tokens.description = 在生成总结时输出的最大代币数。
56
56
  summary_max_tokens.label = 总结的最大代币数
57
57
  summary_model.description = 用于总结网页的模型,默认为:gpt-3.5-turbo-1106。
@@ -1,21 +1,21 @@
1
1
  [LOCALE]
2
- cmd.send_email.label = Enable: send email
3
- cmd.send_email.description = Allows for sending emails.
4
- cmd.get_emails.label = Enable: receive emails
5
- cmd.get_emails.description = Allows for receiving emails.
6
- cmd.get_email_body.label = Enable: get email body
7
2
  cmd.get_email_body.description = Allows for receive email body.
3
+ cmd.get_email_body.label = Enable: get email body
4
+ cmd.get_emails.description = Allows for receiving emails.
5
+ cmd.get_emails.label = Enable: receive emails
6
+ cmd.send_email.description = Allows for sending emails.
7
+ cmd.send_email.label = Enable: send email
8
+ from_email.description = From (email), e.g. me@domain.com
9
+ from_email.label = From (email)
8
10
  plugin.description = Provides the ability to send, receive and read emails from SMTP server.
9
11
  plugin.name = Mailer
10
12
  smtp_host.description = SMTP Host, e.g. smtp.domain.com
11
13
  smtp_host.label = Host
14
+ smtp_password.description = SMTP Password
15
+ smtp_password.label = Password
12
16
  smtp_port_inbox.description = SMTP Port (Inbox), default: 995
13
17
  smtp_port_inbox.label = Port (Inbox)
14
18
  smtp_port_outbox.description = SMTP Port (Outbox), default: 465
15
19
  smtp_port_outbox.label = Port (Outbox)
16
20
  smtp_user.description = SMTP User, e.g. user@domain.com
17
21
  smtp_user.label = User
18
- smtp_password.description = SMTP Password
19
- smtp_password.label = Password
20
- from_email.description = From (email), e.g. me@domain.com
21
- from_email.label = From (email)
@@ -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.13 19:00:00 #
9
+ # Updated Date: 2024.12.16 20:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -1788,6 +1788,21 @@ class Patch:
1788
1788
  self.window.core.updater.patch_css('style.css', True) # force update
1789
1789
  updated = True
1790
1790
 
1791
+ # < 2.4.46
1792
+ if old < parse_version("2.4.46"):
1793
+ print("Migrating config from < 2.4.46...")
1794
+ if 'api_azure_version' not in data:
1795
+ data["api_azure_version"] = "2023-07-01-preview"
1796
+ if 'api_azure_endpoint' not in data:
1797
+ data["api_azure_endpoint"] = "https://<your-resource-name>.openai.azure.com/"
1798
+ if 'api_key_google' not in data:
1799
+ data["api_key_google"] = ""
1800
+ if 'api_key_anthropic' not in data:
1801
+ data["api_key_anthropic"] = ""
1802
+ if 'api_key_hugging_face' not in data:
1803
+ data["api_key_hugging_face"] = ""
1804
+ updated = True
1805
+
1791
1806
  # update file
1792
1807
  migrated = False
1793
1808
  if updated:
@@ -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.11.26 19:00:00 #
9
+ # Updated Date: 2024.12.16 20:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from packaging.version import parse as parse_version, Version
@@ -314,6 +314,161 @@ class Patch:
314
314
  # add missing gpt-4o-audio-preview, gpt-4o-2024-11-20
315
315
  updated = True
316
316
 
317
+ # < 2.4.46 <--- add separated API keys
318
+ if old < parse_version("2.4.46"):
319
+ print("Migrating models from < 2.4.46...")
320
+ azure_endpoint = ""
321
+ azure_api_version = ""
322
+ google_key = ""
323
+ anthropic_key = ""
324
+ for id in data:
325
+ model = data[id]
326
+ # OpenAI
327
+ if model.id.startswith("gpt-") or model.id.startswith("o1-"):
328
+ # langchain
329
+ is_endpoint = False
330
+ is_version = False
331
+ for item in model.langchain["env"]:
332
+ if item["name"] == "AZURE_OPENAI_ENDPOINT":
333
+ is_endpoint = True
334
+ if (item["value"]
335
+ and item["value"] not in ["{api_azure_endpoint}", "{api_endpoint}"]):
336
+ azure_endpoint = item["value"]
337
+ item["value"] = "{api_azure_endpoint}"
338
+ elif item["name"] == "OPENAI_API_VERSION":
339
+ is_version = True
340
+ if (item["value"]
341
+ and item["value"] not in ["{api_azure_version}"]):
342
+ azure_api_version = item["value"]
343
+ item["value"] = "{api_azure_version}"
344
+ if not is_endpoint:
345
+ model.langchain["env"].append(
346
+ {
347
+ "name": "AZURE_OPENAI_ENDPOINT",
348
+ "value": "{api_azure_endpoint}",
349
+ }
350
+ )
351
+ if not is_version:
352
+ model.langchain["env"].append(
353
+ {
354
+ "name": "OPENAI_API_VERSION",
355
+ "value": "{api_azure_version}",
356
+ }
357
+ )
358
+
359
+ # llama
360
+ is_endpoint = False
361
+ is_version = False
362
+ for item in model.llama_index["env"]:
363
+ if item["name"] == "AZURE_OPENAI_ENDPOINT":
364
+ is_endpoint = True
365
+ if (item["value"]
366
+ and item["value"] not in ["{api_azure_endpoint}", "{api_endpoint}"]):
367
+ azure_endpoint = item["value"]
368
+ item["value"] = "{api_azure_endpoint}"
369
+ elif item["name"] == "OPENAI_API_VERSION":
370
+ is_version = True
371
+ if (item["value"]
372
+ and item["value"] not in ["{api_azure_version}"]):
373
+ azure_api_version = item["value"]
374
+ item["value"] = "{api_azure_version}"
375
+ if not is_endpoint:
376
+ model.llama_index["env"].append(
377
+ {
378
+ "name": "AZURE_OPENAI_ENDPOINT",
379
+ "value": "{api_azure_endpoint}",
380
+ }
381
+ )
382
+ if not is_version:
383
+ model.llama_index["env"].append(
384
+ {
385
+ "name": "OPENAI_API_VERSION",
386
+ "value": "{api_azure_version}",
387
+ }
388
+ )
389
+
390
+ # Anthropic
391
+ elif model.id.startswith("claude-"):
392
+ is_key = False
393
+ for item in model.langchain["env"]:
394
+ if item["name"] == "ANTHROPIC_API_KEY":
395
+ is_key = True
396
+ if (item["value"]
397
+ and item["value"] not in ["{api_key}"]):
398
+ anthropic_key = item["value"]
399
+ item["value"] = "{api_key_anthropic}"
400
+ if not is_key:
401
+ model.langchain["env"].append(
402
+ {
403
+ "name": "ANTHROPIC_API_KEY",
404
+ "value": "{api_key_anthropic}",
405
+ }
406
+ )
407
+ is_key = False
408
+ for item in model.llama_index["env"]:
409
+ if item["name"] == "ANTHROPIC_API_KEY":
410
+ is_key = True
411
+ if (item["value"]
412
+ and item["value"] not in ["{api_key}"]):
413
+ anthropic_key = item["value"]
414
+ item["value"] = "{api_key_anthropic}"
415
+ if not is_key:
416
+ model.llama_index["env"].append(
417
+ {
418
+ "name": "ANTHROPIC_API_KEY",
419
+ "value": "{api_key_anthropic}",
420
+ }
421
+ )
422
+ # Google
423
+ elif model.id.startswith("gemini-"):
424
+ is_key = False
425
+ for item in model.langchain["env"]:
426
+ if item["name"] == "GOOGLE_API_KEY":
427
+ is_key = True
428
+ if (item["value"]
429
+ and item["value"] not in ["{api_key}"]):
430
+ google_key = item["value"]
431
+ item["value"] = "{api_key_google}"
432
+ if not is_key:
433
+ model.langchain["env"].append(
434
+ {
435
+ "name": "GOOGLE_API_KEY",
436
+ "value": "{api_key_google}",
437
+ }
438
+ )
439
+ is_key = False
440
+ for item in model.llama_index["env"]:
441
+ if item["name"] == "GOOGLE_API_KEY":
442
+ is_key = True
443
+ if (item["value"]
444
+ and item["value"] not in ["{api_key}"]):
445
+ google_key = item["value"]
446
+ item["value"] = "{api_key_google}"
447
+ if not is_key:
448
+ model.llama_index["env"].append(
449
+ {
450
+ "name": "GOOGLE_API_KEY",
451
+ "value": "{api_key_google}",
452
+ }
453
+ )
454
+ # move API keys to config
455
+ config_updated = False
456
+ if azure_endpoint:
457
+ self.window.core.config.set("api_azure_endpoint", azure_endpoint)
458
+ config_updated = True
459
+ if azure_api_version:
460
+ self.window.core.config.set("api_azure_version", azure_api_version)
461
+ config_updated = True
462
+ if google_key:
463
+ self.window.core.config.set("api_key_google", google_key)
464
+ config_updated = True
465
+ if anthropic_key:
466
+ self.window.core.config.set("api_key_anthropic", anthropic_key)
467
+ config_updated = True
468
+ if config_updated:
469
+ self.window.core.config.save()
470
+ updated = True
471
+
317
472
  # update file
318
473
  if updated:
319
474
  data = dict(sorted(data.items()))
@@ -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.05.02 19:00:00 #
9
+ # Updated Date: 2024.12.16 20:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtCore import Qt
@@ -71,9 +71,24 @@ class Settings(BaseConfigDialog):
71
71
  content_tabs = {}
72
72
  scroll_tabs = {}
73
73
  advanced_keys = {} # advanced options keys
74
+ first_tab = "general"
74
75
 
75
76
  # get settings options for section
76
77
  fields = self.window.controller.settings.editor.get_options(section_id)
78
+ is_general = False
79
+ for key in fields:
80
+ if 'tab' in fields[key]:
81
+ tab = fields[key]['tab']
82
+ if tab is not None:
83
+ if first_tab == "general":
84
+ first_tab = tab
85
+ if tab.lower() == "general":
86
+ is_general = True
87
+ break
88
+ else:
89
+ is_general = True
90
+ break
91
+
77
92
 
78
93
  # extract tab ids, general is default
79
94
  tab_ids = self.extract_option_tabs(fields)
@@ -124,7 +139,7 @@ class Settings(BaseConfigDialog):
124
139
  elif fields[key]['type'] == 'combo':
125
140
  options[key] = self.add_option(widgets[key], fields[key]) # combobox
126
141
 
127
- self.window.ui.nodes['settings.api_key.label'].setMinimumHeight(60)
142
+ #self.window.ui.nodes['settings.api_key.label'].setMinimumHeight(60)
128
143
 
129
144
  # append widgets options layouts to scroll area
130
145
  for key in options:
@@ -192,7 +207,7 @@ class Settings(BaseConfigDialog):
192
207
  content_tabs[tab_id].addStretch()
193
208
 
194
209
  # tabs or no tabs
195
- if len(content_tabs) > 1:
210
+ if len(content_tabs) > 1 or (len(content_tabs) == 1 and not is_general):
196
211
  # tabs
197
212
  tab_widget = QTabWidget()
198
213
 
@@ -205,7 +220,7 @@ class Settings(BaseConfigDialog):
205
220
  name_key = trans("settings.section.tab.general")
206
221
  else:
207
222
  name_key = trans("settings.section." + section_id + "." + tab_id)
208
- tab_name = trans(name_key)
223
+ tab_name = trans(name_key.replace(" ", "_").lower())
209
224
  scroll_widget = QWidget()
210
225
  scroll_widget.setLayout(content_tabs[tab_id])
211
226
  scroll_tabs[tab_id].setWidget(scroll_widget)
@@ -217,12 +232,12 @@ class Settings(BaseConfigDialog):
217
232
  else:
218
233
  # one scroll only
219
234
  scroll_widget = QWidget()
220
- scroll_widget.setLayout(content_tabs["general"])
221
- scroll_tabs["general"].setWidget(scroll_widget)
235
+ scroll_widget.setLayout(content_tabs[first_tab])
236
+ scroll_tabs[first_tab].setWidget(scroll_widget)
222
237
 
223
238
  area = QVBoxLayout()
224
239
  area.addWidget(self.add_line())
225
- area.addWidget(scroll_tabs["general"])
240
+ area.addWidget(scroll_tabs[first_tab])
226
241
 
227
242
  area_widget = QWidget()
228
243
  area_widget.setLayout(area)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pygpt-net
3
- Version: 2.4.45
3
+ Version: 2.4.46
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, 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
  Home-page: https://pygpt.net
6
6
  License: MIT
@@ -92,7 +92,7 @@ Description-Content-Type: text/markdown
92
92
 
93
93
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
94
94
 
95
- Release: **2.4.45** | build: **2024.12.16** | Python: **>=3.10, <3.12**
95
+ Release: **2.4.46** | build: **2024.12.16** | Python: **>=3.10, <3.12**
96
96
 
97
97
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
98
98
  >
@@ -419,12 +419,12 @@ During the initial launch, you must configure your API key within the applicatio
419
419
  To do so, navigate to the menu:
420
420
 
421
421
  ``` ini
422
- Config -> Settings...
422
+ Config -> Settings -> API Keys
423
423
  ```
424
424
 
425
425
  and then paste the API key into the `OpenAI API KEY` field.
426
426
 
427
- ![v2_settings](https://github.com/user-attachments/assets/003b0f86-8225-4478-8525-fb9324ac5c88)
427
+ ![v2_api_keys](https://github.com/user-attachments/assets/8564add8-364b-471d-80d5-7e99ae77e129)
428
428
 
429
429
  The API key can be obtained by registering on the OpenAI website:
430
430
 
@@ -444,6 +444,8 @@ Your API keys will be available here:
444
444
 
445
445
  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.
446
446
 
447
+ **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.**
448
+
447
449
  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.
448
450
 
449
451
  Above where you type your messages, the interface shows you the number of tokens your message will use up as you type it – this helps to keep track of usage. There is also a feature to attach and upload files in this area. Go to the `Files and Attachments` section for more information on how to use attachments.
@@ -2813,7 +2815,17 @@ Config -> Settings...
2813
2815
 
2814
2816
  **General**
2815
2817
 
2816
- - `OpenAI API KEY`: The personal API key you'll need to enter into the application for it to function.
2818
+ - `Minimize to tray on exit`: Minimize to tray icon on exit. Tray icon enabled is required for this option to work. Default: False.
2819
+
2820
+ - `Render engine`: chat output render engine: `WebEngine / Chromium` - for full HTML/CSS and `Legacy (markdown)` for legacy, simple markdown CSS output. Default: WebEngine / Chromium.
2821
+
2822
+ - `OpenGL hardware acceleration`: enables hardware acceleration in `WebEngine / Chromium` renderer. Default: False.
2823
+
2824
+ - `Application environment (os.environ)`: Additional environment vars to set on application start.
2825
+
2826
+ **API Keys**
2827
+
2828
+ - `OpenAI API KEY`: Required for the OpenAI API. If you wish to use custom endpoints or local APIs, then you may enter any value here.
2817
2829
 
2818
2830
  - `OpenAI ORGANIZATION KEY`: The organization's API key, which is optional for use within the application.
2819
2831
 
@@ -2821,13 +2833,15 @@ Config -> Settings...
2821
2833
 
2822
2834
  - `Proxy address`: Proxy address to be used for connection; supports HTTP/SOCKS.
2823
2835
 
2824
- - `Minimize to tray on exit`: Minimize to tray icon on exit. Tray icon enabled is required for this option to work. Default: False.
2836
+ - `Google API KEY`: Required for the Google API and Gemini models.
2825
2837
 
2826
- - `Render engine`: chat output render engine: `WebEngine / Chromium` - for full HTML/CSS and `Legacy (markdown)` for legacy, simple markdown CSS output. Default: WebEngine / Chromium.
2838
+ - `Anthropic API KEY`: Required for the Anthropic API and Claude models.
2827
2839
 
2828
- - `OpenGL hardware acceleration`: enables hardware acceleration in `WebEngine / Chromium` renderer. Default: False.
2840
+ - `HuggingFace API KEY`: Required for the HuggingFace API.
2829
2841
 
2830
- - `Application environment (os.environ)`: Additional environment vars to set on application start.
2842
+ - `OpenAI API version`: Azure OpenAI API version, e.g. 2023-07-01-preview
2843
+
2844
+ - `Azure OpenAI API endpoint`: Azure OpenAI API endpoint, https://<your-resource-name>.openai.azure.com/
2831
2845
 
2832
2846
  **Layout**
2833
2847
 
@@ -4028,6 +4042,12 @@ may consume additional tokens that are not displayed in the main window.
4028
4042
 
4029
4043
  ## Recent changes:
4030
4044
 
4045
+ **2.4.46 (2024-12-16)**
4046
+
4047
+ - Added a new tab in Settings: "API Keys", where the API keys configuration for Google and Anthropic models has been relocated.
4048
+ - Introduced a new mode in "Chat with Files": "Retrieve Only", which allows for retrieving raw documents from the index.
4049
+ - Fixed a bug related to tool calls in the Gemini provider when using Chat with Files mode.
4050
+
4031
4051
  **2.4.45 (2024-12-16)**
4032
4052
 
4033
4053
  - Enhanced web data loaders UI.
@@ -1,9 +1,9 @@
1
- CHANGELOG.md,sha256=i4WebjD604rHjXAZW919DqCF4E_dlM50lA8V4eWrtHQ,80091
2
- README.md,sha256=FyxcDQXhoQ2OWe0TXe01HniGKNO5rLTnO3qwPpHSfds,163356
1
+ CHANGELOG.md,sha256=y6Kz5VDV5NI5ZmfTTwupS35Si8zLLxXlTFuBZaO5iZg,80457
2
+ README.md,sha256=n4ZEs4sbs61suidCtdPs-ua7mgtiIQOpSgMlzYMS60A,164317
3
3
  icon.png,sha256=CzcINJaU23a9hNjsDlDNbyuiEvKZ4Wg6DQVYF6SpuRg,13970
4
- pygpt_net/CHANGELOG.txt,sha256=Y89GFqRzvP_drqfT3xChx-IPaZai2rTBW8dWmJzgiIg,78620
4
+ pygpt_net/CHANGELOG.txt,sha256=4RIebiYnii50ghCbxdEYr4KwdelEaC27lI2KxCsG-MQ,78983
5
5
  pygpt_net/LICENSE,sha256=6Ku72-zJ8wO5VIR87UoJ5P_coCVjPghaFL9ZF2jLp7E,1146
6
- pygpt_net/__init__.py,sha256=WrF45IKMdaraGha65Zgj_JOg7yGyvsrhGK3EGDNN8Bs,1067
6
+ pygpt_net/__init__.py,sha256=91tF1PnSfcnuV1KbQ8sWJeChminwMYq7bo90aj_uH_s,1067
7
7
  pygpt_net/app.py,sha256=i02M96uLngAs_XZCS1Mi84vb3Okx8ZZewbTdhCqFolM,16029
8
8
  pygpt_net/config.py,sha256=Qc1FOBtTf3O6A6-6KoqUGtoJ0u8hXQeowvCVbZFwtik,16405
9
9
  pygpt_net/container.py,sha256=BemiVZPpPNIzfB-ZvnZeeBPFu-AcX2c30OqYFylEjJc,4023
@@ -39,7 +39,7 @@ pygpt_net/controller/chat/output.py,sha256=VuziVuI9Lj_4kZmTWvXg8t2tq4w9uD7J1g2Mq
39
39
  pygpt_net/controller/chat/render.py,sha256=h23QCvMDIAaCpInqwwADa4G43sSpSn-CE5celnk1LSc,17206
40
40
  pygpt_net/controller/chat/response.py,sha256=UnTnnn2on-Qg2_T_QcQcklTCcuq6XhyLLxs1fn-D9Tg,9450
41
41
  pygpt_net/controller/chat/stream.py,sha256=zdyC-IGgb9gUtvNCOBXc__XU__kiBmSF6XJitDjcXxU,7486
42
- pygpt_net/controller/chat/text.py,sha256=0Q0FxoGXuIEP4Kcr5kCyUgXymsg4jUyoXTKW2ElTIW8,10185
42
+ pygpt_net/controller/chat/text.py,sha256=11RIuXqSfXez8VVlfFH3x9z6y5gFzg4trfG6aqto7ko,10312
43
43
  pygpt_net/controller/chat/vision.py,sha256=bTQ6TFEh9NsPSDSLpExS7KvxQMtqm2sDPm5A0skyOGo,2838
44
44
  pygpt_net/controller/command.py,sha256=sUvnvsKISkHTrbv7woQQ8r4SAGDR8Gy85H42q8eAg78,5671
45
45
  pygpt_net/controller/config/__init__.py,sha256=cpVI1-_DkrnDkl5K4rGjOhYD-TzXKUoQx99pKzwXjKg,4863
@@ -63,7 +63,7 @@ pygpt_net/controller/dialogs/debug.py,sha256=v6E85vyCwfaDG9XZysxhBjRwlrDkbYC-NxU
63
63
  pygpt_net/controller/dialogs/info.py,sha256=7J3LwDX13BEXds5jVy5FQZAZgKIOGkqoOz8-kFadtTU,2835
64
64
  pygpt_net/controller/files.py,sha256=1Zm9L8-rhLG-GjRQDaOCkAFocAAobTQj-D3ILxLUGn4,16135
65
65
  pygpt_net/controller/finder.py,sha256=4jl8EzTVR1Wc0dJkVwacAdvBiuF1CyOSKB4Qewju0Jw,4955
66
- pygpt_net/controller/idx/__init__.py,sha256=kTpUrAiv6oU6DZmpHJ2uvAv28RylX3j8ZnRblD53iFc,10089
66
+ pygpt_net/controller/idx/__init__.py,sha256=oY6clG2YANYB_wJumnOl78ugU3V5c_sG1WIwRyBCVOo,10161
67
67
  pygpt_net/controller/idx/common.py,sha256=QOjDy2XMUONeeaXl6ULJGO8ropzd5fphf3DidJgFkp0,2097
68
68
  pygpt_net/controller/idx/indexer.py,sha256=5odavgOrqsTD_JZn6fyK0_fKH1BYWYJJAPhec3uxyM0,22303
69
69
  pygpt_net/controller/idx/settings.py,sha256=orWd8ARxIBBs3MWJLjEKcqmrXLi6DvsLitsPvPd2fXU,7916
@@ -90,7 +90,7 @@ pygpt_net/controller/plugins/settings.py,sha256=imKitT7FBCfuDQvCTy1Qz4dq4xaT4LKb
90
90
  pygpt_net/controller/presets/__init__.py,sha256=nasEC4qE3OLzvh9l9YWv1h18cLXsab7-210oWeVTvkw,22367
91
91
  pygpt_net/controller/presets/editor.py,sha256=MDLZHaJ7_vNZvrJXLFFaWukRXw0hz_L7_Wv1NX8ctcQ,19453
92
92
  pygpt_net/controller/presets/experts.py,sha256=ipC4UBPseWK4OviQtOcrWY4HW9j2A4AButVS_9Z5leY,4998
93
- pygpt_net/controller/settings/__init__.py,sha256=FFCU_GlL2WX_6FPApx_qjmzXNYlJq3TMfn6TVkvsqFY,7767
93
+ pygpt_net/controller/settings/__init__.py,sha256=cFA4ZKjcsu8uoapWMTllUUB9DvJXVBzbxLT6InRS4zU,7768
94
94
  pygpt_net/controller/settings/editor.py,sha256=2z2uFS4A4JImdlDbx8yhIyXfXn6WEBJ7BgXV3MXSZKo,16368
95
95
  pygpt_net/controller/settings/profile.py,sha256=1sdsGlVf8DRy3NvyXdem6Bb8iJVrMe9yPdmWO23nDE8,21253
96
96
  pygpt_net/controller/settings/workdir.py,sha256=khvMDJrQoLMVh2rnTyk9cKilBUig5PKdULRVLZJ5X1k,8794
@@ -178,7 +178,7 @@ pygpt_net/core/filesystem/types.py,sha256=1HFubxAHYup_SLQ7SlR5EvZb3KgVyd8K8vBRUk
178
178
  pygpt_net/core/filesystem/url.py,sha256=cXctpPHBY1-fwn7vFqfZi3CeP73n2nFXF-ZnePiRk7U,3236
179
179
  pygpt_net/core/history.py,sha256=93kjlEfVowxR8A_yoPqDINfYHsKlQnh9ii2klsWmUyE,3125
180
180
  pygpt_net/core/idx/__init__.py,sha256=I5IPrC7ZzEvYVe4mLlGbyTvV_d-V49LOtVd2edRVCsM,17965
181
- pygpt_net/core/idx/chat.py,sha256=VN5rflGILPX8rNxwbllFOWBIB_NBFEco1qGtxMjr8PQ,21398
181
+ pygpt_net/core/idx/chat.py,sha256=Jr7pNwJXdn6ciaSeoi7nXMrkwBjxYtQRDxwJudOsE_o,23443
182
182
  pygpt_net/core/idx/context.py,sha256=uISNiKprcA_Qv9t0PbMj1vDWCm1eccYbk5iGS-QcfG0,3143
183
183
  pygpt_net/core/idx/indexing.py,sha256=IoQQYdF0J75lH02Nj3LpWpEqhkXexAhvLwW4o1GX7Fs,43048
184
184
  pygpt_net/core/idx/llm.py,sha256=oTyU1t-xEtadRl8Vkzpp_IWN4bXTtbLQsnhiA_9myMQ,5159
@@ -246,9 +246,9 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
246
246
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
247
247
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
248
248
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
249
- pygpt_net/data/config/config.json,sha256=IikODdsLIhUO_3CngNX7ru7cUMtEfYLz5PqHwcA746w,19535
250
- pygpt_net/data/config/models.json,sha256=waqDijgxxiOTMksaSmsbq5oHRZk7AXyUcgcQuax_aqc,48872
251
- pygpt_net/data/config/modes.json,sha256=FdUSFJVScMxp8_-Rwu5d3glGM80Rq3FRXBt9AAHGjFc,1923
249
+ pygpt_net/data/config/config.json,sha256=vXkxtd8jSLl-6ME2y3pBcMBEPeRDy669tUUsIxFQ60k,19735
250
+ pygpt_net/data/config/models.json,sha256=dauoYHK4UMqh2nnxiIs_k6KLMbemeQ1rIiQOkKC_UpQ,60405
251
+ pygpt_net/data/config/modes.json,sha256=jPS9KzVxKpV1Jhm1alFoneqZXxusQnfhhFR_qt_wF-U,1923
252
252
  pygpt_net/data/config/presets/agent_openai.json,sha256=vMTR-soRBiEZrpJJHuFLWyx8a3Ez_BqtqjyXgxCAM_Q,733
253
253
  pygpt_net/data/config/presets/agent_openai_assistant.json,sha256=awJw9lNTGpKML6SJUShVn7lv8AXh0oic7wBeyoN7AYs,798
254
254
  pygpt_net/data/config/presets/agent_planner.json,sha256=a6Rv58Bnm2STNWB0Rw_dGhnsz6Lb3J8_GwsUVZaTIXc,742
@@ -268,8 +268,8 @@ pygpt_net/data/config/presets/current.vision.json,sha256=x1ll5B3ROSKYQA6l27PRGXU
268
268
  pygpt_net/data/config/presets/dalle_white_cat.json,sha256=esqUb43cqY8dAo7B5u99tRC0MBV5lmlrVLnJhTSkL8w,552
269
269
  pygpt_net/data/config/presets/joke_agent.json,sha256=R6n9P7KRb0s-vZWZE7kHdlOfXAx1yYrPmUw8uLyw8OE,474
270
270
  pygpt_net/data/config/presets/joke_expert.json,sha256=aFBFCY97Uba71rRq0MSeakXaOj8yuaUqekQ842YHv64,683
271
- pygpt_net/data/config/settings.json,sha256=Jgv9eyd8RwTsJyYTIVp0hy0nKedm-NanKdlkH36g7hw,46352
272
- pygpt_net/data/config/settings_section.json,sha256=ZNXZRobAL9-Cbe7chIJZXVkUFbUvqKDxE34g3ZLS0t4,934
271
+ pygpt_net/data/config/settings.json,sha256=VXSG79pbpj_WDanxg_oLio1dwLQXeOU4TZP1uQ9n2F0,48806
272
+ pygpt_net/data/config/settings_section.json,sha256=M22jrZvly6KliNr_fhkS6rk_bdzlFK4OyoWZ6TiyRnY,1004
273
273
  pygpt_net/data/css/fix_windows.css,sha256=Mks14Vg25ncbMqZJfAMStrhvZmgHF6kU75ohTWRZeI8,664
274
274
  pygpt_net/data/css/markdown.css,sha256=yaoJPogZZ_ghbqP8vTXTycwVyD61Ik5_033NpzuUzC0,1122
275
275
  pygpt_net/data/css/markdown.dark.css,sha256=ixAwuT69QLesZttKhO4RAy-QukplZwwfXCZsWLN9TP4,730
@@ -1484,14 +1484,14 @@ pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff,sha256=4U_tArGrp86fW
1484
1484
  pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff2,sha256=cdUX1ngneHz6vfGGkUzDNY7aU543kxlB8rL9SiH2jAs,13568
1485
1485
  pygpt_net/data/js/katex/katex.min.css,sha256=lVaKnUaQNG4pI71WHffQZVALLQF4LMZEk4nOia8U9ow,23532
1486
1486
  pygpt_net/data/js/katex/katex.min.js,sha256=KLASOtKS2x8pUxWVzCDmlWJ4jhuLb0vtrgakbD6gDDo,276757
1487
- pygpt_net/data/locale/locale.de.ini,sha256=H_ez3-Yuw6fd2PHeMH8shNcpQHgznhDl2jlJuFHWtRs,62590
1488
- pygpt_net/data/locale/locale.en.ini,sha256=vIXVwa4elbaCv9uvjXRNuKDEEgxazNnZE0SXkCDGQsE,75162
1489
- pygpt_net/data/locale/locale.es.ini,sha256=rh6A7R5BZyO399Qz0BHUsv7N0U-44yvlBG2X1xcZhFQ,62809
1490
- pygpt_net/data/locale/locale.fr.ini,sha256=hTGh4_en056SAVzAicOx-1MhNuwh-KKypZLpgHNDrQA,64854
1491
- pygpt_net/data/locale/locale.it.ini,sha256=XafZlQrASzOCmfM1JS7AxxUorkATmi6DPzQQQuw6gm8,61671
1492
- pygpt_net/data/locale/locale.pl.ini,sha256=73CIq7xhibjqv5wVVahHlvZCmk2SH1N73VWEdj7BF2s,61744
1493
- pygpt_net/data/locale/locale.uk.ini,sha256=xGlJsW2-vwPjvSRmiT0vupC461VI-xV1qrRLOZTArJk,86186
1494
- pygpt_net/data/locale/locale.zh.ini,sha256=66xR0yhEcUK-PPj0Sfg1oI5Ze7RKG5_N92axWZKCZzA,63480
1487
+ pygpt_net/data/locale/locale.de.ini,sha256=x2KH8DuIMh-XT_LrwJtqI6lDhGpJGSzfNPG1Kda_mnc,63555
1488
+ pygpt_net/data/locale/locale.en.ini,sha256=AilIvmCHTH446NpT_1lYvfUuWbqKBNJlJoAKUerFRxg,76120
1489
+ pygpt_net/data/locale/locale.es.ini,sha256=jZtuTkg80doldJXiIOL6t2emLmTA6D4DR7Rejl6DVDw,63796
1490
+ pygpt_net/data/locale/locale.fr.ini,sha256=tSZISfdE8ysnHMyZsKyJ1kBXw0_liRNSfmV2XRJwUn4,65825
1491
+ pygpt_net/data/locale/locale.it.ini,sha256=y63qF7dcsMZf_gxAV799H2-7WZhEfE86GH0CdExyk0k,62582
1492
+ pygpt_net/data/locale/locale.pl.ini,sha256=H3GJwKhyoZ3CFS-niItAsRH0FWCpHI2chhlTxxpoBpY,62664
1493
+ pygpt_net/data/locale/locale.uk.ini,sha256=7EnAUSpsarHefmYNPe9_kSwSYz654KNsoQ26PR7-cpY,87197
1494
+ pygpt_net/data/locale/locale.zh.ini,sha256=kd6CZXcX-yPyDlW3O2KWV-JE_9T35Qb1zznUcb7CN2c,64386
1495
1495
  pygpt_net/data/locale/plugin.agent.de.ini,sha256=BY28KpfFvgfVYJzcw2o5ScWnR4uuErIYGyc3NVHlmTw,1714
1496
1496
  pygpt_net/data/locale/plugin.agent.en.ini,sha256=88LkZUpilbV9l4QDbMyIdq_K9sbWt-CQPpavEttPjJU,1489
1497
1497
  pygpt_net/data/locale/plugin.agent.es.ini,sha256=bqaJQne8HPKFVtZ8Ukzo1TSqVW41yhYbGUqW3j2x1p8,1680
@@ -1580,14 +1580,14 @@ pygpt_net/data/locale/plugin.cmd_system.it.ini,sha256=grekD4hNTSLjeGgFcPR72BYVYc
1580
1580
  pygpt_net/data/locale/plugin.cmd_system.pl.ini,sha256=BOPQnlUkwIW3uRLJXVLqNjKn0Yky4tfVYCKHpXl3fEs,1256
1581
1581
  pygpt_net/data/locale/plugin.cmd_system.uk.ini,sha256=lEWM_ZtyKKRnxNErKrNWgXcxviORws7Nq5W4SaaFA6E,1829
1582
1582
  pygpt_net/data/locale/plugin.cmd_system.zh.ini,sha256=PlrKIjsI09Iodyj9tsjkbTUgqDgGVN0B0UFqZlRXd6k,1060
1583
- pygpt_net/data/locale/plugin.cmd_web.de.ini,sha256=mOU-KOj2XoRyOgVC7Y0KNsraUpQrFB7u3akDrbJFxxQ,5771
1584
- pygpt_net/data/locale/plugin.cmd_web.en.ini,sha256=O63KLBtRmSv-tddYGZQkE22N4ZotB3dzqurrytOXyM0,5906
1585
- pygpt_net/data/locale/plugin.cmd_web.es.ini,sha256=Oj-2xGflHavZezRgrHWrEPpazDs7t2Zye9UcZBKTuiE,5784
1586
- pygpt_net/data/locale/plugin.cmd_web.fr.ini,sha256=Erda5lsF7TeL6Qd_hwRR3j3QHtFtJqZbBhHgH6EWRUA,5827
1587
- pygpt_net/data/locale/plugin.cmd_web.it.ini,sha256=XLCNetBegzzds0cZvo8iutbvm4uXaYaZ0XeX3qhYslk,5712
1588
- pygpt_net/data/locale/plugin.cmd_web.pl.ini,sha256=GO8fjI5VtD67jOSl0eFGivi7_Q8ng4onh6odCORTdSY,5890
1589
- pygpt_net/data/locale/plugin.cmd_web.uk.ini,sha256=KsGBQBHrDACDhuM3NhB_K61ccojNO7VzeJxL6Z2OnYA,8274
1590
- pygpt_net/data/locale/plugin.cmd_web.zh.ini,sha256=yyZQHtTvzEmcX7dkr_e6_qhkySFc8IQSJzgh-bfWbO8,4798
1583
+ pygpt_net/data/locale/plugin.cmd_web.de.ini,sha256=V-PndLMH8fLysnmKMHSGvFsjGEJ92jizqDUslRgImwk,5771
1584
+ pygpt_net/data/locale/plugin.cmd_web.en.ini,sha256=zTadoMNs_7fR9RKQR25dVD8UpGPOlwHi3h4CgDSG8H0,5906
1585
+ pygpt_net/data/locale/plugin.cmd_web.es.ini,sha256=BvatDPqrGI3cmjO2XsaimK_hG1P7HvfbTUDQd4EDf3k,5784
1586
+ pygpt_net/data/locale/plugin.cmd_web.fr.ini,sha256=wwct5vhhIZH457t5RtWwyZOsgk4KAkrTM5sM8wbXtJk,5827
1587
+ pygpt_net/data/locale/plugin.cmd_web.it.ini,sha256=35gt5JkwywJFZNXt2SQsrBGyGgCTaEBar_SHRTVJthk,5712
1588
+ pygpt_net/data/locale/plugin.cmd_web.pl.ini,sha256=bZd4j_AgrvPlbELStqv8sHiJ9pKA-EFJ1TQEpxCTA6s,5890
1589
+ pygpt_net/data/locale/plugin.cmd_web.uk.ini,sha256=MgdnPFCIOiIgZTSuSXYGJYAHwiI74mB1S570T4_f_yU,8274
1590
+ pygpt_net/data/locale/plugin.cmd_web.zh.ini,sha256=QdQ4_JbxLwa4p39BJ9S_AHOWnF5bcK25Hpz4XY_1viQ,4798
1591
1591
  pygpt_net/data/locale/plugin.crontab.de.ini,sha256=BVK_i4lvO4IQkLJRrpnKdtXULTUUtSq3-N-whM3qLUo,874
1592
1592
  pygpt_net/data/locale/plugin.crontab.en.ini,sha256=jBNoj072WAgOuUVMF__pWh3Hfi9RfNosa79kqTNv9kk,754
1593
1593
  pygpt_net/data/locale/plugin.crontab.es.ini,sha256=yTJ3o8UjWpGh1H8ACf56RV6eaqpKsurK8u19AvcEp8Y,962
@@ -1620,7 +1620,7 @@ pygpt_net/data/locale/plugin.idx_llama_index.it.ini,sha256=IL-BuLg3lIPq8IEvcyX7L
1620
1620
  pygpt_net/data/locale/plugin.idx_llama_index.pl.ini,sha256=KnvWfadmqGMDKLggI7L89x-W-wszk6ZF01pOVAsTb-Y,2162
1621
1621
  pygpt_net/data/locale/plugin.idx_llama_index.uk.ini,sha256=MUI_6djlLhOMqunPDtpgDnXrhkSU_NPKfMAHBN2ASQU,3288
1622
1622
  pygpt_net/data/locale/plugin.idx_llama_index.zh.ini,sha256=_nGvNr24Krdh69nOz1XkZEbIVAInjli8qBVZXASqaTQ,1854
1623
- pygpt_net/data/locale/plugin.mailer.en.ini,sha256=wlthaFlYukCdo-TnXaPF79uIfmg2ySkRi-O1gfWT7wc,962
1623
+ pygpt_net/data/locale/plugin.mailer.en.ini,sha256=ZK7LCHAiQGw38PzZy_LyES9b7vQ47QA6XjSiq2NlsSs,962
1624
1624
  pygpt_net/data/locale/plugin.openai_dalle.de.ini,sha256=ooTDwaBiadq4-simQJND-B_AuB7xna-tzGUIMaOWGB8,452
1625
1625
  pygpt_net/data/locale/plugin.openai_dalle.en.ini,sha256=i7LIyd_AZmDf430CxRtuhbj3JTP20naDP1mc2CXzu5M,397
1626
1626
  pygpt_net/data/locale/plugin.openai_dalle.es.ini,sha256=U_pd3VK_-7VjNYwcdzHpY8I_ycOxoeOx5HHgabypOk0,459
@@ -1819,7 +1819,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=QDclQCQdr4QyRIqjgGX
1819
1819
  pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1820
1820
  pygpt_net/provider/core/config/base.py,sha256=cbvzbMNqL2XgC-36gGubnU37t94AX7LEw0lecb2Nm80,1365
1821
1821
  pygpt_net/provider/core/config/json_file.py,sha256=P78SRQpNr_nF7TYftYLnHl_DVo7GLPNs4_lvw97sqq8,5122
1822
- pygpt_net/provider/core/config/patch.py,sha256=xUa8t3ePfVAui2RsuzjJplUD1yBelBSDHrqJ7LOPIOY,94217
1822
+ pygpt_net/provider/core/config/patch.py,sha256=pUQWkvGZAh60cR3x295Itk5YN0Ss3BpJNFRuHrf273Y,94958
1823
1823
  pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1824
1824
  pygpt_net/provider/core/ctx/base.py,sha256=Tfb4MDNe9BXXPU3lbzpdYwJF9S1oa2-mzgu5XT4It9g,3003
1825
1825
  pygpt_net/provider/core/ctx/db_sqlite/__init__.py,sha256=G2pB7kZfREJRLJZmfv3DKTslXC-K7EhNN2sn56q6BFA,11753
@@ -1846,7 +1846,7 @@ pygpt_net/provider/core/mode/patch.py,sha256=VS2KCYW05jxLd-lcStNY1k4fHKUUrVVLTdR
1846
1846
  pygpt_net/provider/core/model/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1847
1847
  pygpt_net/provider/core/model/base.py,sha256=L1x2rHha8a8hnCUYxZr88utay1EWEx5qBXW_2acpAN0,1319
1848
1848
  pygpt_net/provider/core/model/json_file.py,sha256=g0u1tbOm7QKutjD5mZLRwzmYmoIqA8b6bDQ6wKbucYM,6484
1849
- pygpt_net/provider/core/model/patch.py,sha256=nJDa6JfRa3dNlJ7lQ7pOk8yhpE80JWL6f-iKiihw3ww,14346
1849
+ pygpt_net/provider/core/model/patch.py,sha256=KovfiiyiuRqsCa0HkGOrXh8EjbQqWKtoOh47GKliOxc,22417
1850
1850
  pygpt_net/provider/core/notepad/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1851
1851
  pygpt_net/provider/core/notepad/base.py,sha256=7aPhild8cALTaN3JEbI0YrkIW1DRIycGQWTfsdH6WcQ,1323
1852
1852
  pygpt_net/provider/core/notepad/db_sqlite/__init__.py,sha256=DQnVKJxvLq-6zlRlLk3MXSQZEObFtcQ5p5mEnuRzwYE,3104
@@ -2019,7 +2019,7 @@ pygpt_net/ui/dialog/preset.py,sha256=gkAjtx_he9dMy3JEEywtM8n_QkiEh1FzXbBzRbQgn2g
2019
2019
  pygpt_net/ui/dialog/preset_plugins.py,sha256=ynqc0aWjU7MTL4jxcVKaRH_tC9uzeWJCUzUjI74ADb0,3796
2020
2020
  pygpt_net/ui/dialog/profile.py,sha256=Xk9NNQmr1A5pRUxdedu7ePEBq5OYhLT8UInuRWYBktU,4105
2021
2021
  pygpt_net/ui/dialog/rename.py,sha256=Spb7cUVq1ivy3Zg28SBACJ7p_GwJ1gm82Oz9Ld_a_FU,973
2022
- pygpt_net/ui/dialog/settings.py,sha256=yITeLVbP-yRGj_bw0RstSYAp4n8ZrM_tMHgQUnBOnjw,15114
2022
+ pygpt_net/ui/dialog/settings.py,sha256=XZQiNI-AbrUBT-mMo8wdQGJS9bOunaY6dYKAFdzDiUI,15725
2023
2023
  pygpt_net/ui/dialog/snap.py,sha256=YtTAPbY3URBLEiSP-xVE4gUkbaBUpvyOLzVAisVpy6k,954
2024
2024
  pygpt_net/ui/dialog/start.py,sha256=wHGKD6d4XGaKzDDvUCZOe_fK1aCaD21Vi_8R2td7-Zk,2459
2025
2025
  pygpt_net/ui/dialog/update.py,sha256=wJDe2D55XqlAd30vHLeWAuGmgaElwhTd82GIxzvqf4w,842
@@ -2173,8 +2173,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=9FoL02QY6mOxtc4t4fe8X7fVDIdPn9Sb_fwsv
2173
2173
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2174
2174
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2175
2175
  pygpt_net/utils.py,sha256=ES35jv1OV2etVIQcArpI-FSdfH2SMI86Gdu-V-MDbRQ,6132
2176
- pygpt_net-2.4.45.dist-info/LICENSE,sha256=GLKQTnJOPK4dDIWfkAIM4GwOxKJXi5zcMGt7FjLR1xk,1126
2177
- pygpt_net-2.4.45.dist-info/METADATA,sha256=ZtzXke6aXvivfa-4yQTHRIjWmHWSGBOTlmxRKGCpZhc,168158
2178
- pygpt_net-2.4.45.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
2179
- pygpt_net-2.4.45.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2180
- pygpt_net-2.4.45.dist-info/RECORD,,
2176
+ pygpt_net-2.4.46.dist-info/LICENSE,sha256=GLKQTnJOPK4dDIWfkAIM4GwOxKJXi5zcMGt7FjLR1xk,1126
2177
+ pygpt_net-2.4.46.dist-info/METADATA,sha256=o9Jo4NP4S3Qz7I3wRFQ_SEAcCqh9cVPsRMviTEy0tdI,169119
2178
+ pygpt_net-2.4.46.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
2179
+ pygpt_net-2.4.46.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2180
+ pygpt_net-2.4.46.dist-info/RECORD,,