pygpt-net 2.4.36.post1__py3-none-any.whl → 2.4.38__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 (55) hide show
  1. CHANGELOG.md +14 -1
  2. README.md +54 -13
  3. pygpt_net/CHANGELOG.txt +14 -1
  4. pygpt_net/__init__.py +3 -3
  5. pygpt_net/controller/chat/attachment.py +7 -39
  6. pygpt_net/controller/config/placeholder.py +29 -0
  7. pygpt_net/controller/lang/mapping.py +2 -2
  8. pygpt_net/controller/settings/editor.py +6 -0
  9. pygpt_net/controller/theme/__init__.py +33 -8
  10. pygpt_net/controller/theme/common.py +22 -1
  11. pygpt_net/controller/theme/markdown.py +26 -14
  12. pygpt_net/controller/theme/menu.py +26 -5
  13. pygpt_net/core/attachments/context.py +145 -53
  14. pygpt_net/core/audio/__init__.py +59 -1
  15. pygpt_net/core/bridge/worker.py +16 -2
  16. pygpt_net/core/events/event.py +2 -1
  17. pygpt_net/core/filesystem/__init__.py +5 -19
  18. pygpt_net/core/idx/chat.py +22 -24
  19. pygpt_net/core/render/web/body.py +31 -15
  20. pygpt_net/data/config/config.json +11 -5
  21. pygpt_net/data/config/models.json +3 -3
  22. pygpt_net/data/config/modes.json +3 -3
  23. pygpt_net/data/config/settings.json +81 -10
  24. pygpt_net/data/config/settings_section.json +3 -0
  25. pygpt_net/data/css/style.light.css +1 -0
  26. pygpt_net/data/css/{web.css → web-blocks.css} +144 -133
  27. pygpt_net/data/css/web-chatgpt.css +342 -0
  28. pygpt_net/data/css/web-chatgpt.dark.css +64 -0
  29. pygpt_net/data/css/web-chatgpt.light.css +75 -0
  30. pygpt_net/data/css/web-chatgpt_wide.css +342 -0
  31. pygpt_net/data/css/web-chatgpt_wide.dark.css +64 -0
  32. pygpt_net/data/css/web-chatgpt_wide.light.css +75 -0
  33. pygpt_net/data/locale/locale.de.ini +16 -3
  34. pygpt_net/data/locale/locale.en.ini +24 -10
  35. pygpt_net/data/locale/locale.es.ini +16 -3
  36. pygpt_net/data/locale/locale.fr.ini +16 -3
  37. pygpt_net/data/locale/locale.it.ini +16 -3
  38. pygpt_net/data/locale/locale.pl.ini +17 -4
  39. pygpt_net/data/locale/locale.uk.ini +16 -3
  40. pygpt_net/data/locale/locale.zh.ini +17 -4
  41. pygpt_net/plugin/audio_input/simple.py +17 -3
  42. pygpt_net/plugin/idx_llama_index/__init__.py +2 -2
  43. pygpt_net/plugin/real_time/__init__.py +2 -2
  44. pygpt_net/provider/core/config/patch.py +26 -1
  45. pygpt_net/ui/menu/config.py +7 -11
  46. pygpt_net/ui/menu/theme.py +9 -2
  47. pygpt_net/ui/widget/lists/context.py +1 -0
  48. pygpt_net/ui/widget/textarea/search_input.py +4 -1
  49. {pygpt_net-2.4.36.post1.dist-info → pygpt_net-2.4.38.dist-info}/METADATA +55 -14
  50. {pygpt_net-2.4.36.post1.dist-info → pygpt_net-2.4.38.dist-info}/RECORD +55 -49
  51. /pygpt_net/data/css/{web.dark.css → web-blocks.dark.css} +0 -0
  52. /pygpt_net/data/css/{web.light.css → web-blocks.light.css} +0 -0
  53. {pygpt_net-2.4.36.post1.dist-info → pygpt_net-2.4.38.dist-info}/LICENSE +0 -0
  54. {pygpt_net-2.4.36.post1.dist-info → pygpt_net-2.4.38.dist-info}/WHEEL +0 -0
  55. {pygpt_net-2.4.36.post1.dist-info → pygpt_net-2.4.38.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: 2024.04.24 02:00:00 #
9
+ # Updated Date: 2024.12.07 21:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtGui import QAction, QIcon
@@ -28,10 +28,14 @@ class Theme:
28
28
  def setup(self):
29
29
  """Setup theme menu"""
30
30
  self.window.ui.menu['theme'] = {}
31
+ self.window.ui.menu['theme_style'] = {}
31
32
  self.window.ui.menu['theme_syntax'] = {}
32
33
  self.window.ui.menu['theme.layout.density'] = {}
33
34
  self.window.ui.menu['menu.theme'] = QMenu(trans("menu.theme"), self.window)
34
35
 
36
+ # styles
37
+ self.window.ui.menu['theme.style'] = QMenu(trans("menu.theme.style"), self.window)
38
+
35
39
  # color themes
36
40
  self.window.ui.menu['theme.dark'] = QMenu(trans("menu.theme.dark"), self.window)
37
41
  self.window.ui.menu['theme.light'] = QMenu(trans("menu.theme.light"), self.window)
@@ -40,12 +44,14 @@ class Theme:
40
44
  # layout density
41
45
  self.window.ui.menu['theme.density'] = QMenu(trans("menu.theme.density"), self.window)
42
46
 
47
+ """
43
48
  # blocks
44
49
  self.window.ui.menu['theme.blocks'] = QAction(trans("menu.theme.blocks"), self.window, checkable=True)
45
50
  self.window.ui.menu['theme.blocks'].triggered.connect(
46
51
  lambda: self.window.controller.theme.toggle_option('render.blocks'))
47
52
  self.window.ui.menu['theme.blocks'].setCheckable(True)
48
53
  self.window.ui.menu['theme.blocks'].setChecked(self.window.core.config.get('render.blocks'))
54
+ """
49
55
 
50
56
  # tooltips
51
57
  self.window.ui.menu['theme.tooltips'] = QAction(trans("menu.theme.tooltips"), self.window, checkable=True)
@@ -62,10 +68,11 @@ class Theme:
62
68
  self.window.ui.menu['theme.settings'].triggered.connect(
63
69
  lambda: self.window.controller.settings.open_section('layout'))
64
70
 
71
+ self.window.ui.menu['menu.theme'].addMenu(self.window.ui.menu['theme.style'])
65
72
  self.window.ui.menu['menu.theme'].addMenu(self.window.ui.menu['theme.dark'])
66
73
  self.window.ui.menu['menu.theme'].addMenu(self.window.ui.menu['theme.light'])
67
74
  self.window.ui.menu['menu.theme'].addMenu(self.window.ui.menu['theme.syntax'])
68
75
  self.window.ui.menu['menu.theme'].addMenu(self.window.ui.menu['theme.density'])
69
- self.window.ui.menu['menu.theme'].addAction(self.window.ui.menu['theme.blocks'])
76
+ # self.window.ui.menu['menu.theme'].addAction(self.window.ui.menu['theme.blocks'])
70
77
  self.window.ui.menu['menu.theme'].addAction(self.window.ui.menu['theme.tooltips'])
71
78
  self.window.ui.menu['menu.theme'].addAction(self.window.ui.menu['theme.settings'])
@@ -494,3 +494,4 @@ class SectionItem(QStandardItem):
494
494
  self.setTextAlignment(QtCore.Qt.AlignRight)
495
495
  font = self.font()
496
496
  font.setBold(True)
497
+ self.setFont(font)
@@ -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.04.12 10:00:00 #
9
+ # Updated Date: 2024.12.07 21:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtGui import QAction, QIcon
@@ -32,6 +32,9 @@ class CtxSearchInput(QLineEdit):
32
32
  self.clear_action.triggered.connect(self.clear_search_string)
33
33
  self.addAction(self.clear_action, QLineEdit.TrailingPosition)
34
34
  self.clear_action.setVisible(False)
35
+ action = QAction(self)
36
+ action.setIcon(QIcon(":/icons/search.svg"))
37
+ self.addAction(action, QLineEdit.LeadingPosition)
35
38
 
36
39
  self.textChanged.connect(self.on_text_changed)
37
40
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pygpt-net
3
- Version: 2.4.36.post1
3
+ Version: 2.4.38
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.36** | build: **2024.11.28** | Python: **>=3.10, <3.12**
95
+ Release: **2.4.38** | build: **2024.12.08** | Python: **>=3.10, <3.12**
96
96
 
97
97
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
98
98
  >
@@ -693,11 +693,11 @@ Built-in file loaders:
693
693
  - Webpages (crawling any webpage content)
694
694
  - YouTube (transcriptions)
695
695
 
696
- You can configure data loaders in `Settings / LlamaIndex / Data Loaders` by providing list of keyword arguments for specified loaders.
696
+ You can configure data loaders in `Settings / Indexes (LlamaIndex) / Data Loaders` by providing list of keyword arguments for specified loaders.
697
697
  You can also develop and provide your own custom loader and register it within the application.
698
698
 
699
699
  LlamaIndex is also integrated with context database - you can use data from database (your context history) as additional context in discussion.
700
- Options for indexing existing context history or enabling real-time indexing new ones (from database) are available in `Settings / LlamaIndex` section.
700
+ Options for indexing existing context history or enabling real-time indexing new ones (from database) are available in `Settings / Indexes (LlamaIndex)` section.
701
701
 
702
702
  **WARNING:** remember that when indexing content, API calls to the embedding model are used. Each indexing consumes additional tokens. Always control the number of tokens used on the OpenAI page.
703
703
 
@@ -759,7 +759,7 @@ You can set the limit of steps in such a loop by going to `Settings -> Agents an
759
759
 
760
760
  You can change the prompt used for evaluating the response in `Settings -> Prompts -> Agent: evaluation prompt in loop`. Here, you can adjust it to suit your needs, for example, by defining more or less critical feedback for the responses received.
761
761
 
762
- ## Agent (Legacy, Autonomous)
762
+ ## Agent (Autonomous)
763
763
 
764
764
  This is an older version of the Agent mode, still available as legacy. However, it is recommended to use the newer mode: `Agent (LlamaIndex)`.
765
765
 
@@ -907,11 +907,13 @@ The content from the uploaded attachments will be used in the current conversati
907
907
 
908
908
  - `Full context`: Provides best results. This mode attaches the entire content of the read file to the user's prompt. This process happens in the background and may require a large number of tokens if you uploaded extensive content.
909
909
 
910
- - `Query only`: The indexed attachment will only be queried in real-time using LlamaIndex. This operation does not require any additional tokens, but it may not provide access to the full content of the file 1:1.
910
+ - `RAG`: The indexed attachment will only be queried in real-time using LlamaIndex. This operation does not require any additional tokens, but it may not provide access to the full content of the file 1:1.
911
911
 
912
912
  - `Summary`: When queried, an additional query will be generated in the background and executed by a separate model to summarize the content of the attachment and return the required information to the main model. You can change the model used for summarization in the settings under the `Files and attachments` section.
913
913
 
914
- **Important**: When using `Full context` mode, the entire content of the file is included in the prompt, which can result in high token usage each time. If you want to reduce the number of tokens used, instead use the `Query only` option, which will only query the indexed attachment in the vector database to provide additional context.
914
+ In the `RAG` and `Summary` mode, you can enable an additional setting by going to `Settings -> Files and attachments -> Use history in RAG query`. This allows for better preparation of queries for RAG. When this option is turned on, the entire conversation context is considered, rather than just the user's last query. This allows for better searching of the index for additional context. In the `RAG limit` option, you can set a limit on how many recent entries in a discussion should be considered (`0 = no limit, default: 3`).
915
+
916
+ **Important**: When using `Full context` mode, the entire content of the file is included in the prompt, which can result in high token usage each time. If you want to reduce the number of tokens used, instead use the `RAG` option, which will only query the indexed attachment in the vector database to provide additional context.
915
917
 
916
918
  **Images as Additional Context**
917
919
 
@@ -919,7 +921,7 @@ Files such as jpg, png, and similar images are a special case. By default, image
919
921
 
920
922
  **Uploading larger files and auto-index**
921
923
 
922
- To use the `Query only` mode, the file must be indexed in the vector database. This occurs automatically at the time of upload if the `Auto-index on upload` option in the `Attachments` tab is enabled. When uploading large files, such indexing might take a while - therefore, if you are using the `Full context` option, which does not use the index, you can disable the `Auto-index` option to speed up the upload of the attachment. In this case, it will only be indexed when the `Query only` option is called for the first time, and until then, attachment will be available in the form of `Full context` and `Summary`.
924
+ To use the `RAG` mode, the file must be indexed in the vector database. This occurs automatically at the time of upload if the `Auto-index on upload` option in the `Attachments` tab is enabled. When uploading large files, such indexing might take a while - therefore, if you are using the `Full context` option, which does not use the index, you can disable the `Auto-index` option to speed up the upload of the attachment. In this case, it will only be indexed when the `RAG` option is called for the first time, and until then, attachment will be available in the form of `Full context` and `Summary`.
923
925
 
924
926
  ## Downloading files
925
927
 
@@ -2768,6 +2770,8 @@ Config -> Settings...
2768
2770
 
2769
2771
  - `Zoom`: Adjusts the zoom in chat window (web render view). `WebEngine / Chromium` render mode only.
2770
2772
 
2773
+ - `Style (chat)`: Chat style (Blocks, or ChatGPT-like, or ChatGPT-like Wide. `WebEngine / Chromium` render mode only.
2774
+
2771
2775
  - `Code syntax highlight`: Syntax highlight theme in code blocks. `WebEngine / Chromium` render mode only.
2772
2776
 
2773
2777
  - `Font Size (chat window)`: Adjusts the font size in the chat window (plain-text) and notepads.
@@ -2790,8 +2794,6 @@ Config -> Settings...
2790
2794
 
2791
2795
  - `Use theme colors in chat window`: Use color theme in chat window, Default: True.
2792
2796
 
2793
- - `Disable markdown formatting in output`: Enables plain-text display in output window, Default: False.
2794
-
2795
2797
  **Files and attachments**
2796
2798
 
2797
2799
  - `Store attachments in the workdir upload directory`: Enable to store a local copy of uploaded attachments for future use. Default: True
@@ -2800,6 +2802,16 @@ Config -> Settings...
2800
2802
 
2801
2803
  - `Directory for file downloads`: Subdirectory for downloaded files, e.g. in Assistants mode, inside "data". Default: "download"
2802
2804
 
2805
+ - `Verbose mode`: Enabled verbose mode when using attachment as additional context.
2806
+
2807
+ - `Model for querying index`: Model to use for preparing query and querying the index when the RAG option is selected.
2808
+
2809
+ - `Model for attachment content summary`: Model to use when generating a summary for the content of a file when the Summary option is selected.
2810
+
2811
+ - `Use history in RAG query`: When enabled, the content of the entire conversation will be used when preparing a query if mode is RAG or Summary.
2812
+
2813
+ - `RAG limit`: Only if the option `Use history in RAG query` is enabled. Specify the limit of how many recent entries in the conversation will be used when generating a query for RAG. 0 = no limit.
2814
+
2803
2815
  **Context**
2804
2816
 
2805
2817
  - `Context Threshold`: Sets the number of tokens reserved for the model to respond to the next prompt.
@@ -2892,14 +2904,22 @@ Config -> Settings...
2892
2904
 
2893
2905
  **Vision**
2894
2906
 
2907
+ - `Vision: Camera Input Device`: Video capture camera index (index of the camera, default: 0).
2908
+
2895
2909
  - `Vision: Camera capture width (px)`: Video capture resolution (width).
2896
2910
 
2897
2911
  - `Vision: Camera capture height (px)`: Video capture resolution (height).
2898
2912
 
2899
- - `Vision: Camera IDX (number)`: Video capture camera index (number of camera).
2900
-
2901
2913
  - `Vision: Image capture quality`: Video capture image JPEG quality (%).
2902
2914
 
2915
+ **Audio**
2916
+
2917
+ - `Audio Input Device`: Selects the audio device for Microphone input.
2918
+
2919
+ - `Channels`: Input channels, default: 1
2920
+
2921
+ - `Sampling Rate`: Sampling rate, default: 44100
2922
+
2903
2923
  **Indexes (LlamaIndex)**
2904
2924
 
2905
2925
  - `Indexes`: List of created indexes.
@@ -3337,7 +3357,7 @@ If you want to only query index (without chat) you can enable `Query index only
3337
3357
 
3338
3358
  You can create a custom vector store provider or data loader for your data and develop a custom launcher for the application.
3339
3359
 
3340
- See the section `Extending PyGPT / Adding custom Vector Store provider` for more details.
3360
+ See the section `Extending PyGPT / Adding a custom Vector Store provider` for more details.
3341
3361
 
3342
3362
  # Updates
3343
3363
 
@@ -3635,6 +3655,8 @@ Syntax: `event name` - triggered on, `event data` *(data type)*:
3635
3655
 
3636
3656
  - `AI_NAME` - when preparing an AI name, `data['value']` *(string, name of the AI assistant)*
3637
3657
 
3658
+ - `AGENT_PROMPT` - on agent prompt in eval mode, `data['value']` *(string, prompt)*
3659
+
3638
3660
  - `AUDIO_INPUT_RECORD_START` - start audio input recording
3639
3661
 
3640
3662
  - `AUDIO_INPUT_RECORD_STOP` - stop audio input recording
@@ -3693,10 +3715,16 @@ Syntax: `event name` - triggered on, `event data` *(data type)*:
3693
3715
 
3694
3716
  - `POST_PROMPT` - after preparing a system prompt, `data['value']` *(string, system prompt)*
3695
3717
 
3718
+ - `POST_PROMPT_ASYNC` - after preparing a system prompt, just before request in async thread, `data['value']` *(string, system prompt)*
3719
+
3720
+ - `POST_PROMPT_END` - after preparing a system prompt, just before request in async thread, at the very end `data['value']` *(string, system prompt)*
3721
+
3696
3722
  - `PRE_PROMPT` - before preparing a system prompt, `data['value']` *(string, system prompt)*
3697
3723
 
3698
3724
  - `SYSTEM_PROMPT` - when preparing a system prompt, `data['value']` *(string, system prompt)*
3699
3725
 
3726
+ - `TOOL_OUTPUT_RENDER` - when rendering extra content from tools from plugins, `data['content']` *(string, content)*
3727
+
3700
3728
  - `UI_ATTACHMENTS` - when the attachment upload elements are rendered, `data['value']` *(bool, show True/False)*
3701
3729
 
3702
3730
  - `UI_VISION` - when the vision elements are rendered, `data['value']` *(bool, show True/False)*
@@ -3935,6 +3963,19 @@ may consume additional tokens that are not displayed in the main window.
3935
3963
 
3936
3964
  ## Recent changes:
3937
3965
 
3966
+ **2.4.38 (2024-12-08)**
3967
+
3968
+ - Added the ability to select a style for chat display between: Blocks, ChatGPT-like, and ChatGPT-like Wide. New option in the menu: Config -> Theme -> Style...
3969
+ - Added configuration options for audio input in Settings -> Audio -> Audio Input Device, Channels, and Sampling rate.
3970
+
3971
+ **2.4.37 (2024-11-30)**
3972
+
3973
+ - The `Query only` mode in `Uploaded` tab has been renamed to `RAG`.
3974
+ - New options have been added under `Settings -> Files and Attachments`:
3975
+ - `Use history in RAG query`: When enabled, the content of the entire conversation will be used when preparing a query if the mode is set to RAG or Summary.
3976
+ - `RAG limit`: This option is applicable only if 'Use history in RAG query' is enabled. It specifies the limit on how many recent entries in the conversation will be used when generating a query for RAG. A value of 0 indicates no limit.
3977
+ - Cache: dynamic parts of the system prompt (from plugins) have been moved to the very end of the prompt stack to enable the use of prompt cache mechanisms in OpenAI.
3978
+
3938
3979
  **2.4.36 (2024-11-28)**
3939
3980
 
3940
3981
  - Added a new command-line argument: --workdir="/path/to/workdir" to explicitly set the current working directory.
@@ -3968,7 +4009,7 @@ may consume additional tokens that are not displayed in the main window.
3968
4009
 
3969
4010
  - Added an option checkbox `Auto-index on upload` in the `Attachments` tab:
3970
4011
 
3971
- **Tip:** To use the `Query only` mode, the file must be indexed in the vector database. This occurs automatically at the time of upload if the `Auto-index on upload` option in the `Attachments` tab is enabled. When uploading large files, such indexing might take a while - therefore, if you are using the `Full context` option, which does not use the index, you can disable the `Auto-index` option to speed up the upload of the attachment. In this case, it will only be indexed when the `Query only` option is called for the first time, and until then, attachment will be available in the form of `Full context` and `Summary`.
4012
+ **Tip:** To use the `RAG` mode, the file must be indexed in the vector database. This occurs automatically at the time of upload if the `Auto-index on upload` option in the `Attachments` tab is enabled. When uploading large files, such indexing might take a while - therefore, if you are using the `Full context` option, which does not use the index, you can disable the `Auto-index` option to speed up the upload of the attachment. In this case, it will only be indexed when the `RAG` option is called for the first time, and until then, attachment will be available in the form of `Full context` and `Summary`.
3972
4013
 
3973
4014
  - Added context menu options in `Uploaded attachments` tab: `Open`, `Open Source directory` and `Open Storage directory`.
3974
4015
 
@@ -1,9 +1,9 @@
1
- CHANGELOG.md,sha256=ze6FSM2VH2viP0X8-REeDLDNixH5XEWIpTe9a_TRieQ,76996
2
- README.md,sha256=xFOhN2nJoHJSo0UiUa4oYU02bXdeM_Gpwz4SAE78SIQ,161787
1
+ CHANGELOG.md,sha256=p7EFpuICKZKDi_YEllP4dXAdYAKtaMaavxUNIGT76pA,78020
2
+ README.md,sha256=AgAeA3ztIyAJQNkwmZlp8i4H6tQ0BibTNK1WsMO2MNU,164722
3
3
  icon.png,sha256=CzcINJaU23a9hNjsDlDNbyuiEvKZ4Wg6DQVYF6SpuRg,13970
4
- pygpt_net/CHANGELOG.txt,sha256=OANVuWFOL2EVR5SgtCTfaNf8cEuTT8uib6oPWnwjTvQ,75552
4
+ pygpt_net/CHANGELOG.txt,sha256=RUOqHSWGd_oj9UmL-fa80drXFVPOSHoSx3QaGkL4GS4,76570
5
5
  pygpt_net/LICENSE,sha256=6Ku72-zJ8wO5VIR87UoJ5P_coCVjPghaFL9ZF2jLp7E,1146
6
- pygpt_net/__init__.py,sha256=Lx1tpxBy21pZsDUu6TwVNXa0dK5sEmG4yr1Uw6Q6Ruo,1067
6
+ pygpt_net/__init__.py,sha256=oNktagrTfCFQrP-k1quMHdbIqOScp7SEWyxbenYiWKo,1067
7
7
  pygpt_net/app.py,sha256=Q7g-2UlF7FlEOBytbGb_nrjT4zEio2HzfzQd687QuUo,15930
8
8
  pygpt_net/config.py,sha256=Qc1FOBtTf3O6A6-6KoqUGtoJ0u8hXQeowvCVbZFwtik,16405
9
9
  pygpt_net/container.py,sha256=BemiVZPpPNIzfB-ZvnZeeBPFu-AcX2c30OqYFylEjJc,4023
@@ -28,7 +28,7 @@ pygpt_net/controller/calendar/__init__.py,sha256=aAYEAex5UNoB7LHdNSKssls2Rdc877E
28
28
  pygpt_net/controller/calendar/note.py,sha256=B19cNKyD9UODZo7LdyST0U3I3519jsqVgWJp5UDTgVU,10841
29
29
  pygpt_net/controller/camera.py,sha256=t_ZgevP3zrsBe_A4Yx_WO4PfMMfYbsezd9NdQzkMpOQ,16522
30
30
  pygpt_net/controller/chat/__init__.py,sha256=4ZbmjVXOBESTmbajiykz_TiJ5cYptUbUJU7WWp2XSlE,3062
31
- pygpt_net/controller/chat/attachment.py,sha256=ip0wmNV06DrdAwbjH_56kOSNP3uVVPtgeSjk64cm8lE,21523
31
+ pygpt_net/controller/chat/attachment.py,sha256=baR7EnW81DxVgIiHYcSGCSPqLPqiGGBSA8dFccsJub8,20530
32
32
  pygpt_net/controller/chat/audio.py,sha256=1eX_kIiRLFBDrNAPVthj-1ftknhdOkn3jWBuC7kT79c,3181
33
33
  pygpt_net/controller/chat/command.py,sha256=_lXHki5pbTi8Pvz_BzP3VxGUM_0Ztr1mE5rsatPmSoE,2833
34
34
  pygpt_net/controller/chat/common.py,sha256=uLRRT1ZNGLJiiyJ42lJ7rjDwhqPEfX1RD-EnoFhBmmU,13875
@@ -51,7 +51,7 @@ pygpt_net/controller/config/field/dictionary.py,sha256=9OnHNTKizBJq7d3af06e4HNm4
51
51
  pygpt_net/controller/config/field/input.py,sha256=DGBYKoEW_U6_VWJJJ4TOWS8BTSzWZ31aiK9J_je0iWA,3556
52
52
  pygpt_net/controller/config/field/slider.py,sha256=6kzpDGdeVqb-3lVrp3fdCu-gxUQb_Wn2moUpkFy5v74,4580
53
53
  pygpt_net/controller/config/field/textarea.py,sha256=_DAvi_UQUHyMs7HYADSJeq3cc6EbInWW_4k20Ufqtwo,2337
54
- pygpt_net/controller/config/placeholder.py,sha256=tem_bFkY2vUAXhWMt2Jg5jgrzuHOM20zlPMveQdp39Y,10631
54
+ pygpt_net/controller/config/placeholder.py,sha256=1AxsyyswPfKZmu5rJrkgcLPo0LwUW1RwO5TJAMb8zlw,11427
55
55
  pygpt_net/controller/ctx/__init__.py,sha256=MinX8CqDStHqI_3pScx7uxJky0ZwsAgw1TjUsJkFhZs,32716
56
56
  pygpt_net/controller/ctx/common.py,sha256=xOQ9hXJCMSLZLpvP-4lMSMlH53thwulFKfdac5Ci-50,6227
57
57
  pygpt_net/controller/ctx/extra.py,sha256=S4o6ybZPhmaxRz0huaJimwAzk4gKscjAItwppdmIV9Y,8135
@@ -72,7 +72,7 @@ pygpt_net/controller/kernel/reply.py,sha256=DEKnT8NtRVG64ec13vphLgfSwoPjNqyy8jt-
72
72
  pygpt_net/controller/kernel/stack.py,sha256=lGDk9Sp1C5_wJV99gpCDupJs7ZBkcp31eeDbsUUVfWo,3735
73
73
  pygpt_net/controller/lang/__init__.py,sha256=pTSX0il3xLNGHoh4XAOdIUlbC2f9kIBCzthRDDOjyNY,3287
74
74
  pygpt_net/controller/lang/custom.py,sha256=bxQ5sh9mZ3Oypd-VpQ-6ziQza1jANnxF80qF6Dj8AYk,6145
75
- pygpt_net/controller/lang/mapping.py,sha256=uwH9I2g8G_8Ll7eAKN1TSzUEtLuwZxRLPIOC_ACmFt8,22999
75
+ pygpt_net/controller/lang/mapping.py,sha256=TVWT_4cAnCIKNuL4RA0H9QDinvaHimlyz8Retsfejlw,22997
76
76
  pygpt_net/controller/lang/plugins.py,sha256=JEiOajXB7BfxPPfBkYl82K1_gKpRVcMEPNPwsNAJ6WU,3879
77
77
  pygpt_net/controller/lang/settings.py,sha256=awPEshWbHlOt11Zyg_uQKlbYjvABXrQ7QMHdpu2L9ZI,2634
78
78
  pygpt_net/controller/launcher.py,sha256=om6aEZx31cSiCuShnDHp5Fs-Lj6Rb_pmbOO5fBweEWU,1899
@@ -91,13 +91,13 @@ pygpt_net/controller/presets/__init__.py,sha256=ebI2YpsgSmpidvxzG1YExPwaoLZsWt2C
91
91
  pygpt_net/controller/presets/editor.py,sha256=aGqFi8EexKokt4th9hJXUXav8sAYo_8vfGQ45-TBoOQ,19141
92
92
  pygpt_net/controller/presets/experts.py,sha256=ipC4UBPseWK4OviQtOcrWY4HW9j2A4AButVS_9Z5leY,4998
93
93
  pygpt_net/controller/settings/__init__.py,sha256=UCBfEL_FxQ1OHBzJoDkasTv_-y_1_E-Ynyu5Whzfbxs,7729
94
- pygpt_net/controller/settings/editor.py,sha256=3pQlkAb_G4ifo9_dA8sHwoqbKvUVDJt_y0oaXc4PcTQ,15839
94
+ pygpt_net/controller/settings/editor.py,sha256=1jLpxgvbrx2rlK_9rwl94Ai7BWb8-ftVR5lbo2iwUxk,16106
95
95
  pygpt_net/controller/settings/profile.py,sha256=3Z1IlCiS8mSe2icuIJgQlyFKh4noqANgQDftAYt-mpA,21009
96
96
  pygpt_net/controller/settings/workdir.py,sha256=khvMDJrQoLMVh2rnTyk9cKilBUig5PKdULRVLZJ5X1k,8794
97
- pygpt_net/controller/theme/__init__.py,sha256=xcHX7aMC6Be3og0U5xL4flSGKn1uuZ8HDLpccMY6zRI,6415
98
- pygpt_net/controller/theme/common.py,sha256=aSEhiWcpUQxjB3MuDOtf0DqqzAkWy5JJruxRZ5htaGs,5437
99
- pygpt_net/controller/theme/markdown.py,sha256=_U0oMH7SRQdZb3lPoM-y_xqHpxvXItdTV5amRWmuyT0,5471
100
- pygpt_net/controller/theme/menu.py,sha256=NkEj8nDiqbDitpZctiNYEzb1-t0T8UyXBV51Yn6mhes,4641
97
+ pygpt_net/controller/theme/__init__.py,sha256=F_5GXvecTIucy-dPC87N5DfthsVtjMq2w0yLufYbSs4,7044
98
+ pygpt_net/controller/theme/common.py,sha256=Tck2VYLGSzXyOmdmKh9FIZdK6sBEWDvf3j_umIAZieo,6260
99
+ pygpt_net/controller/theme/markdown.py,sha256=LGNTZgS-4uNcyB6hOq9TlD0QKIEdWlXQNKpa1xj-8Ws,5920
100
+ pygpt_net/controller/theme/menu.py,sha256=dMhkGVBlMEk7ePL3eKmK0JCPIWEp1yKGWEkqoyaUMhk,5671
101
101
  pygpt_net/controller/theme/nodes.py,sha256=4u0EYqT8UglWUoU5iKn-mUSpMpowgYR-b7Bv8gB8Qc0,5436
102
102
  pygpt_net/controller/tools/__init__.py,sha256=YTo1GnUzT8UELniDblBhPlZlKJgCDBultb2Yiwt3gDA,1569
103
103
  pygpt_net/controller/ui/__init__.py,sha256=MZtwAznDarIUeARKJ2aQKrC10RQTXP1hEuyk10vQQ5w,5944
@@ -122,13 +122,13 @@ pygpt_net/core/assistants/__init__.py,sha256=nnKKqcP5Xtx9daGUHAX8FT2JwG3r5syc6mS
122
122
  pygpt_net/core/assistants/files.py,sha256=cg32PsmdM3rB6eNkKo8CP9aSKNqoml1YKniGl9rXSlM,9796
123
123
  pygpt_net/core/assistants/store.py,sha256=vzMN2dOKIcH7NCGA6UzZkXGal1jAioOzNTpAHzObgOo,7990
124
124
  pygpt_net/core/attachments/__init__.py,sha256=lKH31SMkJdyQlqdYW07VhDnggpV6jssc6Lk4SIUlzEc,12223
125
- pygpt_net/core/attachments/context.py,sha256=96fZ3hohTo3VrWCMO27w4rLCi0OGQtNJixfitWKTNto,19836
125
+ pygpt_net/core/attachments/context.py,sha256=v_mi-JvZM5-VPBiUphXrgGOMEVgLcOeM9KFEYAaWGtM,23348
126
126
  pygpt_net/core/attachments/worker.py,sha256=_aUCyi5-Mbz0IGfgY6QKBZ6MFz8aKRDfKasbBVXg7kU,1341
127
- pygpt_net/core/audio/__init__.py,sha256=gysJ0SEFFwhq3Jz268JxJTdpZ7-8qqgID60BWQjtIig,2708
127
+ pygpt_net/core/audio/__init__.py,sha256=fJ7-WKn6GhtgDKHW1z-bIZBhuKHJBcB80WROU0xjFaQ,4522
128
128
  pygpt_net/core/audio/context.py,sha256=GtUK2DIUBSJwtUVPx3Vv9oZCx_wHsilHYYdvUfHP4G4,1044
129
129
  pygpt_net/core/bridge/__init__.py,sha256=4XRmueSSshAqstjgDp3jFTSCwSTaWlzaU4d-gBK46x8,9292
130
130
  pygpt_net/core/bridge/context.py,sha256=u_1_sSB4YO6OP1zR3c15OT_7kVVlxtuAO1OgCn7BFY4,4301
131
- pygpt_net/core/bridge/worker.py,sha256=YPcBXH_gdl9QkAaCPzSabplO45B-EqaWF2Mha2YT6eY,5291
131
+ pygpt_net/core/bridge/worker.py,sha256=knquYoNZSZY7RK-qmbNfj3LJDns3uDnkZhGus23qsJg,5819
132
132
  pygpt_net/core/calendar/__init__.py,sha256=7mCGxUcGUbTiyXF6yqZsLONfhRAzQEYgQqtiGPhQ6qU,6634
133
133
  pygpt_net/core/camera.py,sha256=WAo1YAmdjRuAtpVx73695aEHBmT2C16-T348MVOY7Rg,4034
134
134
  pygpt_net/core/chain/__init__.py,sha256=8hMi_gWmB-I2k1AaADEtTfOAzeVxmBD8YhUJFIpjON4,3439
@@ -165,11 +165,11 @@ pygpt_net/core/events/__init__.py,sha256=C6n8MRL_GXcHlr3txzyb2DtRMGLQbD_LEZygFVy
165
165
  pygpt_net/core/events/app.py,sha256=BKRhScIN-rnfP4U-VzZNPwIYPziW7iyPk6h7ou4ol-k,1841
166
166
  pygpt_net/core/events/base.py,sha256=oige2BIjdyQo2UeCSyY-T3mu_8VNoOmtRsqlia5BzEM,1764
167
167
  pygpt_net/core/events/control.py,sha256=TADFX1IJbQeC572_uWlOCw5VXMkJFqoPwE-9hptkh6k,2858
168
- pygpt_net/core/events/event.py,sha256=ZdZTzFybSST2z4aCjHCOBeaVVUo9DnV5q1FI1teqvuU,3512
168
+ pygpt_net/core/events/event.py,sha256=avGLJ3bkGyQWvQrcRyCc_iRa-e10CkJH5-SJSQ7LqKo,3552
169
169
  pygpt_net/core/events/kernel.py,sha256=1s8gRvGT3GNyXkBQ6clxuWUrPNmIWY2gRCfbcOMbpqY,1870
170
170
  pygpt_net/core/events/render.py,sha256=xtNTyud6ywtpUGdIrbaJeHhbqZuDjd4It3j0KlPmHks,2118
171
171
  pygpt_net/core/experts/__init__.py,sha256=ub_Z-5xEvW9o-ufnURtYemo60NTvHpjd56X5H9Ca0RY,17482
172
- pygpt_net/core/filesystem/__init__.py,sha256=8o7L7Jq3b-PHuveQcE3GZeS7GV5mbckzGKHoqE97s74,15407
172
+ pygpt_net/core/filesystem/__init__.py,sha256=jfOjBJOPZX-ydBLuQcSh1IE5_SwOgUPXAKZ-3qAFK7U,15130
173
173
  pygpt_net/core/filesystem/actions.py,sha256=7WxpxDc5g9e98FzaGxTJX_JhjmP1b7jvXZhezI8mw98,4074
174
174
  pygpt_net/core/filesystem/editor.py,sha256=-mPZqe5dAdH4cCTzKGGn39AmaXPeRPBbAfE_xJ658yw,4151
175
175
  pygpt_net/core/filesystem/packer.py,sha256=9CmQgq-lja2QGtc0JFqh197mLLViJ7TDPc8fVWTok1w,2568
@@ -177,7 +177,7 @@ pygpt_net/core/filesystem/types.py,sha256=gnV1CMRE0SwQDapNYEoayMs8NyUync121RCdnB
177
177
  pygpt_net/core/filesystem/url.py,sha256=9IHrt_lgULsz56Xxy6me4v2lun26q5D4yoPESLgOO_A,3006
178
178
  pygpt_net/core/history.py,sha256=LnSyB3nuXZxXeaiNdjg4Q4yWhJM5hA2QN5dy_AY9Pxo,3092
179
179
  pygpt_net/core/idx/__init__.py,sha256=7LlN_CmhOJVLuZFp-XihNtoQJXFxlA2ygYAcaIAfU8c,17238
180
- pygpt_net/core/idx/chat.py,sha256=lGwP-Ok7GHRkCk0Ys_oLt1ssMkaLZKmn7zWVeYC0BLU,21047
180
+ pygpt_net/core/idx/chat.py,sha256=KPCYIB1CcvxUItNSNBBhsBqRETs-he_7kN_np8izX5M,20761
181
181
  pygpt_net/core/idx/context.py,sha256=oC9Do2_YdOZ2yJSh8C1_FbxUdkB6bT20JyhjShDJUkk,3049
182
182
  pygpt_net/core/idx/indexing.py,sha256=korUe-G_cV9Vf2PrMh7LJfHEntHCmcUnw9GQ5TjBhMw,41011
183
183
  pygpt_net/core/idx/llm.py,sha256=gys1i0qRpdbsUfgkTq4bHw0w89Yz2-s5CQueO5vDUCo,5027
@@ -216,7 +216,7 @@ pygpt_net/core/render/plain/helpers.py,sha256=qf1w6EXa6cCFcMkipOA8MzxIRFIYNVv3uX
216
216
  pygpt_net/core/render/plain/pid.py,sha256=yngcS0o1lBQ2RlRzWrs5JwqT_ThamvnWftp3cXcyiG8,770
217
217
  pygpt_net/core/render/plain/renderer.py,sha256=W5qZinG-5W_Ady-DNEkYSyTQXXdpfGzvoUYYV-VEM30,14393
218
218
  pygpt_net/core/render/web/__init__.py,sha256=istp5dsn6EkLEP7lOBeDb8RjodUcWZqjcEvTroaTT-w,489
219
- pygpt_net/core/render/web/body.py,sha256=sIJe7MPPvmKpQ9vgJno9wBUp_Qj4O2Oz_7PxE9JGUz8,28661
219
+ pygpt_net/core/render/web/body.py,sha256=qa5gRz_iz3nsghhBOOSmIIac0tYETZDk7Go5AZhNdQ4,28815
220
220
  pygpt_net/core/render/web/helpers.py,sha256=CcKB710SiKe3xGAB4jq_1XtLxQdD-XiVIlwqiqX7pdc,3062
221
221
  pygpt_net/core/render/web/parser.py,sha256=upaTzDhKyGUVEU91JfeSt-luKfx9sS1uCddi_NjStt0,9998
222
222
  pygpt_net/core/render/web/pid.py,sha256=ZyYmzB01adMqY9-1Zi0QhGgrzyg-E9xC_VxqjNvTHWk,1331
@@ -242,9 +242,9 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
242
242
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
243
243
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
244
244
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
245
- pygpt_net/data/config/config.json,sha256=d2IPMfZiPkY-w85RnK6HtMmYLVH3YhFnok_fRMqe4sY,19224
246
- pygpt_net/data/config/models.json,sha256=ii9y2Gwwe6Vo4OBPkO9yHIQXxnWQKUMOkPk_Hk8cpow,48872
247
- pygpt_net/data/config/modes.json,sha256=mLcLNI0DmIiBQdVVLBiqvl-vNcv1_gjiJKb98ipCOIU,1923
245
+ pygpt_net/data/config/config.json,sha256=78EicxO_5jOZFcLpJwJ4TtFjmgDoeTRhZh1nILo5xJo,19422
246
+ pygpt_net/data/config/models.json,sha256=MWC7Ln08FiM5zC53ynIHOfo3XJA5J36sTWpO9evRaIQ,48872
247
+ pygpt_net/data/config/modes.json,sha256=JKCUxWUzyVtn0TYT15fysb5Tpt5ozuZv_va-vCm_aBw,1923
248
248
  pygpt_net/data/config/presets/agent_openai.json,sha256=vMTR-soRBiEZrpJJHuFLWyx8a3Ez_BqtqjyXgxCAM_Q,733
249
249
  pygpt_net/data/config/presets/agent_openai_assistant.json,sha256=awJw9lNTGpKML6SJUShVn7lv8AXh0oic7wBeyoN7AYs,798
250
250
  pygpt_net/data/config/presets/agent_planner.json,sha256=a6Rv58Bnm2STNWB0Rw_dGhnsz6Lb3J8_GwsUVZaTIXc,742
@@ -264,18 +264,24 @@ pygpt_net/data/config/presets/current.vision.json,sha256=x1ll5B3ROSKYQA6l27PRGXU
264
264
  pygpt_net/data/config/presets/dalle_white_cat.json,sha256=esqUb43cqY8dAo7B5u99tRC0MBV5lmlrVLnJhTSkL8w,552
265
265
  pygpt_net/data/config/presets/joke_agent.json,sha256=R6n9P7KRb0s-vZWZE7kHdlOfXAx1yYrPmUw8uLyw8OE,474
266
266
  pygpt_net/data/config/presets/joke_expert.json,sha256=aFBFCY97Uba71rRq0MSeakXaOj8yuaUqekQ842YHv64,683
267
- pygpt_net/data/config/settings.json,sha256=AhmZtT6c4WiiW54yklGWuuwv6CtntUfiJX4sz1ATdlo,44282
268
- pygpt_net/data/config/settings_section.json,sha256=8YmYWVdTWC_HorqlRa-lZO55B0lhq0v9qZfBHt77pqk,870
267
+ pygpt_net/data/config/settings.json,sha256=wCDFz7GJrvMU1Ex3LEsMOhYeOEc_NJi1QyhyAv0xZCM,46356
268
+ pygpt_net/data/config/settings_section.json,sha256=ZNXZRobAL9-Cbe7chIJZXVkUFbUvqKDxE34g3ZLS0t4,934
269
269
  pygpt_net/data/css/fix_windows.css,sha256=Mks14Vg25ncbMqZJfAMStrhvZmgHF6kU75ohTWRZeI8,664
270
270
  pygpt_net/data/css/markdown.css,sha256=yaoJPogZZ_ghbqP8vTXTycwVyD61Ik5_033NpzuUzC0,1122
271
271
  pygpt_net/data/css/markdown.dark.css,sha256=ixAwuT69QLesZttKhO4RAy-QukplZwwfXCZsWLN9TP4,730
272
272
  pygpt_net/data/css/markdown.light.css,sha256=UZdv0jtuFgJ_4bYWsDaDQ4X4AP9tVNLUHBAckC_oD8k,833
273
273
  pygpt_net/data/css/style.css,sha256=JgE5Y6ULYtNDVF49jhb_PfGPJVxCFj5DNMiobPopX64,400
274
274
  pygpt_net/data/css/style.dark.css,sha256=5GqBiCiTdofU3AfgbuQEezFPE3iSf_mx3dkU4kAtygQ,729
275
- pygpt_net/data/css/style.light.css,sha256=U6sZvBBk4Gdnh9KPiGfQmTGsx_BJlzxpFvQXVXHag_Y,1726
276
- pygpt_net/data/css/web.css,sha256=vqfmbHGCMetgPbqLsICMgV5lj0f1Sy_qw_IHPXGnsLA,5805
277
- pygpt_net/data/css/web.dark.css,sha256=x0b3DYWv0-XeUgCSKajIpkAXAEEg-YR7GIg94pwXO7A,1319
278
- pygpt_net/data/css/web.light.css,sha256=9yN6feInDe8X6rWgJfz61mwvbwyJ_u99nUWz0KurWo4,1249
275
+ pygpt_net/data/css/style.light.css,sha256=szc-rgR_UoLOTegJerDoL2Rx_l-E6BOYSe956snPE3k,1741
276
+ pygpt_net/data/css/web-blocks.css,sha256=bhQ6nvgZilx_0aAn2aVBbnfyIi4Ts8sdk5lR2FRAulI,5842
277
+ pygpt_net/data/css/web-blocks.dark.css,sha256=x0b3DYWv0-XeUgCSKajIpkAXAEEg-YR7GIg94pwXO7A,1319
278
+ pygpt_net/data/css/web-blocks.light.css,sha256=9yN6feInDe8X6rWgJfz61mwvbwyJ_u99nUWz0KurWo4,1249
279
+ pygpt_net/data/css/web-chatgpt.css,sha256=I5tW-ubnoP8o6yU1EaQGFYEtV0gTq67I37v3jbqlonE,6357
280
+ pygpt_net/data/css/web-chatgpt.dark.css,sha256=fFYWpV4IraSto-GyaNe8sDjmtwEoWOiQYBLmQ5G5TOM,1106
281
+ pygpt_net/data/css/web-chatgpt.light.css,sha256=XoOyh-VP1gIpCqeBpSOi6jB6zG_7BMfvwo0-t67XmP8,1196
282
+ pygpt_net/data/css/web-chatgpt_wide.css,sha256=UxGXGn7YfMnEk2fnh_e016pIW6US3DBw-ZQ_2Yk_-xI,6356
283
+ pygpt_net/data/css/web-chatgpt_wide.dark.css,sha256=fFYWpV4IraSto-GyaNe8sDjmtwEoWOiQYBLmQ5G5TOM,1106
284
+ pygpt_net/data/css/web-chatgpt_wide.light.css,sha256=XoOyh-VP1gIpCqeBpSOi6jB6zG_7BMfvwo0-t67XmP8,1196
279
285
  pygpt_net/data/fonts/Lato/Lato-Black.ttf,sha256=iUTaWoYezgAYX6Fz6mUyTn1Hl6qGPG-g8D4GaAWXS2w,69484
280
286
  pygpt_net/data/fonts/Lato/Lato-BlackItalic.ttf,sha256=G7asNGubFS-gk9VAMO_NBz4o5R7AB8-3bCAflv103mc,71948
281
287
  pygpt_net/data/fonts/Lato/Lato-Bold.ttf,sha256=e3IFmfiu07rFuVMf7PZ1DI-n5ZO3J3ObwGkvzA9Vtng,73316
@@ -1473,14 +1479,14 @@ pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff,sha256=4U_tArGrp86fW
1473
1479
  pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff2,sha256=cdUX1ngneHz6vfGGkUzDNY7aU543kxlB8rL9SiH2jAs,13568
1474
1480
  pygpt_net/data/js/katex/katex.min.css,sha256=lVaKnUaQNG4pI71WHffQZVALLQF4LMZEk4nOia8U9ow,23532
1475
1481
  pygpt_net/data/js/katex/katex.min.js,sha256=KLASOtKS2x8pUxWVzCDmlWJ4jhuLb0vtrgakbD6gDDo,276757
1476
- pygpt_net/data/locale/locale.de.ini,sha256=O_fwosMbXd35zP7OPwBP0AyvWdEeFLrpJhEKzmmiUPs,61366
1477
- pygpt_net/data/locale/locale.en.ini,sha256=SGoN-jtxPkvIohQtypkwooH31ShH4fwPnC0CHUQLQiM,73649
1478
- pygpt_net/data/locale/locale.es.ini,sha256=FY1KwWP5XGjZQjB0_Mz_39xntd3ET0rMD9T_vXl2pKc,61493
1479
- pygpt_net/data/locale/locale.fr.ini,sha256=d6mUYDiiKfso6n4ZOTivIQzQyzab7_urrFJzGi9Ye2g,63477
1480
- pygpt_net/data/locale/locale.it.ini,sha256=hZf6bOdN3AfKnW0_ejXKB5spgLinvXwlzA_OzgFaL_4,60374
1481
- pygpt_net/data/locale/locale.pl.ini,sha256=oBqFzsEQK3ZzAXTdpOk63xLvdVvohbQUEVKJ0k0g9mM,60453
1482
- pygpt_net/data/locale/locale.uk.ini,sha256=pdp9exp4LbFUTgwV5Y8QNFzWfAMTvReh4u6mC3wjrFA,84330
1483
- pygpt_net/data/locale/locale.zh.ini,sha256=DfRdmIxvRNT2mfn6qudkofa-TxByavJEfPUGsqYuckM,62409
1482
+ pygpt_net/data/locale/locale.de.ini,sha256=BrvII43UQDtc08WdVi-Rj_ZQwLTjs6Zys32IBQIR23U,62492
1483
+ pygpt_net/data/locale/locale.en.ini,sha256=SU9rDpMbGdiw29Qq6Cye0znN5VAPrrOl_ivU_Ko7lMg,74836
1484
+ pygpt_net/data/locale/locale.es.ini,sha256=7PpiAV7fpFDSQDLVsQVFEMCSPrUiSv-EJ0kmPO1JSUk,62723
1485
+ pygpt_net/data/locale/locale.fr.ini,sha256=tLgtTPeT7D4uP0Ee57jEiTEb15NHN5HwVKBtlflPtt4,64743
1486
+ pygpt_net/data/locale/locale.it.ini,sha256=tYMTJW-7qA_wlhL7V9ayh5tZhiybmhFkXMHgyEGZKKw,61583
1487
+ pygpt_net/data/locale/locale.pl.ini,sha256=E3M16MJ4IHU-_NyxDwRiOvLc8CX-z164Q4rc9vBF0QY,61648
1488
+ pygpt_net/data/locale/locale.uk.ini,sha256=yS4zhXmGp5otGv6UVWML53elAzkQAVQj71X89XEbwZ0,86014
1489
+ pygpt_net/data/locale/locale.zh.ini,sha256=EfH6BRHu9A7wrxgREbSSPg_uh2wfiYjacxCerqDQxsA,63431
1484
1490
  pygpt_net/data/locale/plugin.agent.de.ini,sha256=BY28KpfFvgfVYJzcw2o5ScWnR4uuErIYGyc3NVHlmTw,1714
1485
1491
  pygpt_net/data/locale/plugin.agent.en.ini,sha256=88LkZUpilbV9l4QDbMyIdq_K9sbWt-CQPpavEttPjJU,1489
1486
1492
  pygpt_net/data/locale/plugin.agent.es.ini,sha256=bqaJQne8HPKFVtZ8Ukzo1TSqVW41yhYbGUqW3j2x1p8,1680
@@ -1687,7 +1693,7 @@ pygpt_net/plugin/agent/__init__.py,sha256=dRbas7WJtMdzuEquxTZXKPhYxlEVhKtR21XUSn
1687
1693
  pygpt_net/plugin/agent/config.py,sha256=V4M0boutzxFVWTQxM8UA7HgKUR4v_Y-5dX_XfeLzzL8,9792
1688
1694
  pygpt_net/plugin/audio_input/__init__.py,sha256=vGwDtsPkwCEwiz2ePnzW48Tuhr0VHEc7kQua11VE7tI,15714
1689
1695
  pygpt_net/plugin/audio_input/config.py,sha256=x57IVxBapJp9rwos327T6U0jTFSPeRJ6BorqfYxJ4u0,9197
1690
- pygpt_net/plugin/audio_input/simple.py,sha256=eQG8MssyjAC78btCz0IKHCRLK8be7Nvs0_x2QeH9KCM,5468
1696
+ pygpt_net/plugin/audio_input/simple.py,sha256=YjpuKnO27FzrEZAZlgnoa3qReD09K84wYizJL3tR3AI,6371
1691
1697
  pygpt_net/plugin/audio_input/worker.py,sha256=kG7r08ot1h0Jyw_UQ_sFN1rOKOkOC-ByLbCp-oZZBr4,11828
1692
1698
  pygpt_net/plugin/audio_output/__init__.py,sha256=Czk-2wZoBDJLkN_xeUK4zg_9KrzlN9d9UuB7HYDALss,7548
1693
1699
  pygpt_net/plugin/audio_output/config.py,sha256=IA2K-9fQMZSwYGyi30Uh5qAlYwuqwaHo3dtDJ13vQdo,1208
@@ -1742,7 +1748,7 @@ pygpt_net/plugin/experts/__init__.py,sha256=QUs2IwI6CB94oqkLwg1MLA9gbZRp8seS1lAQ
1742
1748
  pygpt_net/plugin/experts/config.py,sha256=4FFfDDYzstUeqsxEQegGp5XHun2gNQC3k-OyY5PYVyo,895
1743
1749
  pygpt_net/plugin/extra_prompt/__init__.py,sha256=20cuqF1HTxhVPPMFZIeC8TuTr5VpGcG-WqUcfBEM4ZM,2053
1744
1750
  pygpt_net/plugin/extra_prompt/config.py,sha256=a-dol6rXXCuSyMhfq0VTs5cc2rU9bmoqQ0AafQh-ZFw,1471
1745
- pygpt_net/plugin/idx_llama_index/__init__.py,sha256=5LPUyBpRSSKv2b4vziCg5G4tZhXcq-TC9oS0TK4oexA,10677
1751
+ pygpt_net/plugin/idx_llama_index/__init__.py,sha256=B0u6ZGDljJrQnFETz1nLLYT_RBMmIv45ciaQyQXI7fM,10675
1746
1752
  pygpt_net/plugin/idx_llama_index/config.py,sha256=4S08w3hj_B3AXHl4qefOn20pHw4Z-pTSBhRMDhp0wzc,5604
1747
1753
  pygpt_net/plugin/idx_llama_index/worker.py,sha256=gyGioF7q-YarBKNgeWMqQSKpEC3N4rs9HOdQK09KK1k,3017
1748
1754
  pygpt_net/plugin/openai_dalle/__init__.py,sha256=fR_aqeOGbrB1w4JNO-JiG2lKGvLu8m2SP-4sdYGjQEU,5158
@@ -1750,7 +1756,7 @@ pygpt_net/plugin/openai_dalle/config.py,sha256=yBsd_EvPlWJY0HhK2cgz0InsaYf4IK6ee
1750
1756
  pygpt_net/plugin/openai_vision/__init__.py,sha256=Hi_n9iMFq2hS4YaVmkYL32r1KiAgib7DYLxMCYn7Ne8,10151
1751
1757
  pygpt_net/plugin/openai_vision/config.py,sha256=8yP4znFYGA_14pexNT3T6mddNsf-wsRqXc5QT52N4Uc,4627
1752
1758
  pygpt_net/plugin/openai_vision/worker.py,sha256=uz1JGUxy0VfdziiCnq5fjQZ7TrdjUmtyU-1X7RrvNyY,5108
1753
- pygpt_net/plugin/real_time/__init__.py,sha256=2OsgLo7l32Ut5uA-xhWCrhZpgWMnsZtf8oPgnjHFnZ8,5591
1759
+ pygpt_net/plugin/real_time/__init__.py,sha256=8iu7i5pC_SXRUyyhwFWbeOk4ehtEZG7V_fShne9bnjM,5593
1754
1760
  pygpt_net/plugin/real_time/config.py,sha256=v_wKjuXRMkcWOTb-ZL28w3LwDUo7rcOM55Pizwjn3-0,2127
1755
1761
  pygpt_net/plugin/voice_control/__init__.py,sha256=gdQ1P3ud9lwcFcxyX23_ODSwFFGeO3g1dkxPqhG0Hug,4837
1756
1762
  pygpt_net/plugin/voice_control/config.py,sha256=iSjLR8bsYwMJJOEz3AShIQXqlCPNWNJ8-7nnRfrAOuE,1314
@@ -1802,7 +1808,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=aedWMmJr-uw7waUGzoj
1802
1808
  pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1803
1809
  pygpt_net/provider/core/config/base.py,sha256=nLMsTIe4sSaq-NGl7YLruBAR-DjRvq0aTR3OOvA9mIc,1235
1804
1810
  pygpt_net/provider/core/config/json_file.py,sha256=a4bt7RofzFrq01ppcajWzJEg4SaracFbLyDVl5EI0b8,5017
1805
- pygpt_net/provider/core/config/patch.py,sha256=e9PdhsChEY4zCGNQRSasZPTVu1xSeH0X3IlaJHA6UoI,90902
1811
+ pygpt_net/provider/core/config/patch.py,sha256=PnMlrKsbjz-6kjlgr0u68CxVKPhNExuMGP4-3Fgqp-g,92171
1806
1812
  pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
1807
1813
  pygpt_net/provider/core/ctx/base.py,sha256=uIOqarMQUpvkPDrwGdnpD5jJQospePhEwZaS_l0BJbo,2631
1808
1814
  pygpt_net/provider/core/ctx/db_sqlite/__init__.py,sha256=klO4ocC6sGRYLBtTklernzZTNBBJryo3c4b0SRmgAi4,10911
@@ -2041,12 +2047,12 @@ pygpt_net/ui/main.py,sha256=l6WhxjD0Hf4TlRoaFV07fM_F_RkgtKw9hAKnw0Sm-Vo,10335
2041
2047
  pygpt_net/ui/menu/__init__.py,sha256=86Mcp_TYTeoCQzsqoGXS9cnj75QbJU0rBfmztUh_7k0,1784
2042
2048
  pygpt_net/ui/menu/about.py,sha256=GTsBPzbjY6XXc9aXq6rFpkpzzGXdECaRTM8s2FMtupQ,5476
2043
2049
  pygpt_net/ui/menu/audio.py,sha256=F6viQibvSumKA0t7lwbpOjhl-2R23XuXhl5LHgz5AWI,3079
2044
- pygpt_net/ui/menu/config.py,sha256=krv6vXOOIronSDwzZZku5eqDVPXmvwD-ivBMaOcZUQs,8291
2050
+ pygpt_net/ui/menu/config.py,sha256=uQjHZtZok4dasIngzNZkV42pC54zesJ8nJhLLptPtPg,8159
2045
2051
  pygpt_net/ui/menu/debug.py,sha256=KLyi-3EP1rJTgX_9vtPr6H3C6eBqbceAQQ9oQ22HCTU,6224
2046
2052
  pygpt_net/ui/menu/file.py,sha256=gi4XIMs3l2-9sc5Vl6L9t_le9YP-UUVDIBr1tAREEOE,3360
2047
2053
  pygpt_net/ui/menu/lang.py,sha256=99dSS3mM4KIftgXgsgZoq2bJ_DnmgqA7z7cP49kICP4,897
2048
2054
  pygpt_net/ui/menu/plugins.py,sha256=z0cUg_S5dY1T4oZH3Vv0Dxx0rOuHVaiprPZj2FfBzD0,2880
2049
- pygpt_net/ui/menu/theme.py,sha256=LPSvPw2QZE4RVh_xwA17qA0xfNcOmCZn_dprCCNIOTw,3440
2055
+ pygpt_net/ui/menu/theme.py,sha256=HVqFp39QaeGdTqvDjL5mLJfI8GS0YACbQh23lwPyrPc,3709
2050
2056
  pygpt_net/ui/menu/tools.py,sha256=LfL_8NnVsh9koSXyD7KoV-qVOCF5Fru-7FPYQjh6Sfw,3794
2051
2057
  pygpt_net/ui/menu/video.py,sha256=yVEHdOiIMDOYaIbe3OumFyLxcwRqmo9n82bTACfBTVc,2026
2052
2058
  pygpt_net/ui/tray.py,sha256=OaFt9-Jb5YYL1_NXlZMPK2JP_9EO3KBLrSguBYYMr-8,6728
@@ -2105,7 +2111,7 @@ pygpt_net/ui/widget/lists/attachment_ctx.py,sha256=yFqzJj8D6vdNLW8v-8yX5-08kYpAu
2105
2111
  pygpt_net/ui/widget/lists/base.py,sha256=TRMhAHI14K3zTI-5JVROzO03QeVqLuFLmILLCOm7mUs,2435
2106
2112
  pygpt_net/ui/widget/lists/base_combo.py,sha256=MP_CaMh3BrB0WOjE1k4axinzVP5YjU5OrZX2lkUIEu8,3871
2107
2113
  pygpt_net/ui/widget/lists/base_list_combo.py,sha256=eCfAE8kYDjX2OtxhAuFpWVe7A0lcb0FGmd_T9Bi3Qzw,3411
2108
- pygpt_net/ui/widget/lists/context.py,sha256=stziCdWshNUBlVJS1CSAxFpmG47Sg90gnVkiXn6WWmw,18521
2114
+ pygpt_net/ui/widget/lists/context.py,sha256=tzJKwuDovpjeX5oEghau8T-JQIr9b4z-giEqjD22uhI,18548
2109
2115
  pygpt_net/ui/widget/lists/db.py,sha256=f0EIzTSzjblJtCuGoWBq6PerFt8yqFZrP2hkIoHuzbI,5861
2110
2116
  pygpt_net/ui/widget/lists/debug.py,sha256=bjzshfRXFwFQ4neCY8pFMHPm9b57i5x-pHdk-sY--VI,3658
2111
2117
  pygpt_net/ui/widget/lists/experts.py,sha256=4ztuhpMjU36XWYYjm67wo-zSDfvViSJk2Z48lXdJT2s,5911
@@ -2149,14 +2155,14 @@ pygpt_net/ui/widget/textarea/name.py,sha256=vcyAY_pJWJoS_IJqdJjhIeDSniTL9rfpt8aa
2149
2155
  pygpt_net/ui/widget/textarea/notepad.py,sha256=-3oRoSE9a1hV1OasTvlspZCeEBmApPj51JOs39saZ2I,6766
2150
2156
  pygpt_net/ui/widget/textarea/output.py,sha256=UkZbuQIkFVMQzeMQEr9-qWwdFL6bYx_OVkt4G0TNdqQ,5086
2151
2157
  pygpt_net/ui/widget/textarea/rename.py,sha256=NwuGRIeWMo7WfsMguAFpTqdOz1eTiXbxrDXGsbWF_TY,1358
2152
- pygpt_net/ui/widget/textarea/search_input.py,sha256=OdA3-zbH4kY1TsTs0mkfYKNtHMHJLR9_I0mYIYuNGrc,1833
2158
+ pygpt_net/ui/widget/textarea/search_input.py,sha256=qd0Q3GQPYYMgUXDPWxIkQRm4ebmG0LF25OkG5XivDH0,1974
2153
2159
  pygpt_net/ui/widget/textarea/url.py,sha256=xbNQxoM5fYI1ZWbvybQkPmNPrIq3yhtNPBOSOWftZCg,1337
2154
2160
  pygpt_net/ui/widget/textarea/web.py,sha256=KIW8MnwDWjEAMdiLA2v1yZiFbf-PT4KkF55uhIBYjfU,10404
2155
2161
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2156
2162
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2157
2163
  pygpt_net/utils.py,sha256=YhMvgy0wNt3roHIbbAnS-5SXOxOOIIvRRGd6FPTa6d0,6153
2158
- pygpt_net-2.4.36.post1.dist-info/LICENSE,sha256=GLKQTnJOPK4dDIWfkAIM4GwOxKJXi5zcMGt7FjLR1xk,1126
2159
- pygpt_net-2.4.36.post1.dist-info/METADATA,sha256=0nmgkmGDq4CMUJyxthlCp72n4JpdyDPGyadvZCpugBY,166595
2160
- pygpt_net-2.4.36.post1.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
2161
- pygpt_net-2.4.36.post1.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2162
- pygpt_net-2.4.36.post1.dist-info/RECORD,,
2164
+ pygpt_net-2.4.38.dist-info/LICENSE,sha256=GLKQTnJOPK4dDIWfkAIM4GwOxKJXi5zcMGt7FjLR1xk,1126
2165
+ pygpt_net-2.4.38.dist-info/METADATA,sha256=MD_N68t67mf8ehAlq1OLOjvJNdh2W5bJHeq0OmERCmo,169524
2166
+ pygpt_net-2.4.38.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
2167
+ pygpt_net-2.4.38.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2168
+ pygpt_net-2.4.38.dist-info/RECORD,,