pygpt-net 2.5.4__py3-none-any.whl → 2.5.6__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.
CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.5.6 (2025-02-03)
4
+
5
+ - Fix: disabled index initialization if embedding provider is OpenAI and no API KEY is provided.
6
+ - Fix: embedding provider initialization on empty index.
7
+
8
+ ## 2.5.5 (2025-02-02)
9
+
10
+ - Fix: system prompt apply.
11
+ - Added calendar live update on tab change.
12
+ - Added API Key monit at launch displayed only once.
13
+
3
14
  ## 2.5.4 (2025-02-02)
4
15
 
5
16
  - Added new models: `o3-mini` and `gpt-4o-mini-audio-preview`.
README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
4
4
 
5
- Release: **2.5.4** | build: **2025.02.02** | Python: **>=3.10, <3.13**
5
+ Release: **2.5.6** | build: **2025.02.03** | Python: **>=3.10, <3.13**
6
6
 
7
7
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
8
8
  >
@@ -3964,6 +3964,17 @@ may consume additional tokens that are not displayed in the main window.
3964
3964
 
3965
3965
  ## Recent changes:
3966
3966
 
3967
+ **2.5.6 (2025-02-03)**
3968
+
3969
+ - Fix: disabled index initialization if embedding provider is OpenAI and no API KEY is provided.
3970
+ - Fix: embedding provider initialization on empty index.
3971
+
3972
+ **2.5.5 (2025-02-02)**
3973
+
3974
+ - Fix: system prompt apply.
3975
+ - Added calendar live update on tab change.
3976
+ - Added API Key monit at launch displayed only once.
3977
+
3967
3978
  **2.5.4 (2025-02-02)**
3968
3979
 
3969
3980
  - Added new models: `o3-mini` and `gpt-4o-mini-audio-preview`.
pygpt_net/CHANGELOG.txt CHANGED
@@ -1,3 +1,14 @@
1
+ 2.5.6 (2025-02-03)
2
+
3
+ - Fix: disabled index initialization if embedding provider is OpenAI and no API KEY is provided.
4
+ - Fix: embedding provider initialization on empty index.
5
+
6
+ 2.5.5 (2025-02-02)
7
+
8
+ - Fix: system prompt apply.
9
+ - Added calendar live update on tab change.
10
+ - Added API Key monit at launch displayed only once.
11
+
1
12
  2.5.4 (2025-02-02)
2
13
 
3
14
  - Added new models: o3-mini and gpt-4o-mini-audio-preview.
pygpt_net/__init__.py CHANGED
@@ -6,15 +6,15 @@
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.02.02 02:00:00 #
9
+ # Updated Date: 2025.02.03 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  __author__ = "Marcin Szczygliński"
13
13
  __copyright__ = "Copyright 2025, Marcin Szczygliński"
14
14
  __credits__ = ["Marcin Szczygliński"]
15
15
  __license__ = "MIT"
16
- __version__ = "2.5.4"
17
- __build__ = "2025.02.02"
16
+ __version__ = "2.5.6"
17
+ __build__ = "2025.02.03"
18
18
  __maintainer__ = "Marcin Szczygliński"
19
19
  __github__ = "https://github.com/szczyglis-dev/py-gpt"
20
20
  __report__ = "https://github.com/szczyglis-dev/py-gpt/issues"
@@ -331,6 +331,8 @@ class Idx:
331
331
  """Force stop indexing"""
332
332
  print("Force stop indexing...")
333
333
  self.stop = True
334
+ self.window.controller.ui.stop_action = None
335
+ self.window.controller.ui.hide_global_stop()
334
336
 
335
337
  def index_selected(self) -> bool:
336
338
  """
@@ -37,7 +37,10 @@ class Launcher:
37
37
  # show welcome API KEY dialog (disable for langchain mode)
38
38
  if not self.window.core.config.get('mode') in self.no_api_key_allowed and \
39
39
  (self.window.core.config.get('api_key') is None or self.window.core.config.get('api_key') == ''):
40
- self.show_api_monit()
40
+
41
+ if not self.window.core.config.get('api_key.monit.displayed', False):
42
+ self.show_api_monit()
43
+ self.window.core.config.set('api_key.monit.displayed', True)
41
44
 
42
45
  # check for updates
43
46
  if self.window.core.config.get('updater.check.launch'):
@@ -176,6 +176,9 @@ class Tabs:
176
176
  elif tab.type == Tab.TAB_TOOL_PAINTER:
177
177
  if self.window.core.config.get('vision.capture.enabled'):
178
178
  self.window.controller.camera.enable_capture()
179
+ elif tab.type == Tab.TAB_TOOL_CALENDAR:
180
+ self.window.controller.calendar.update()
181
+ self.window.controller.calendar.update_ctx_counters()
179
182
 
180
183
  if prev_tab != idx or prev_column != column_idx:
181
184
  self.window.dispatch(AppEvent(AppEvent.TAB_SELECTED)) # app event
@@ -245,6 +245,12 @@ class Chat:
245
245
  chat_mode = "simple" # do not use query engine if no index
246
246
  use_index = False
247
247
 
248
+ # disable index if no api key
249
+ if self.window.core.config.get("api_key") == "" and self.window.core.config.get("llama.idx.embeddings.provider") == "openai":
250
+ print("Warning: no api key! Disabling index...")
251
+ chat_mode = "simple" # do not use query engine if no index
252
+ use_index = False
253
+
248
254
  if model is None or not isinstance(model, ModelItem):
249
255
  raise Exception("Model config not provided")
250
256
 
@@ -263,6 +269,12 @@ class Chat:
263
269
  else:
264
270
  llm = self.window.core.idx.llm.get(model)
265
271
 
272
+ # check if index is empty
273
+ if index:
274
+ nodes = index.docstore.docs.values()
275
+ if not nodes:
276
+ use_index = False
277
+
266
278
  # TODO: if multimodal support, try to get multimodal provider
267
279
  # if model.is_multimodal():
268
280
  # llm = self.window.core.idx.llm.get(model, multimodal=True) # get multimodal LLM model
@@ -637,7 +649,7 @@ class Chat:
637
649
  if idx is None:
638
650
  # create empty in memory idx
639
651
  llm, embed_model = self.window.core.idx.llm.get_service_context(model=model)
640
- index = self.storage.index_from_empty()
652
+ index = self.storage.index_from_empty(embed_model)
641
653
  return index, llm
642
654
  # raise Exception("Index not prepared")
643
655
 
@@ -71,7 +71,7 @@ class Ollama:
71
71
  for item in status.get('models', []):
72
72
  model_id = item.get('name').replace(":latest", "")
73
73
  if model_id not in self.available_models:
74
- self.available_models.append(item.get('name')) #
74
+ self.available_models.append(model_id)
75
75
  if model_id == model:
76
76
  return {
77
77
  'is_installed': True,
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.5.4",
4
- "app.version": "2.5.4",
5
- "updated_at": "2025-02-02T00:00:00"
3
+ "version": "2.5.6",
4
+ "app.version": "2.5.6",
5
+ "updated_at": "2025-02-03T00:00:00"
6
6
  },
7
7
  "access.audio.event.speech": false,
8
8
  "access.audio.event.speech.disabled": [],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.5.4",
4
- "app.version": "2.5.4",
5
- "updated_at": "2025-02-02T00:00:00"
3
+ "version": "2.5.6",
4
+ "app.version": "2.5.6",
5
+ "updated_at": "2025-02-03T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "claude-3-5-sonnet-20240620": {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.5.4",
4
- "app.version": "2.5.4",
5
- "updated_at": "2025-02-02T00:00:00"
3
+ "version": "2.5.6",
4
+ "app.version": "2.5.6",
5
+ "updated_at": "2025-02-03T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "chat": {
@@ -189,7 +189,7 @@ class Chat:
189
189
  mode = MODE_CHAT
190
190
  allowed_system = True
191
191
  if (model.id is not None
192
- and model.id not in ["o1-mini", "o1-preview"]):
192
+ and model.id in ["o1-mini", "o1-preview"]):
193
193
  allowed_system = False
194
194
 
195
195
  used_tokens = self.window.core.tokens.from_user(
@@ -308,10 +308,15 @@ class Storage:
308
308
  raise Exception('Storage engine not found!')
309
309
  storage.clean()
310
310
 
311
- def index_from_empty(self) -> BaseIndex:
311
+ def index_from_empty(
312
+ self,
313
+ embed_model: Optional = None) -> BaseIndex:
312
314
  """
313
315
  Create empty index
314
316
 
315
317
  :return: index instance
316
318
  """
317
- return VectorStoreIndex([])
319
+ return VectorStoreIndex(
320
+ [],
321
+ embed_model=embed_model,
322
+ )
@@ -54,13 +54,18 @@ class BaseStore:
54
54
  embed_model=embed_model,
55
55
  )
56
56
 
57
- def index_from_empty(self):
57
+ def index_from_empty(
58
+ self,
59
+ embed_model: Optional = None):
58
60
  """
59
61
  Get empty index instance
60
62
 
61
63
  :return: index instance
62
64
  """
63
- return VectorStoreIndex([])
65
+ return VectorStoreIndex(
66
+ [],
67
+ embed_model=embed_model,
68
+ )
64
69
 
65
70
  def attach(self, window=None):
66
71
  """
@@ -51,7 +51,10 @@ class ChromaProvider(BaseStore):
51
51
  )
52
52
  )
53
53
 
54
- def create(self, id: str):
54
+ def create(
55
+ self,
56
+ id: str,
57
+ embed_model: Optional = None):
55
58
  """
56
59
  Create empty index
57
60
 
@@ -59,7 +62,7 @@ class ChromaProvider(BaseStore):
59
62
  """
60
63
  path = self.get_path(id)
61
64
  if not os.path.exists(path):
62
- index = self.index_from_empty() # create empty index
65
+ index = self.index_from_empty(embed_model) # create empty index
63
66
  self.store(
64
67
  id=id,
65
68
  index=index,
@@ -80,7 +83,7 @@ class ChromaProvider(BaseStore):
80
83
  :return: index instance
81
84
  """
82
85
  if not self.exists(id):
83
- self.create(id)
86
+ self.create(id, embed_model)
84
87
  path = self.get_path(id)
85
88
  db = self.get_db(id)
86
89
  chroma_collection = db.get_or_create_collection(id)
@@ -56,7 +56,10 @@ class CtxAttachmentProvider(BaseStore):
56
56
  return True
57
57
  return False
58
58
 
59
- def create(self, id: str):
59
+ def create(
60
+ self, id: str,
61
+ embed_model: Optional = None
62
+ ):
60
63
  """
61
64
  Create empty index
62
65
 
@@ -64,13 +67,13 @@ class CtxAttachmentProvider(BaseStore):
64
67
  """
65
68
  path = self.get_path(id)
66
69
  if not os.path.exists(path):
67
- index = self.index_from_empty() # create empty index
70
+ index = self.index_from_empty(embed_model) # create empty index
68
71
  self.store(
69
72
  id=id,
70
73
  index=index,
71
74
  )
72
75
  else:
73
- self.index = self.index_from_empty()
76
+ self.index = self.index_from_empty(embed_model)
74
77
 
75
78
  def get(
76
79
  self,
@@ -87,7 +90,7 @@ class CtxAttachmentProvider(BaseStore):
87
90
  :return: index instance
88
91
  """
89
92
  if not self.exists():
90
- self.create(id)
93
+ self.create(id, embed_model)
91
94
  path = self.get_path(id)
92
95
  storage_context = StorageContext.from_defaults(
93
96
  persist_dir=path,
@@ -32,7 +32,11 @@ class SimpleProvider(BaseStore):
32
32
  self.prefix = "" # prefix for index directory
33
33
  self.indexes = {}
34
34
 
35
- def create(self, id: str):
35
+ def create(
36
+ self,
37
+ id: str,
38
+ embed_model: Optional = None
39
+ ):
36
40
  """
37
41
  Create empty index
38
42
 
@@ -40,7 +44,7 @@ class SimpleProvider(BaseStore):
40
44
  """
41
45
  path = self.get_path(id)
42
46
  if not os.path.exists(path):
43
- index = self.index_from_empty() # create empty index
47
+ index = self.index_from_empty(embed_model) # create empty index
44
48
  self.store(
45
49
  id=id,
46
50
  index=index,
@@ -61,7 +65,7 @@ class SimpleProvider(BaseStore):
61
65
  :return: index instance
62
66
  """
63
67
  if not self.exists(id):
64
- self.create(id)
68
+ self.create(id, embed_model)
65
69
  path = self.get_path(id)
66
70
  storage_context = StorageContext.from_defaults(
67
71
  persist_dir=path,
@@ -86,7 +86,11 @@ class TempProvider(BaseStore):
86
86
  return True
87
87
  return False
88
88
 
89
- def create(self, id: str):
89
+ def create(
90
+ self,
91
+ id: str,
92
+ embed_model: Optional = None
93
+ ):
90
94
  """
91
95
  Create empty index
92
96
 
@@ -95,13 +99,13 @@ class TempProvider(BaseStore):
95
99
  if self.persist:
96
100
  path = self.get_path(id)
97
101
  if not os.path.exists(path):
98
- index = self.index_from_empty() # create empty index
102
+ index = self.index_from_empty(embed_model) # create empty index
99
103
  self.store(
100
104
  id=id,
101
105
  index=index,
102
106
  )
103
107
  else:
104
- self.indexes[id] = self.index_from_empty()
108
+ self.indexes[id] = self.index_from_empty(embed_model)
105
109
 
106
110
  def get(
107
111
  self,
@@ -118,7 +122,7 @@ class TempProvider(BaseStore):
118
122
  :return: index instance
119
123
  """
120
124
  if not self.exists(id):
121
- self.create(id)
125
+ self.create(id, embed_model)
122
126
  path = self.get_path(id)
123
127
 
124
128
  if self.persist:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pygpt-net
3
- Version: 2.5.4
3
+ Version: 2.5.6
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
  Home-page: https://pygpt.net
6
6
  License: MIT
@@ -94,7 +94,7 @@ Description-Content-Type: text/markdown
94
94
 
95
95
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
96
96
 
97
- Release: **2.5.4** | build: **2025.02.02** | Python: **>=3.10, <3.13**
97
+ Release: **2.5.6** | build: **2025.02.03** | Python: **>=3.10, <3.13**
98
98
 
99
99
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
100
100
  >
@@ -4056,6 +4056,17 @@ may consume additional tokens that are not displayed in the main window.
4056
4056
 
4057
4057
  ## Recent changes:
4058
4058
 
4059
+ **2.5.6 (2025-02-03)**
4060
+
4061
+ - Fix: disabled index initialization if embedding provider is OpenAI and no API KEY is provided.
4062
+ - Fix: embedding provider initialization on empty index.
4063
+
4064
+ **2.5.5 (2025-02-02)**
4065
+
4066
+ - Fix: system prompt apply.
4067
+ - Added calendar live update on tab change.
4068
+ - Added API Key monit at launch displayed only once.
4069
+
4059
4070
  **2.5.4 (2025-02-02)**
4060
4071
 
4061
4072
  - Added new models: `o3-mini` and `gpt-4o-mini-audio-preview`.
@@ -1,9 +1,9 @@
1
- CHANGELOG.md,sha256=alN03jzho7Lrmqylc0gEfrd0BabY_vVNLNaLO1FWSqI,82999
2
- README.md,sha256=hgifT65UPuEjcaTZhLrD6Ea2m2axrDesN-zbkIrn_zs,164419
1
+ CHANGELOG.md,sha256=t_GjNrjSTxj1tbsd9dXedw4KHQ7le6o5nQNB_Ug8jmo,83326
2
+ README.md,sha256=82wWWI5k8hHv7zNdw-DbizMcnhEdQ8ZuEbF7fjGvDU8,164748
3
3
  icon.png,sha256=CzcINJaU23a9hNjsDlDNbyuiEvKZ4Wg6DQVYF6SpuRg,13970
4
- pygpt_net/CHANGELOG.txt,sha256=UMIs0M4NhbTD-_l2uH3WMF5sXUumsNrOC6s56A0vMLc,81473
4
+ pygpt_net/CHANGELOG.txt,sha256=yN2l7TeOkJAN0FMdBkfpNnyoSVjOMRpbrFivL6KUnnk,81794
5
5
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
6
- pygpt_net/__init__.py,sha256=HQFLwwqITxMAdsBEPz8R-zcF1okkqwgVcOCnHvxNk00,1372
6
+ pygpt_net/__init__.py,sha256=vW7j9Qn006E3_t5KgCRBfJAXXqqcKfQ8jyuCwvO6Lx0,1372
7
7
  pygpt_net/app.py,sha256=XXjn9XaKHGRcsHN8mMuqbRHAg8_Da0GLmACUU9ddjBc,16217
8
8
  pygpt_net/config.py,sha256=Qc1FOBtTf3O6A6-6KoqUGtoJ0u8hXQeowvCVbZFwtik,16405
9
9
  pygpt_net/container.py,sha256=BemiVZPpPNIzfB-ZvnZeeBPFu-AcX2c30OqYFylEjJc,4023
@@ -63,7 +63,7 @@ pygpt_net/controller/dialogs/debug.py,sha256=v6E85vyCwfaDG9XZysxhBjRwlrDkbYC-NxU
63
63
  pygpt_net/controller/dialogs/info.py,sha256=CcVXRgYYqHJF9YpG3SzQQc_lFyQL5-m3Nbb-n0EnQQA,3527
64
64
  pygpt_net/controller/files/__init__.py,sha256=1Zm9L8-rhLG-GjRQDaOCkAFocAAobTQj-D3ILxLUGn4,16135
65
65
  pygpt_net/controller/finder/__init__.py,sha256=4jl8EzTVR1Wc0dJkVwacAdvBiuF1CyOSKB4Qewju0Jw,4955
66
- pygpt_net/controller/idx/__init__.py,sha256=oY6clG2YANYB_wJumnOl78ugU3V5c_sG1WIwRyBCVOo,10161
66
+ pygpt_net/controller/idx/__init__.py,sha256=h8k8vGaPEl2ikA0vMrOT7RGY3XrhEpNjeHHxEUBLqfU,10267
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
@@ -75,7 +75,7 @@ pygpt_net/controller/lang/custom.py,sha256=o_JpcFmDCkuqzNzA_esX7Ajg61O14tOr17ZKc
75
75
  pygpt_net/controller/lang/mapping.py,sha256=uQz9GasYP6CAVvzV_54v5d0P0uPcG9z5Hjv8HITNA-o,23600
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
- pygpt_net/controller/launcher/__init__.py,sha256=om6aEZx31cSiCuShnDHp5Fs-Lj6Rb_pmbOO5fBweEWU,1899
78
+ pygpt_net/controller/launcher/__init__.py,sha256=YykWa_vl8HEsH8wMz2aQsLlGqn62dIRpQ-OZzLDomgM,2063
79
79
  pygpt_net/controller/layout/__init__.py,sha256=9R30zrZtvedAf1OxQLzxDWt8o2XirUq0bkcFRnpCztg,11433
80
80
  pygpt_net/controller/mode/__init__.py,sha256=TY3y5fD8kpqLCmDyyCoEL_1OTSOXLnHVdIvH2lGUTew,7303
81
81
  pygpt_net/controller/model/__init__.py,sha256=qRXFmBje0zu_obAku3qTkhnr01z5D5yDN4gbX347NMA,5931
@@ -102,7 +102,7 @@ pygpt_net/controller/theme/nodes.py,sha256=6SCKMGQ5SZdKgy4t69raiikTLQDPPkjoYTPwl
102
102
  pygpt_net/controller/tools/__init__.py,sha256=b_yt413iRUI9fWHzZGdtM4333UjzrJb-zmq_exYTgy4,2723
103
103
  pygpt_net/controller/ui/__init__.py,sha256=WsH7OzMS_ixCwuHeSajv2E3irPo9B4H3dQe7Svd_71k,5903
104
104
  pygpt_net/controller/ui/mode.py,sha256=8mw_tmRo7sArvgv-k1yfwx5SCfVOkwdc96U8ZiW83Q0,10231
105
- pygpt_net/controller/ui/tabs.py,sha256=xl3KMq7uyC-Vja7MTLUG_4Ade7CtU85U5pj3-ka-aO4,20154
105
+ pygpt_net/controller/ui/tabs.py,sha256=7DxDCkkx0mPJ8VbVp-mRt8cb2Mgjbv7Jv3OOVkJp91k,20321
106
106
  pygpt_net/controller/ui/vision.py,sha256=KrP8wFuuz-gsO9iwbLDnzvC5iqWVlWjFarQ27HkHdEg,2303
107
107
  pygpt_net/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  pygpt_net/core/access/__init__.py,sha256=rFKp9xMsuJHS_wxiMEMMHVRd5lXdkPj7LuObAIdQFBY,942
@@ -179,7 +179,7 @@ pygpt_net/core/filesystem/types.py,sha256=1HFubxAHYup_SLQ7SlR5EvZb3KgVyd8K8vBRUk
179
179
  pygpt_net/core/filesystem/url.py,sha256=cXctpPHBY1-fwn7vFqfZi3CeP73n2nFXF-ZnePiRk7U,3236
180
180
  pygpt_net/core/history/__init__.py,sha256=PDE5Ut03mEgY9YPLZjqrimKQAyxoE7itViuqFV-VQf0,3123
181
181
  pygpt_net/core/idx/__init__.py,sha256=sK6zQDxetao3dnqcBaaT2HTKOz4zxOSEKmsHLQlsLGY,18115
182
- pygpt_net/core/idx/chat.py,sha256=NFctd4uON0FjnSp0dJtoHZ5RjpLZMYJvJWRPRx7I9OI,23761
182
+ pygpt_net/core/idx/chat.py,sha256=JOpdkn88bBnO9k1EQ_iQjNDW_ZyXEl8-8ZuUr7hlwl0,24270
183
183
  pygpt_net/core/idx/context.py,sha256=uISNiKprcA_Qv9t0PbMj1vDWCm1eccYbk5iGS-QcfG0,3143
184
184
  pygpt_net/core/idx/indexing.py,sha256=lj0FnPGBhL3AvmOT-NIQcdH6zY-Tpp3DB0zei2SV7xo,42989
185
185
  pygpt_net/core/idx/llm.py,sha256=RmYLBKhvMIL7XcvWa39HdNxq4yC-f2C34e93Wx7yaM8,4885
@@ -197,7 +197,7 @@ pygpt_net/core/installer/__init__.py,sha256=I7ALQy8P3SG7iOY04gDQpRVmSFNCtk83sz90
197
197
  pygpt_net/core/llm/__init__.py,sha256=cns_L7QeKXwq22Jj09gOG5PPnX0PxB3dagcdiXZvBFI,1291
198
198
  pygpt_net/core/locale/__init__.py,sha256=KcG4lwtiI7mqtS8ojX2A2IuO0kCYGQP0-bwuBqzx_mc,5484
199
199
  pygpt_net/core/models/__init__.py,sha256=W4UaqC8KmlgesV151OGHOLbUDf2GPGNs7SWe7mCL2Fo,10043
200
- pygpt_net/core/models/ollama.py,sha256=xkqw1ROy4mnc9bQg69kdbkKG3-j4YBoPb10cG_USN0k,2468
200
+ pygpt_net/core/models/ollama.py,sha256=R73J1X7sWhjg5DiPCQNbGiZyKZmvhb5ROU1kyELWBbM,2457
201
201
  pygpt_net/core/modes/__init__.py,sha256=d3Wju5zo8DaUxPINPOAkOaKy0uuL9DryVubB4xiEqAU,3110
202
202
  pygpt_net/core/notepad/__init__.py,sha256=lsgn4zXapg51227oTO3fr93FyltuEMEyJCNSAOki61o,4246
203
203
  pygpt_net/core/platforms/__init__.py,sha256=QygvsQadTpWW1K4_GraO38r7u82sYpgz3FI4iv_Dodw,4563
@@ -250,9 +250,9 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
250
250
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
251
251
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
252
252
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
253
- pygpt_net/data/config/config.json,sha256=JWVNVXkeXTDYu1B6S9OT5niByJI7vL8KQzH7-7q8s9k,19884
254
- pygpt_net/data/config/models.json,sha256=wD1Ub9A7QjwkTIk9wlnqxP5QzU_OK5voT7HbKf_r378,88881
255
- pygpt_net/data/config/modes.json,sha256=26SJaHFalVGqRxlclcA60NDwLTvj5op2l_Zk5hzZgKU,1921
253
+ pygpt_net/data/config/config.json,sha256=1o-WvDxPgDgOl2TjajxHdFG-iuTjiiagI3523WtFvkc,19884
254
+ pygpt_net/data/config/models.json,sha256=6q2kLpbu0bH3e3voZzmvP6MT4kzhMm5SiZEPT8nBEzg,88881
255
+ pygpt_net/data/config/modes.json,sha256=q5cKX0_bjdzpIJ16jnIeNvTaftDQKSjzFjpznuf3mUY,1921
256
256
  pygpt_net/data/config/presets/agent_openai.json,sha256=vMTR-soRBiEZrpJJHuFLWyx8a3Ez_BqtqjyXgxCAM_Q,733
257
257
  pygpt_net/data/config/presets/agent_openai_assistant.json,sha256=awJw9lNTGpKML6SJUShVn7lv8AXh0oic7wBeyoN7AYs,798
258
258
  pygpt_net/data/config/presets/agent_planner.json,sha256=a6Rv58Bnm2STNWB0Rw_dGhnsz6Lb3J8_GwsUVZaTIXc,742
@@ -1871,7 +1871,7 @@ pygpt_net/provider/core/prompt/json_file.py,sha256=5yfW1RgEa36tX4-ntze4PavWLry0Y
1871
1871
  pygpt_net/provider/gpt/__init__.py,sha256=QZgTYRhe9rV2m4e60VTtUxgkYZFEwTX0H4aILSGdV0A,9265
1872
1872
  pygpt_net/provider/gpt/assistants.py,sha256=DSw1YB_J9n2rFD5CPDWZy59I38VSG6uLpYydGLTUPMQ,14083
1873
1873
  pygpt_net/provider/gpt/audio.py,sha256=frHElxYVaHYkNDCMJ9tQMoGqxSaZ-s5oPlAEHUAckkc,2032
1874
- pygpt_net/provider/gpt/chat.py,sha256=omjGHONCkEpA_hXHmjsxJiKIHAEBjAd1JBuM9A9FY7s,10516
1874
+ pygpt_net/provider/gpt/chat.py,sha256=UlxRFZghIB-zBoCOxMlX6vqNveKiQi2RdU3dOwo0Fb4,10512
1875
1875
  pygpt_net/provider/gpt/completion.py,sha256=OusKOb4G11aYRJUjRWcMsf80cRQQvee9DzRe99ubLmc,6164
1876
1876
  pygpt_net/provider/gpt/image.py,sha256=ZqYrtVTcfPa8Kf08pWLKy1Zhvi6pu61GBlslRBauoK0,8967
1877
1877
  pygpt_net/provider/gpt/store.py,sha256=FaVd7SBC_QQ0W26_odJwcrLH54CSq0UZXZnuwIhRm54,17315
@@ -1954,15 +1954,15 @@ pygpt_net/provider/loaders/web_rss.py,sha256=yV7c_AB5fXwCyauvsMj7pGQP0gPx-HikblS
1954
1954
  pygpt_net/provider/loaders/web_sitemap.py,sha256=zFIW3abS93ZzsyVasq24MHAiy2ZtrOro-xFl3oaCfyQ,2205
1955
1955
  pygpt_net/provider/loaders/web_twitter.py,sha256=geW_fHMfl-Uh9TmoE3NAk8Ifk0h1VBxMreP7EgKbxhA,2954
1956
1956
  pygpt_net/provider/loaders/web_yt.py,sha256=1j68SbIS6h7Da3pcSPvDnBw5K_jjX3huT39WLQSmArY,2739
1957
- pygpt_net/provider/vector_stores/__init__.py,sha256=htSyBOAIVhoHmrcAoinbI_WCly5y_zMoGEcAfeCDhTo,8475
1958
- pygpt_net/provider/vector_stores/base.py,sha256=CLY9X2yenF-vLiwpVdQBZFO5MOkMf_pShDahWaaoDu8,4361
1959
- pygpt_net/provider/vector_stores/chroma.py,sha256=_G5GeCzII_wqnUON0e8-uxU3wZmAoFanpX4OQunF_48,3276
1960
- pygpt_net/provider/vector_stores/ctx_attachment.py,sha256=zNfYQjEGzZM2kPsxIQJCncJpU-746lajwQeqFT_y7po,3322
1957
+ pygpt_net/provider/vector_stores/__init__.py,sha256=24lP4ZkmyTVBuAM_vyVcofzWcJthGABd0D6Kn6YovMs,8590
1958
+ pygpt_net/provider/vector_stores/base.py,sha256=jz9eRciP4g8Uz7S-pYmpQE61oMRUMiTXQeI9ywd9Vhc,4476
1959
+ pygpt_net/provider/vector_stores/chroma.py,sha256=ATiWsFdRf3B-dJeuq8lBtIqjzJL7ZoL8iFOOrsdGPpk,3367
1960
+ pygpt_net/provider/vector_stores/ctx_attachment.py,sha256=jYz2rcNkh3zdr3r1t9dRMTGY54ugmFCyHEjPW4jnF-Y,3417
1961
1961
  pygpt_net/provider/vector_stores/elasticsearch.py,sha256=sa9ZESc-Yaxh658dvF8FEIx4V5VpaBS_u67bDzGM1nE,3255
1962
1962
  pygpt_net/provider/vector_stores/pinecode.py,sha256=oyFq8gh9e7Oi369ADvX7MEJlVPpQGZUFybC5c3cdJzE,5280
1963
1963
  pygpt_net/provider/vector_stores/redis.py,sha256=lea-hmtJH87Q2uCfZogu8H8c0ukSU7UK8vK8dgFFbwM,3286
1964
- pygpt_net/provider/vector_stores/simple.py,sha256=yP2q9KJgNHTAJc-w-PbVewQkULsgYaFju4Du12Hk8rg,2585
1965
- pygpt_net/provider/vector_stores/temp.py,sha256=ZaTvzfCMB6bzSKiC4TLc9fn-7uoCguAYvtJoCCj1-Do,4496
1964
+ pygpt_net/provider/vector_stores/simple.py,sha256=fcjBual9BySrNz8FzqGwyzT1YDiUdZmhlQ3v3qfdEiQ,2681
1965
+ pygpt_net/provider/vector_stores/temp.py,sha256=zUNI0ujN6KNGuodIghZprNR2BX3kNgIXR88CNsWEAwo,4603
1966
1966
  pygpt_net/provider/web/__init__.py,sha256=lOkgAiuNUqkAl_QrIG3ZsUznIZeJYtokgzEnDB8gRic,488
1967
1967
  pygpt_net/provider/web/base.py,sha256=uXWu4N5giHIAWUylq8Ow2T02HDcKl7pWbSKWTpFc5do,2105
1968
1968
  pygpt_net/provider/web/google_custom_search.py,sha256=hgxdpcdxy3YzUBeL1hEuNPFQ3pE3D_CCi5spBzIPKeI,4741
@@ -2180,8 +2180,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=2LebPHa_e5lvBqnIVzjwsLcFMoc11BonXgAUs
2180
2180
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2181
2181
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2182
2182
  pygpt_net/utils.py,sha256=WtrdagJ-BlCjxGEEVq2rhsyAZMcU6JqltCXzOs823po,6707
2183
- pygpt_net-2.5.4.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2184
- pygpt_net-2.5.4.dist-info/METADATA,sha256=T0z0gsoSU06Nbx9BcLAlT4_RJvJOFMOfJ1_0gXRlX7c,169374
2185
- pygpt_net-2.5.4.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
2186
- pygpt_net-2.5.4.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2187
- pygpt_net-2.5.4.dist-info/RECORD,,
2183
+ pygpt_net-2.5.6.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2184
+ pygpt_net-2.5.6.dist-info/METADATA,sha256=AH7si-bhF46MeiBcfqcUtGQrRbIw3_8GgtZUUvwvjSU,169703
2185
+ pygpt_net-2.5.6.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
2186
+ pygpt_net-2.5.6.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2187
+ pygpt_net-2.5.6.dist-info/RECORD,,