pygpt-net 2.6.65__py3-none-any.whl → 2.6.66__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 (42) hide show
  1. pygpt_net/CHANGELOG.txt +11 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/app.py +2 -0
  4. pygpt_net/controller/chat/chat.py +0 -0
  5. pygpt_net/controller/chat/handler/openai_stream.py +137 -7
  6. pygpt_net/controller/chat/render.py +0 -0
  7. pygpt_net/controller/config/field/checkbox_list.py +34 -1
  8. pygpt_net/controller/media/media.py +20 -1
  9. pygpt_net/controller/presets/presets.py +4 -1
  10. pygpt_net/controller/ui/mode.py +14 -10
  11. pygpt_net/controller/ui/ui.py +18 -1
  12. pygpt_net/core/image/image.py +34 -1
  13. pygpt_net/core/tabs/tabs.py +0 -0
  14. pygpt_net/core/types/image.py +61 -3
  15. pygpt_net/data/config/config.json +4 -3
  16. pygpt_net/data/config/models.json +629 -41
  17. pygpt_net/data/locale/locale.de.ini +4 -0
  18. pygpt_net/data/locale/locale.en.ini +4 -0
  19. pygpt_net/data/locale/locale.es.ini +4 -0
  20. pygpt_net/data/locale/locale.fr.ini +4 -0
  21. pygpt_net/data/locale/locale.it.ini +4 -0
  22. pygpt_net/data/locale/locale.pl.ini +4 -0
  23. pygpt_net/data/locale/locale.uk.ini +4 -0
  24. pygpt_net/data/locale/locale.zh.ini +4 -0
  25. pygpt_net/item/model.py +15 -19
  26. pygpt_net/provider/agents/openai/agent.py +0 -0
  27. pygpt_net/provider/api/google/__init__.py +20 -9
  28. pygpt_net/provider/api/google/image.py +161 -28
  29. pygpt_net/provider/api/google/video.py +73 -36
  30. pygpt_net/provider/api/openai/__init__.py +21 -11
  31. pygpt_net/provider/api/openai/agents/client.py +0 -0
  32. pygpt_net/provider/api/openai/video.py +562 -0
  33. pygpt_net/provider/core/config/patch.py +7 -0
  34. pygpt_net/provider/core/model/patch.py +29 -3
  35. pygpt_net/provider/vector_stores/qdrant.py +117 -0
  36. pygpt_net/ui/layout/toolbox/raw.py +7 -1
  37. pygpt_net/ui/widget/option/checkbox_list.py +14 -2
  38. {pygpt_net-2.6.65.dist-info → pygpt_net-2.6.66.dist-info}/METADATA +66 -25
  39. {pygpt_net-2.6.65.dist-info → pygpt_net-2.6.66.dist-info}/RECORD +37 -35
  40. {pygpt_net-2.6.65.dist-info → pygpt_net-2.6.66.dist-info}/LICENSE +0 -0
  41. {pygpt_net-2.6.65.dist-info → pygpt_net-2.6.66.dist-info}/WHEEL +0 -0
  42. {pygpt_net-2.6.65.dist-info → pygpt_net-2.6.66.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,117 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # ================================================== #
4
+ # This file is a part of PYGPT package #
5
+ # Website: https://pygpt.net #
6
+ # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
+ # MIT License #
8
+ # Created By : Marcin Szczygliński #
9
+ # Updated Date: 2025.09.30 13:00:00 #
10
+ # ================================================== #
11
+
12
+ import datetime
13
+ import os.path
14
+ from typing import Optional
15
+
16
+ from llama_index.core.indices.base import BaseIndex
17
+ from llama_index.core import StorageContext
18
+
19
+ from pygpt_net.utils import parse_args
20
+ from .base import BaseStore
21
+
22
+
23
+ class QdrantProvider(BaseStore):
24
+ def __init__(self, *args, **kwargs):
25
+ super(QdrantProvider, self).__init__(*args, **kwargs)
26
+ """
27
+ Qdrant vector store provider
28
+
29
+ :param args: args
30
+ :param kwargs: kwargs
31
+ """
32
+ self.window = kwargs.get('window', None)
33
+ self.id = "QdrantVectorStore"
34
+ self.prefix = "qdrant_" # prefix for index directory
35
+ self.indexes = {}
36
+
37
+ def create(self, id: str):
38
+ """
39
+ Create empty index
40
+
41
+ :param id: index name
42
+ """
43
+ path = self.get_path(id)
44
+ if not os.path.exists(path):
45
+ os.makedirs(path, exist_ok=True)
46
+ self.store(id)
47
+
48
+ def get_qdrant_store(self, id: str):
49
+ """
50
+ Get Qdrant vector store
51
+
52
+ :param id: index name
53
+ :return: QdrantVectorStore instance
54
+ """
55
+ from llama_index.vector_stores.qdrant import QdrantVectorStore
56
+
57
+ additional_args = parse_args(
58
+ self.window.core.config.get('llama.idx.storage.args', []),
59
+ )
60
+
61
+ url = additional_args.get('url', 'http://localhost:6333')
62
+ api_key = additional_args.get('api_key', '')
63
+
64
+ store_args = {k: v for k, v in additional_args.items() if k not in ['url', 'api_key', 'collection_name']}
65
+
66
+ return QdrantVectorStore(
67
+ url=url,
68
+ api_key=api_key,
69
+ collection_name=id,
70
+ **store_args
71
+ )
72
+
73
+ def get(
74
+ self,
75
+ id: str,
76
+ llm: Optional = None,
77
+ embed_model: Optional = None,
78
+ ) -> BaseIndex:
79
+ """
80
+ Get index
81
+
82
+ :param id: index name
83
+ :param llm: LLM instance
84
+ :param embed_model: Embedding model instance
85
+ :return: index instance
86
+ """
87
+ if not self.exists(id):
88
+ self.create(id)
89
+ vector_store = self.get_qdrant_store(id)
90
+ storage_context = StorageContext.from_defaults(
91
+ vector_store=vector_store,
92
+ )
93
+ self.indexes[id] = self.index_from_store(
94
+ vector_store=vector_store,
95
+ storage_context=storage_context,
96
+ llm=llm,
97
+ embed_model=embed_model,
98
+ )
99
+ return self.indexes[id]
100
+
101
+ def store(
102
+ self,
103
+ id: str,
104
+ index: Optional[BaseIndex] = None
105
+ ):
106
+ """
107
+ Store index
108
+
109
+ :param id: index name
110
+ :param index: index instance
111
+ """
112
+ path = self.get_path(id)
113
+ os.makedirs(path, exist_ok=True)
114
+ lock_file = os.path.join(path, 'store.lock')
115
+ with open(lock_file, 'w') as f:
116
+ f.write(id + ': ' + str(datetime.datetime.now()))
117
+ self.indexes[id] = index
@@ -6,11 +6,12 @@
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.09.01 23:00:00 #
9
+ # Updated Date: 2025.12.25 20:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtWidgets import QVBoxLayout, QHBoxLayout, QWidget, QCheckBox
13
13
 
14
+ from pygpt_net.ui.widget.option.combo import OptionCombo
14
15
  from pygpt_net.utils import trans
15
16
 
16
17
 
@@ -39,7 +40,12 @@ class Raw:
39
40
  conf_global['img_raw'] = QCheckBox(trans("img.raw"), parent=container)
40
41
  conf_global['img_raw'].toggled.connect(self.window.controller.media.toggle_raw)
41
42
 
43
+ conf_global = ui.config['global']
44
+ option_modes = self.window.core.image.get_available_modes()
45
+ conf_global['img_mode'] = OptionCombo(self.window, 'global', 'img_mode', option_modes)
46
+
42
47
  cols = QHBoxLayout()
48
+ cols.addWidget(conf_global['img_mode'])
43
49
  cols.addWidget(conf_global['img_raw'])
44
50
 
45
51
  rows = QVBoxLayout()
@@ -6,10 +6,10 @@
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.08.24 23:00:00 #
9
+ # Updated Date: 2025.12.25 20:00:00 #
10
10
  # ================================================== #
11
11
 
12
- from PySide6.QtWidgets import QCheckBox, QWidget
12
+ from PySide6.QtWidgets import QCheckBox, QWidget, QPushButton
13
13
 
14
14
  from pygpt_net.ui.base.flow_layout import FlowLayout
15
15
  from pygpt_net.utils import trans
@@ -84,6 +84,18 @@ class OptionCheckboxList(QWidget):
84
84
  for widget in widgets:
85
85
  self.layout.addWidget(widget)
86
86
 
87
+ # select/unselect all button
88
+ btn_select = QPushButton("X", self)
89
+ btn_select.setToolTip(trans("action.select_unselect_all"))
90
+ btn_select.clicked.connect(
91
+ lambda: self.window.controller.config.checkbox_list.on_select_all(
92
+ self.parent_id,
93
+ self.id,
94
+ self.option
95
+ )
96
+ )
97
+ self.layout.addWidget(btn_select)
98
+
87
99
  self.layout.setContentsMargins(0, 0, 0, 0)
88
100
  self.setLayout(self.layout)
89
101
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.6.65
3
+ Version: 2.6.66
4
4
  Summary: Desktop AI Assistant powered by: OpenAI GPT-5, GPT-4, o1, o3, Gemini, Claude, Grok, DeepSeek, and other models supported by Llama Index, and Ollama. Chatbot, agents, completion, image generation, vision analysis, speech-to-text, plugins, MCP, internet access, file handling, command execution and more.
5
5
  License: MIT
6
6
  Keywords: ai,api,api key,app,assistant,bielik,chat,chatbot,chatgpt,claude,dall-e,deepseek,desktop,gemini,gpt,gpt-3.5,gpt-4,gpt-4-vision,gpt-4o,gpt-5,gpt-oss,gpt3.5,gpt4,grok,langchain,llama-index,llama3,mistral,o1,o3,ollama,openai,presets,py-gpt,py_gpt,pygpt,pyside,qt,text completion,tts,ui,vision,whisper
@@ -24,44 +24,45 @@ Requires-Dist: Pygments (==2.19.2)
24
24
  Requires-Dist: SQLAlchemy (==2.0.43)
25
25
  Requires-Dist: SpeechRecognition (>=3.14.3,<4.0.0)
26
26
  Requires-Dist: Telethon (>=1.40.0,<2.0.0)
27
- Requires-Dist: anthropic (>=0.68.0,<0.69.0)
28
- Requires-Dist: azure-core (==1.35.1)
27
+ Requires-Dist: anthropic (>=0.75.0,<0.76.0)
28
+ Requires-Dist: azure-core (==1.37.0)
29
29
  Requires-Dist: beautifulsoup4 (==4.13.5)
30
+ Requires-Dist: charset-normalizer (>=2.0,!=3.2.0)
30
31
  Requires-Dist: chromadb (==1.1.0)
31
32
  Requires-Dist: croniter (>=2.0.7,<3.0.0)
32
33
  Requires-Dist: ddgs (>=9.5.5,<10.0.0)
33
34
  Requires-Dist: docker (>=7.1.0,<8.0.0)
34
35
  Requires-Dist: docx2txt (>=0.8,<0.9)
35
36
  Requires-Dist: gkeepapi (==0.15.1)
36
- Requires-Dist: google-api-python-client (==2.182.0)
37
- Requires-Dist: google-generativeai (==0.8.5)
37
+ Requires-Dist: google-api-python-client (==2.187.0)
38
+ Requires-Dist: google-genai (>=1.56.0,<2.0.0)
38
39
  Requires-Dist: grpcio (==1.75.0)
39
40
  Requires-Dist: httpx (==0.28.1)
40
41
  Requires-Dist: httpx-socks (>=0.10.1,<0.11.0)
41
42
  Requires-Dist: huggingface-hub (==0.35.0)
42
43
  Requires-Dist: ipykernel (>=6.30.1,<7.0.0)
43
44
  Requires-Dist: jupyter_client (>=8.6.3,<9.0.0)
44
- Requires-Dist: llama-index (==0.13.6)
45
- Requires-Dist: llama-index-core (==0.13.6)
45
+ Requires-Dist: llama-index (==0.14.10)
46
+ Requires-Dist: llama-index-core (==0.14.10)
46
47
  Requires-Dist: llama-index-embeddings-azure-openai (>=0.4.1,<0.5.0)
47
48
  Requires-Dist: llama-index-embeddings-gemini (>=0.4.1,<0.5.0)
48
49
  Requires-Dist: llama-index-embeddings-google-genai (>=0.3.1,<0.4.0)
49
50
  Requires-Dist: llama-index-embeddings-huggingface-api (>=0.4.1,<0.5.0)
50
51
  Requires-Dist: llama-index-embeddings-mistralai (>=0.4.1,<0.5.0)
51
- Requires-Dist: llama-index-embeddings-ollama (>=0.8.3,<0.9.0)
52
+ Requires-Dist: llama-index-embeddings-ollama (>=0.8.5,<0.9.0)
52
53
  Requires-Dist: llama-index-embeddings-openai (>=0.5.1,<0.6.0)
53
54
  Requires-Dist: llama-index-embeddings-openai-like (>=0.2.2,<0.3.0)
54
- Requires-Dist: llama-index-embeddings-voyageai (>=0.4.2,<0.5.0)
55
- Requires-Dist: llama-index-llms-anthropic (>=0.8.6,<0.9.0)
56
- Requires-Dist: llama-index-llms-azure-openai (>=0.4.1,<0.5.0)
55
+ Requires-Dist: llama-index-embeddings-voyageai (>=0.5.2,<0.6.0)
56
+ Requires-Dist: llama-index-llms-anthropic (>=0.10.4,<0.11.0)
57
+ Requires-Dist: llama-index-llms-azure-openai (>=0.4.2,<0.5.0)
57
58
  Requires-Dist: llama-index-llms-deepseek (>=0.2.2,<0.3.0)
58
59
  Requires-Dist: llama-index-llms-gemini (>=0.6.1,<0.7.0)
59
- Requires-Dist: llama-index-llms-google-genai (>=0.3.1,<0.4.0)
60
+ Requires-Dist: llama-index-llms-google-genai (>=0.8.2,<0.9.0)
60
61
  Requires-Dist: llama-index-llms-huggingface-api (>=0.6.1,<0.7.0)
61
- Requires-Dist: llama-index-llms-mistralai (>=0.7.1,<0.8.0)
62
- Requires-Dist: llama-index-llms-ollama (>=0.7.3,<0.8.0)
63
- Requires-Dist: llama-index-llms-openai (>=0.5.6,<0.6.0)
64
- Requires-Dist: llama-index-llms-openai-like (>=0.5.1,<0.6.0)
62
+ Requires-Dist: llama-index-llms-mistralai (>=0.9.0,<0.10.0)
63
+ Requires-Dist: llama-index-llms-ollama (>=0.9.1,<0.10.0)
64
+ Requires-Dist: llama-index-llms-openai (>=0.6.12,<0.7.0)
65
+ Requires-Dist: llama-index-llms-openai-like (>=0.5.3,<0.6.0)
65
66
  Requires-Dist: llama-index-llms-perplexity (>=0.4.1,<0.5.0)
66
67
  Requires-Dist: llama-index-multi-modal-llms-openai (>=0.6.1,<0.7.0)
67
68
  Requires-Dist: llama-index-readers-chatgpt-plugin (>=0.4.1,<0.5.0)
@@ -75,14 +76,15 @@ Requires-Dist: llama-index-readers-web (>=0.5.3,<0.6.0)
75
76
  Requires-Dist: llama-index-vector-stores-chroma (>=0.5.3,<0.6.0)
76
77
  Requires-Dist: llama-index-vector-stores-elasticsearch (==0.5.1)
77
78
  Requires-Dist: llama-index-vector-stores-pinecone (>=0.7.1,<0.8.0)
78
- Requires-Dist: llama-index-vector-stores-redis (>=0.6.1,<0.7.0)
79
+ Requires-Dist: llama-index-vector-stores-qdrant (>=0.8.5,<0.9.0)
80
+ Requires-Dist: llama-index-vector-stores-redis (>=0.6.2,<0.7.0)
79
81
  Requires-Dist: mcp (>=1.13.1,<2.0.0)
80
82
  Requires-Dist: mss (>=9.0.2,<10.0.0)
81
83
  Requires-Dist: nbconvert (>=7.16.6,<8.0.0)
82
84
  Requires-Dist: numpy (==1.26.4)
83
85
  Requires-Dist: onnxruntime (==1.22.1)
84
- Requires-Dist: openai (==1.108.2)
85
- Requires-Dist: openai-agents (>=0.2.3,<0.3.0)
86
+ Requires-Dist: openai (==2.14.0)
87
+ Requires-Dist: openai-agents (>=0.6.4,<0.7.0)
86
88
  Requires-Dist: opencv-python (>=4.11.0.86,<5.0.0.0)
87
89
  Requires-Dist: packaging (>=25.0,<26.0)
88
90
  Requires-Dist: pandas (==2.2.3)
@@ -104,7 +106,7 @@ Requires-Dist: tiktoken (==0.11.0)
104
106
  Requires-Dist: transformers (==4.56.2)
105
107
  Requires-Dist: urllib3 (==2.5.0)
106
108
  Requires-Dist: wikipedia (>=1.4.0,<2.0.0)
107
- Requires-Dist: xai-sdk (>=1.1.0,<2.0.0)
109
+ Requires-Dist: xai-sdk (>=1.5.0,<2.0.0)
108
110
  Requires-Dist: youtube-transcript-api (>=0.6.3,<0.7.0)
109
111
  Project-URL: Changelog, https://github.com/szczyglis-dev/py-gpt/blob/master/CHANGELOG.md
110
112
  Project-URL: Documentation, https://pygpt.readthedocs.io/
@@ -117,7 +119,7 @@ Description-Content-Type: text/markdown
117
119
 
118
120
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
119
121
 
120
- Release: **2.6.65** | build: **2025-09-28** | Python: **>=3.10, <3.14**
122
+ Release: **2.6.66** | build: **2025-12-25** | Python: **>=3.10, <3.14**
121
123
 
122
124
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
123
125
  >
@@ -183,7 +185,8 @@ You can download compiled 64-bit versions for Windows and Linux here: https://py
183
185
  - Includes an node-based Agents Builder.
184
186
  - Supports multiple languages.
185
187
  - Requires no previous knowledge of using AI models.
186
- - Simplifies image generation using image models like `DALL-E` and `Imagen`.
188
+ - Image generation via models like `DALL-E`, `gpt-image`, `Imagen` and `Nano Banana`.
189
+ - Video generation via models like `Veo3` and `Sora2`.
187
190
  - Fully configurable.
188
191
  - Themes support.
189
192
  - Real-time code syntax highlighting.
@@ -650,6 +653,7 @@ Options for indexing existing context history or enabling real-time indexing new
650
653
  - ChromaVectorStore
651
654
  - ElasticsearchStore
652
655
  - PinecodeVectorStore
656
+ - QdrantVectorStore
653
657
  - RedisVectorStore
654
658
  - SimpleVectorStore
655
659
  ```
@@ -706,7 +710,10 @@ Plugin allows you to generate images in Chat mode:
706
710
 
707
711
  ![v3_img_chat](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v3_img_chat.png)
708
712
 
709
- **Video generation**: From version `2.6.32`, video generation (using `Google Veo 3`) is also available.
713
+ **Video generation**:
714
+
715
+ From version `2.6.32`, video generation (using `Google Veo 3`) is also available.
716
+ From version `2.6.66`, video generation (using `OpenAI Sora 2`) is also available.
710
717
 
711
718
  ### Multiple variants
712
719
 
@@ -1154,7 +1161,7 @@ The name of the currently active profile is shown as (Profile Name) in the windo
1154
1161
 
1155
1162
  ## Built-in models
1156
1163
 
1157
- PyGPT has a preconfigured list of models (as of 2025-08-31):
1164
+ PyGPT has a preconfigured list of models (as of 2025-12-25):
1158
1165
 
1159
1166
  - `bielik-11b-v2.3-instruct:Q4_K_M` (Ollama)
1160
1167
  - `chatgpt-4o-latest` (OpenAI)
@@ -1164,6 +1171,8 @@ PyGPT has a preconfigured list of models (as of 2025-08-31):
1164
1171
  - `claude-3-opus` (Anthropic)
1165
1172
  - `claude-opus-4-0` (Anthropic)
1166
1173
  - `claude-sonnet-4-0` (Anthropic)
1174
+ - `claude-opus-4-5` (Anthropic)
1175
+ - `claude-sonnet-4-5` (Anthropic)
1167
1176
  - `codellama` (Ollama)
1168
1177
  - `codex-mini` (OpenAI)
1169
1178
  - `dall-e-2` (OpenAI)
@@ -1180,6 +1189,9 @@ PyGPT has a preconfigured list of models (as of 2025-08-31):
1180
1189
  - `gemini-2.5-flash` (Google)
1181
1190
  - `gemini-2.5-flash-preview-native-audio-dialog` (Google, real-time)
1182
1191
  - `gemini-2.5-pro` (Google)
1192
+ - `gemini-3-flash-preview` (Google)
1193
+ - `gemini-3-pro-image-preview` (Google)
1194
+ - `gemini-3-pro-preview` (Google)
1183
1195
  - `gpt-3.5-turbo` (OpenAI)
1184
1196
  - `gpt-3.5-turbo-16k` (OpenAI)
1185
1197
  - `gpt-3.5-turbo-instruct` (OpenAI)
@@ -1196,7 +1208,9 @@ PyGPT has a preconfigured list of models (as of 2025-08-31):
1196
1208
  - `gpt-5` (OpenAI)
1197
1209
  - `gpt-5-mini` (OpenAI)
1198
1210
  - `gpt-5-nano` (OpenAI)
1211
+ - `gpt-5.2` (OpenAI)
1199
1212
  - `gpt-image-1` (OpenAI)
1213
+ - `gpt-image-1.5` (OpenAI)
1200
1214
  - `gpt-oss:20b` (OpenAI - via Ollama and HuggingFace Router)
1201
1215
  - `gpt-oss:120b` (OpenAI - via Ollama and HuggingFace Router)
1202
1216
  - `gpt-realtime` (OpenAI, real-time)
@@ -1212,6 +1226,7 @@ PyGPT has a preconfigured list of models (as of 2025-08-31):
1212
1226
  - `mistral` (Ollama)
1213
1227
  - `mistral-large` (Ollama)
1214
1228
  - `mistral-small3.1` (Ollama)
1229
+ - `nano-banana-pro-preview` (Google)
1215
1230
  - `o1` (OpenAI)
1216
1231
  - `o1-mini` (OpenAI)
1217
1232
  - `o1-pro` (OpenAI)
@@ -1231,11 +1246,14 @@ PyGPT has a preconfigured list of models (as of 2025-08-31):
1231
1246
  - `sonar-pro` (Perplexity)
1232
1247
  - `sonar-reasoning` (Perplexity)
1233
1248
  - `sonar-reasoning-pro` (Perplexity)
1249
+ - `sora-2` (OpenAI)
1234
1250
  - `veo-3.0-generate-preview` (Google)
1235
1251
  - `veo-3.0-fast-generate-preview` (Google)
1252
+ - `veo-3.1-generate-preview` (Google)
1253
+ - `veo-3.1-fast-generate-preview` (Google)
1236
1254
 
1237
1255
  All models are specified in the configuration file `models.json`, which you can customize.
1238
- This file is located in your working directory. You can add new models provided directly by `OpenAI API` (or compatible) and those supported by `LlamaIndex` or `Ollama` to this file. Configuration for LlamaIndex is placed in `llama_index` key.
1256
+ This file is located in your working directory. You can add new models provided directly by `OpenAI API` (or compatible), `Google Gen AI API`, `Anthropic API`, `xAI API`, and those supported by `LlamaIndex` or `Ollama` to this file. Configuration for LlamaIndex in placed in `llama_index` key.
1239
1257
 
1240
1258
  You can import new models by manually editing `models.json` or by using the model importer in the `Config -> Models -> Import` menu.
1241
1259
 
@@ -3088,6 +3106,7 @@ You can provide a single URI in the form of: `{scheme}://{user}:{password}@{host
3088
3106
  - ChromaVectorStore
3089
3107
  - ElasticsearchStore
3090
3108
  - PinecodeVectorStore
3109
+ - QdrantVectorStore
3091
3110
  - RedisVectorStore
3092
3111
  - SimpleVectorStore
3093
3112
  ```
@@ -3118,6 +3137,15 @@ Keyword arguments for Pinecone(`**kwargs`):
3118
3137
  - `api_key`
3119
3138
  - index_name (default: current index ID, already set, not required)
3120
3139
 
3140
+ **QdrantVectorStore**
3141
+
3142
+ Keyword arguments for QdrantVectorStore(`**kwargs`):
3143
+
3144
+ - `url` - str, default: `http://localhost:6333`
3145
+ - `api_key` - str, default: `None` (for Qdrant Cloud)
3146
+ - `collection_name` (default: current index ID, already set, not required)
3147
+ - any other keyword arguments provided on list
3148
+
3121
3149
  **RedisVectorStore**
3122
3150
 
3123
3151
  Keyword arguments for RedisVectorStore(`**kwargs`):
@@ -3615,6 +3643,7 @@ You can create a custom vector store provider or data loader for your data and d
3615
3643
  from pygpt_net.provider.vector_stores.chroma import ChromaProvider
3616
3644
  from pygpt_net.provider.vector_stores.elasticsearch import ElasticsearchProvider
3617
3645
  from pygpt_net.provider.vector_stores.pinecode import PinecodeProvider
3646
+ from pygpt_net.provider.vector_stores.qdrant import QdrantProvider
3618
3647
  from pygpt_net.provider.vector_stores.redis import RedisProvider
3619
3648
  from pygpt_net.provider.vector_stores.simple import SimpleProvider
3620
3649
 
@@ -3624,6 +3653,7 @@ def run(**kwargs):
3624
3653
  launcher.add_vector_store(ChromaProvider())
3625
3654
  launcher.add_vector_store(ElasticsearchProvider())
3626
3655
  launcher.add_vector_store(PinecodeProvider())
3656
+ launcher.add_vector_store(QdrantProvider())
3627
3657
  launcher.add_vector_store(RedisProvider())
3628
3658
  launcher.add_vector_store(SimpleProvider())
3629
3659
 
@@ -3723,6 +3753,17 @@ may consume additional tokens that are not displayed in the main window.
3723
3753
 
3724
3754
  ## Recent changes:
3725
3755
 
3756
+ **2.6.66 (2025-12-25)**
3757
+
3758
+ - Added Sora 2 support - #155.
3759
+ - Added Nano Banana support.
3760
+ - Added Qdrant Vector Store - merged PR #147 by @Anush008.
3761
+ - Added models: gpt-5.2, gpt-image-1.5, gemini-3, nano-banana-pro, sora-2, claude-sonnet-4.5, claude-opus-4.5, veo-3.1.
3762
+ - Added Select/unselect All option in checkbox lists.
3763
+ - OpenAI SDK upgraded to 2.14.0, Anthropic SDK upgraded to 0.75.0, xAI SDK upgraded to 1.5.0, Google GenAI upgraded to 1.56.0, LlamaIndex upgraded to 0.14.10.
3764
+ - Fix: charset-normalizer 3.2.0 circular import - #152.
3765
+ - Fix: Google client closed state.
3766
+
3726
3767
  **2.6.65 (2025-09-28)**
3727
3768
 
3728
3769
  - Added drag and drop functionality for files and directories from the filesystem in attachments and file explorer.
@@ -1,7 +1,7 @@
1
- pygpt_net/CHANGELOG.txt,sha256=pP1BErOWIqEfR5eT9uS7E7UhFuEkIgqE4L9-rvQYWNc,109671
1
+ pygpt_net/CHANGELOG.txt,sha256=jJmWMRUHrEqnfs6W-O6WiqXdX7ZkQDvyHo9bYwmfR0I,110236
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=EvCn_ttDGK39KSPHHDw_lW6fuHqIeow3uB86prWRae0,1373
4
- pygpt_net/app.py,sha256=SgkEfdID6KjXaDA_0Cj-QfU2mj9nO_NhHO_-ETr3K7E,23304
3
+ pygpt_net/__init__.py,sha256=TQ-B7Q4-A0-jDnXMS4ggculbzFJTBO8hrDL08QihPRI,1373
4
+ pygpt_net/app.py,sha256=W-2rCYLndMgVV7cZZqeloqzifCggjISrFdMhHg0dMvM,23419
5
5
  pygpt_net/app_core.py,sha256=PwBOV9wZLtr-O6SxBiazABhYXMHH8kZ6OgbvSv2OiZA,3827
6
6
  pygpt_net/config.py,sha256=3CA7xXPKQsdRie1CY8_b5-Kk1taWMciUP9CesXRQNNY,18302
7
7
  pygpt_net/controller/__init__.py,sha256=X3LX0CrGWK-hqHx5NO5-WUkiDwS0Tqde3MPGt6RbFrM,6152
@@ -44,7 +44,7 @@ pygpt_net/controller/chat/handler/anthropic_stream.py,sha256=dfzZVVW0d0Vjy8mKya2
44
44
  pygpt_net/controller/chat/handler/google_stream.py,sha256=uKbNui93DYVc7Vh0nHs_NJxs6UV2x1BVYsu20KL_L60,6810
45
45
  pygpt_net/controller/chat/handler/langchain_stream.py,sha256=bEV9FT9K6vVBAVrB73sMhGcVzlt_OFAdT2HNzwxgR2I,810
46
46
  pygpt_net/controller/chat/handler/llamaindex_stream.py,sha256=UPx7N4TeY1XZoKJOR7NdiyitD6xW9z-MygRG20AdzVQ,1851
47
- pygpt_net/controller/chat/handler/openai_stream.py,sha256=2b2qSU4WzTQR0mU3SwK-NUUYWXQvitVO03owMoi6E5g,9173
47
+ pygpt_net/controller/chat/handler/openai_stream.py,sha256=t8l133VBgdOXUoyO4ZD3qavKQ20XxcSGYq1g__me2nc,13112
48
48
  pygpt_net/controller/chat/handler/utils.py,sha256=5B5fxQtLHv_WXU9clGHU_UTcKw1wd-94XL5GqeW7wOY,7235
49
49
  pygpt_net/controller/chat/handler/worker.py,sha256=qlCd6oCFs3iBMRvOKaD_Yhh9Ii-jhEsMbdMRt72UPTw,20317
50
50
  pygpt_net/controller/chat/handler/xai_stream.py,sha256=OVgQA-Za1y73C_BhHbUggth7HdLehSIl5jnG-_7GmKI,4303
@@ -63,7 +63,7 @@ pygpt_net/controller/config/__init__.py,sha256=ELeN62jGG4YqHRLFF1zSZPWEnyeYZISvj
63
63
  pygpt_net/controller/config/config.py,sha256=eCdCWnsHKASfURvP3UCrZUUVirdFRpWPIq8_MaTdkb8,5639
64
64
  pygpt_net/controller/config/field/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
65
  pygpt_net/controller/config/field/checkbox.py,sha256=rFmf7MqtwbofWUUTFBVOthdx7Vyq4XRy6vvF-0XZLsM,2575
66
- pygpt_net/controller/config/field/checkbox_list.py,sha256=sNJmSz2IFG6L2aCIVcPH7d70bC3VvM4SKRRyhMZJFp0,3657
66
+ pygpt_net/controller/config/field/checkbox_list.py,sha256=aRSXXD18Q927CJxDwiFVAmhHc0S-r5e4-JZNbGmYlMA,4498
67
67
  pygpt_net/controller/config/field/cmd.py,sha256=6k7gvaMXOYH-3x6joJppfmrVa_fzIHuMpYg8agx91Bg,4167
68
68
  pygpt_net/controller/config/field/combo.py,sha256=DCW8medesKAbXx48dOoMI-33C_cifISC4BOHqOECix0,3756
69
69
  pygpt_net/controller/config/field/dictionary.py,sha256=m3nSL8xAp0NRnr_rVmTZA5uTQF1lTh_07wknxdgtn6o,6443
@@ -108,7 +108,7 @@ pygpt_net/controller/launcher/launcher.py,sha256=lFPfzWF-z88FhDZ92XrEwAG_W8rVomv
108
108
  pygpt_net/controller/layout/__init__.py,sha256=0pxxzjAUa1hS27d80Q0SgDV1Uzs7A9mZrUxb1cs-oHs,510
109
109
  pygpt_net/controller/layout/layout.py,sha256=HlbfGK-_HXQrifSh5tWpPtu5JzWN2fktVmh8ofBDMfQ,13058
110
110
  pygpt_net/controller/media/__init__.py,sha256=N1UnDuteomgsBxRmVUd1Hm6UeGbHESYY9SowOhJj-YI,513
111
- pygpt_net/controller/media/media.py,sha256=Fox4li3HRGL0wI9yJ6WyaiFSBm5znuumET7roDnaJtc,4062
111
+ pygpt_net/controller/media/media.py,sha256=HpBGRiK0XEQtaTuA3MtHsbO8FsJ-hfbE2zu_BRYlsNE,4825
112
112
  pygpt_net/controller/mode/__init__.py,sha256=1Kcz0xHc2IW_if9S9eQozBUvIu69eLAe7T-Re2lJxhk,508
113
113
  pygpt_net/controller/mode/mode.py,sha256=H5hNiL6U4ZBxA5yhYWVmywINrvpNMZbI1XslLd12mdA,7979
114
114
  pygpt_net/controller/model/__init__.py,sha256=mQXq9u269D8TD3u_44J6DFFyHKkaZplk-tRFCssBGbE,509
@@ -128,7 +128,7 @@ pygpt_net/controller/plugins/settings.py,sha256=7eHGbn1DDCnLJfOGIqfdIPrIyi_QMkTm
128
128
  pygpt_net/controller/presets/__init__.py,sha256=Bb9_aAvGxQcKCW2fvG5CAJ6ZUwNYN3GaCf3BXB9eGfI,511
129
129
  pygpt_net/controller/presets/editor.py,sha256=zAdylQwl5alCXT0BMmvjiKUE-96xxE3oL3eOKGfoxnk,64620
130
130
  pygpt_net/controller/presets/experts.py,sha256=dfPKmAPO-7gaUD2ILs3lR005ir32G5vV-Sa5TGEHwOU,5820
131
- pygpt_net/controller/presets/presets.py,sha256=_GfPGqRXN_TXJmdgVnQX3d-jCH64aFGVML5S06-IQHo,26881
131
+ pygpt_net/controller/presets/presets.py,sha256=zuFeyoPrRX-8-PS7H3kyQ8jXLJE7thjMewatbDhwQWI,26968
132
132
  pygpt_net/controller/realtime/__init__.py,sha256=MhvJb5wBqcpX6uylof01qEDRdU3SepTD88sU2lXNtIQ,519
133
133
  pygpt_net/controller/realtime/manager.py,sha256=qtifO3sAtT1ROtRs9N_8t6A8_wgxOxxGl-PfLHzhdxY,1762
134
134
  pygpt_net/controller/realtime/realtime.py,sha256=Rw3sLhAaafcam5rNMZVRgds-BO40niSAyU2FbfHj4F0,10912
@@ -146,9 +146,9 @@ pygpt_net/controller/theme/theme.py,sha256=WreJOmsWdmBsG1m4LJBpfcrzg8WD-VlW95Y_M
146
146
  pygpt_net/controller/tools/__init__.py,sha256=ds63rOuwLEIe-SlY_sQkhWSdXS0lfVwseUiHkg2NTD4,509
147
147
  pygpt_net/controller/tools/tools.py,sha256=bWxdwL3J2-WHBS3MBiKsS3kTW_rQI_nS9z8-8iKifKg,2920
148
148
  pygpt_net/controller/ui/__init__.py,sha256=cxfh2SYeEDATGAZpcYDqCxYfp4KReQ1CYehevSf89EU,507
149
- pygpt_net/controller/ui/mode.py,sha256=g5zp5inOZG6tucYTLCrhw0PDAHMg6HwUSmsSYBt3Di8,10550
149
+ pygpt_net/controller/ui/mode.py,sha256=rSqxMcnNnue5K1u8NvxLc5MbV5FXx4hg24DspuXEuHE,10847
150
150
  pygpt_net/controller/ui/tabs.py,sha256=xjTg793-KG8eFs6kbNglagV4A3bRM-ujGkpz31iKgjM,30477
151
- pygpt_net/controller/ui/ui.py,sha256=LutQo60ka5SVAcjljqrN45dhM1ZiwmA6zPBXOzpdilc,9496
151
+ pygpt_net/controller/ui/ui.py,sha256=0LMQJmhUo7LlS0Om3OMRUFqT9JfNYu0glv1_CG2GzkI,10203
152
152
  pygpt_net/controller/ui/vision.py,sha256=tnzllFV2-sYDHfrP12ATY6ZKi6FcGtQofrsoKF6UcCU,2407
153
153
  pygpt_net/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
154
  pygpt_net/core/access/__init__.py,sha256=6HA7ahoksA6B8J56EnHKFIjMwIrQ0AVVWlKkzsSFOD8,510
@@ -314,7 +314,7 @@ pygpt_net/core/idx/ui/__init__.py,sha256=nfCat59itYOlE7hgn-Y5iemtkgU2NWSnKZK_ffZ
314
314
  pygpt_net/core/idx/ui/loaders.py,sha256=15-5Q5C9jGcLZkNkcqZDfAsQqwzLCZOFzHXCTGiYN6k,8732
315
315
  pygpt_net/core/idx/worker.py,sha256=ywaq96MoOKJjnohmSGNmk7Ah_iaPG4J61G99YmiXv0A,3969
316
316
  pygpt_net/core/image/__init__.py,sha256=HEXciv02RFJC3BkrzP9tvzvZlr36WYMz5v9W80JLqlQ,509
317
- pygpt_net/core/image/image.py,sha256=lx4zLQ1WB343cqJwMFTMVaZmhjjp5_XgyaSK3uVRH4g,5431
317
+ pygpt_net/core/image/image.py,sha256=xCknsdRyulidbkVPo7sIOuERCNJ57q61w5B7GqcRrIg,6446
318
318
  pygpt_net/core/info/__init__.py,sha256=SJUPrGXxdvHTpM3AyvsaD_Z_Fuzrg2cbcNevB7A6X-8,508
319
319
  pygpt_net/core/info/info.py,sha256=YJEDJnGVMmMp0sQ0tEDyri6Kr94CopcZF6L97w9dXDg,829
320
320
  pygpt_net/core/installer/__init__.py,sha256=ReDXTveTr-U9brtM1bbtdC5vU92Jjo6mVvc7bfwQl_I,513
@@ -397,7 +397,7 @@ pygpt_net/core/types/__init__.py,sha256=GHk9e0IaR7mNqD5qMNQnJxFpaXvPURy-IIkCzS7P
397
397
  pygpt_net/core/types/agent.py,sha256=74GRk_T1hSt7P2CSYjn0oTeYH3j3-ZLKsG_62Abu674,872
398
398
  pygpt_net/core/types/base.py,sha256=ZLJkuQwaeSmIkTBQMwHtW8rsTKJD9wFpaEjwMOSzNfI,638
399
399
  pygpt_net/core/types/console.py,sha256=vzYZ4fYkwK71ECJB7Qop0qcVIC6USLxxKuFN-ZweuB0,713
400
- pygpt_net/core/types/image.py,sha256=ReGIz6emB7HXOAXrL6a6jur9ODicNtR-8lG10EDT_Gs,1540
400
+ pygpt_net/core/types/image.py,sha256=qgyLChou0b_OoSXlz5xWESAGAl0CGvX_-SJE8TDDyM0,3144
401
401
  pygpt_net/core/types/mode.py,sha256=yY_6B2n8xEszbqph7mWTbgECHmJjAgal8CFNcUgyG7M,904
402
402
  pygpt_net/core/types/model.py,sha256=V8O9yipzqyTmVjzeESQ1xvZpSdRU6UYmvWJ1M2Kxs5A,549
403
403
  pygpt_net/core/types/multimodal.py,sha256=yeKLZ5MrCHU5LhWwFE-yGApt-FB59kTmElo3G7td9uw,594
@@ -420,8 +420,8 @@ pygpt_net/css_rc.py,sha256=PX6g9z5BsD-DXISuR2oq3jHcjiKfcJ4HsgcHez6wGMc,27762
420
420
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
421
421
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
422
422
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
423
- pygpt_net/data/config/config.json,sha256=CQSxjUAFACBMpzSfaWQ6PoNbJZTd0HQf8TmWfUM29hg,30914
424
- pygpt_net/data/config/models.json,sha256=mzURScFVTIF_lLclU7ANX8sKZiPvEmLwYNzGmR9q9ac,118192
423
+ pygpt_net/data/config/config.json,sha256=xRrvYm3nPH0zkm4rhgcnizjJfSfbf-ZxMYMO14ZSagQ,30937
424
+ pygpt_net/data/config/models.json,sha256=VGOT1Nd3KBRWw1BTyruuc4b31uD2CQQK2uefhDITTA0,135432
425
425
  pygpt_net/data/config/modes.json,sha256=IpjLOm428_vs6Ma9U-YQTNKJNtZw-qyM1lwhh73xl1w,2111
426
426
  pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
427
427
  pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
@@ -1730,14 +1730,14 @@ pygpt_net/data/js/katex/katex.min.js,sha256=KLASOtKS2x8pUxWVzCDmlWJ4jhuLb0vtrgak
1730
1730
  pygpt_net/data/js/markdown-it/markdown-it-katex.min.js,sha256=-wMst2a9i8Borapa9_hxPvpQysfFE-yph8GrBmDoA68,1670
1731
1731
  pygpt_net/data/js/markdown-it/markdown-it.min.js,sha256=OMcKHnypGrQOLZ5uYBKYUacX7Rx9Ssu91Bv5UDeRz2g,123618
1732
1732
  pygpt_net/data/languages.csv,sha256=fvtER6vnTXFHQslCh-e0xCfZDQ-ijgW4GYpOJG4U7LY,8289
1733
- pygpt_net/data/locale/locale.de.ini,sha256=RMzare9uCDlpY-dYyQ_mWT0M1OHiQNFjob1HHkuNfUM,112365
1734
- pygpt_net/data/locale/locale.en.ini,sha256=jFBsSmUqyXW93BuSpHJG_6PUV338PHy0K1VFafa7x_0,106494
1735
- pygpt_net/data/locale/locale.es.ini,sha256=Sago-llgu_P51sqLFLir2Yggzlx8KYzXJ8fkN94TJi0,112908
1736
- pygpt_net/data/locale/locale.fr.ini,sha256=mRBWkf5l-Gs6AK8xG04cQHaKram9A9a2Z5CXT07GqMY,115773
1737
- pygpt_net/data/locale/locale.it.ini,sha256=fDhKdPyasgaDyKsfu_urajV5NmuFsXoSKjXJxH7F62k,110607
1738
- pygpt_net/data/locale/locale.pl.ini,sha256=3SFuZYp95N_53Hfr4rtXUmBTtOxJ_Hd-0t4l5iNq-28,110273
1739
- pygpt_net/data/locale/locale.uk.ini,sha256=M4HJeGm4o2jfVL_1xuY7vDqAv9iVFDHZZkMhwISyLcY,153676
1740
- pygpt_net/data/locale/locale.zh.ini,sha256=aNS8-aaBabGChCk6IRNjSoa0mcRodIundffDe0AV-1w,98662
1733
+ pygpt_net/data/locale/locale.de.ini,sha256=V8wTMWj3lU-TYLBCeToz4QHMhADUcTmEKRPjw5ku6Jg,112488
1734
+ pygpt_net/data/locale/locale.en.ini,sha256=leyB27nPD9PlDYygvl_RBSI8Y1QZO2gu_2djrIz3_LI,106612
1735
+ pygpt_net/data/locale/locale.es.ini,sha256=1tT0MzmIgiajZ-4Bl33WiVd9J7maso1TKiqBU7Va_Es,113041
1736
+ pygpt_net/data/locale/locale.fr.ini,sha256=dRl27nFfK-NjmIlMlhLPSCl_wbWR12pWYf88ctnY6Nc,115910
1737
+ pygpt_net/data/locale/locale.it.ini,sha256=I_Ni8j2h2OsPOtvMR-cTeXOtQIPPr4HPG0NnnKzjVLQ,110737
1738
+ pygpt_net/data/locale/locale.pl.ini,sha256=vHjfw1Bctg9LCrpMkb9blPU0iTByixH0YQrexLb7-bU,110400
1739
+ pygpt_net/data/locale/locale.uk.ini,sha256=UYiVIvOlhywEvg3j3WKsyJ8X8ZGTfAZFs1zEjZDVkQc,153855
1740
+ pygpt_net/data/locale/locale.zh.ini,sha256=hGAOGHY5-nOM-oNP98UuH8n9rsbpHyFNe49QGvkEgPI,98783
1741
1741
  pygpt_net/data/locale/plugin.agent.de.ini,sha256=BY28KpfFvgfVYJzcw2o5ScWnR4uuErIYGyc3NVHlmTw,1714
1742
1742
  pygpt_net/data/locale/plugin.agent.en.ini,sha256=HwOWCI7e8uzlIgyRWRVyr1x6Xzs8Xjv5pfEc7jfLOo4,1728
1743
1743
  pygpt_net/data/locale/plugin.agent.es.ini,sha256=bqaJQne8HPKFVtZ8Ukzo1TSqVW41yhYbGUqW3j2x1p8,1680
@@ -1935,7 +1935,7 @@ pygpt_net/item/calendar_note.py,sha256=ab2cegCxr-p9WU_r3FkCNg0TwLHhfV4--O4Gei-Ls
1935
1935
  pygpt_net/item/ctx.py,sha256=kHxnujf7vzVP3CYjSe6PFV1Bf7DE2fozlGveA7GX7jY,25783
1936
1936
  pygpt_net/item/index.py,sha256=NTDBgNjiyaixTFJu_1oBqoVajf92c2U1Oa3BKQ11poU,1920
1937
1937
  pygpt_net/item/mode.py,sha256=0uPU7ciqVLaEcijUA-D73ABMoLUFtgPytdXUuwqtews,688
1938
- pygpt_net/item/model.py,sha256=1s6aRxLs7Y8bgpVef7Yv7_ERmvjePjwNQLrZ0p7KHhU,10152
1938
+ pygpt_net/item/model.py,sha256=sOKM2Y2pzbMKgomqiMhc_anSchG2CJWInAXUeZZqlLo,10104
1939
1939
  pygpt_net/item/notepad.py,sha256=7v3A3HJjew0IoFM65Li0xfoSEdJzfEUZM1IH1ND0Bxw,1805
1940
1940
  pygpt_net/item/preset.py,sha256=nkLoyfHoZnjoqKKynDo0alJDb_o8BFxTZRYk7_2uQss,8991
1941
1941
  pygpt_net/item/prompt.py,sha256=xequZDTEv4eKjmC5OLqZnNrbyy0YA4LHe0k2RpPiBw0,1745
@@ -2154,18 +2154,18 @@ pygpt_net/provider/api/anthropic/chat.py,sha256=E13TzVCd1F-WqqzFWz8zEMh935VgIcnE
2154
2154
  pygpt_net/provider/api/anthropic/image.py,sha256=BrWrGsz_f2bAG8f5s25YdwtV6HJKLB6Tk2xhtD85RMc,935
2155
2155
  pygpt_net/provider/api/anthropic/tools.py,sha256=eLnxTsH_tgrcDBsAD4--j8Tbn2e1863VogFMzKqedNY,10098
2156
2156
  pygpt_net/provider/api/anthropic/vision.py,sha256=amP0FNHrJM-iSVO4j0AkVDYo1JFdmg0e5IqTuaEqeCM,4377
2157
- pygpt_net/provider/api/google/__init__.py,sha256=T0PQtyM2m0j-_cHVY7PksBXrMBV3XWvNe0JU3cSLQzI,13026
2157
+ pygpt_net/provider/api/google/__init__.py,sha256=E4O_dtrYhkYr2j09dkqHYVNdU_k-zZvF8-YmKPX5Q-M,13458
2158
2158
  pygpt_net/provider/api/google/audio.py,sha256=Ymq_Q3WofC-8TfYOGu5NmNuRW_omvl8UCS3Q0WEBxnA,4149
2159
2159
  pygpt_net/provider/api/google/chat.py,sha256=zD3vcYRS6uJWJ__3qrUo2shyFpf6kQD2utxJe9MjRHY,23082
2160
- pygpt_net/provider/api/google/image.py,sha256=h61Fwjy2bTia1efRm07G_pjyRgWcT253HwaHCCU0ZCU,17387
2160
+ pygpt_net/provider/api/google/image.py,sha256=6_THmv9J1u_bZ7ufrAHelSiY-5vjyN1ImlR8avr5v9Y,22491
2161
2161
  pygpt_net/provider/api/google/music.py,sha256=pxLn-7ATTMvX5loCTX_H6Uq69pcTo4Df8sn69YyzelQ,14394
2162
2162
  pygpt_net/provider/api/google/realtime/__init__.py,sha256=Ism0i9dihgxYuzQHgA6vzmsswZnBOAvVqQp0j5G2JLQ,519
2163
2163
  pygpt_net/provider/api/google/realtime/client.py,sha256=w3aYhj4PSXBX-eIginaofWTRWe2m4NydM9iKOk-6Y58,80131
2164
2164
  pygpt_net/provider/api/google/realtime/realtime.py,sha256=2I3rjeswcIk2SZbTtHqKVZlPpe-KJ1fPwyWfE4MPsMY,7360
2165
2165
  pygpt_net/provider/api/google/tools.py,sha256=YtrnkTQb8NrKpB6MfdYEqq_6Vhz-250eJNDKRhtmD_k,8856
2166
- pygpt_net/provider/api/google/video.py,sha256=_D844RPVle9LJdPwVOUhWqwA1TGrM-_LamFj8sEtNeo,14439
2166
+ pygpt_net/provider/api/google/video.py,sha256=-0lXGuHxvIut08L22uo4PkJKI5UaKjT7ZHv46Z87LC4,15721
2167
2167
  pygpt_net/provider/api/google/vision.py,sha256=yWeA86v5FPvhm5rYiNZJ3cR9KdzYQp_AdGd1tyldphc,4026
2168
- pygpt_net/provider/api/openai/__init__.py,sha256=jaoU_4jd5bkVaJB7cfvma_LDXwDyvb-nePttrrUpnGQ,11796
2168
+ pygpt_net/provider/api/openai/__init__.py,sha256=a8MME_8AIa1g2IlFJ6xKnW4XawSB7RxBlBgQ9hvUKX4,12225
2169
2169
  pygpt_net/provider/api/openai/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2170
2170
  pygpt_net/provider/api/openai/agents/client.py,sha256=opH2DnYPVRuWvc284AMjJBWUhipV8hdWcs3yqWA2g7s,2372
2171
2171
  pygpt_net/provider/api/openai/agents/computer.py,sha256=wilD84b9Wl20ZRbBVgW-97k-a-9fYrMb2fbtQZoTqYk,11764
@@ -2189,6 +2189,7 @@ pygpt_net/provider/api/openai/store.py,sha256=8H2SQH9wU9Yoeai6gqajbJ1N33CSv26IA5
2189
2189
  pygpt_net/provider/api/openai/summarizer.py,sha256=vuJz6mj9F9Psiat0d-fn1zNGgXc-WkXJyi0jrvijO6E,2978
2190
2190
  pygpt_net/provider/api/openai/tools.py,sha256=Oh9mnGIXfnwoRTx6f-9ZItD-v3loyr4OtcvhmgroyrY,3146
2191
2191
  pygpt_net/provider/api/openai/utils.py,sha256=O0H0EPb4lXUMfE1bFdWB56yuWLv7M5owVIGWRyDDv-E,855
2192
+ pygpt_net/provider/api/openai/video.py,sha256=-3G8u0JeHBcoUcrobe5PO3vLMXmI7v5Gc0Z63-SiPqQ,22487
2192
2193
  pygpt_net/provider/api/openai/vision.py,sha256=dsG-pAr1MP-A1aQLc3Yn2QzPNwMlPGQEi4LM1ry3YY4,12883
2193
2194
  pygpt_net/provider/api/openai/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2194
2195
  pygpt_net/provider/api/openai/worker/assistants.py,sha256=z1fZzl59FYMVXxv48r9JVIzSCFgLzYOeKXhreZcIzO8,21538
@@ -2249,7 +2250,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=QDclQCQdr4QyRIqjgGX
2249
2250
  pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
2250
2251
  pygpt_net/provider/core/config/base.py,sha256=cbvzbMNqL2XgC-36gGubnU37t94AX7LEw0lecb2Nm80,1365
2251
2252
  pygpt_net/provider/core/config/json_file.py,sha256=GCcpCRQnBiSLWwlGbG9T3ZgiHkTfp5Jsg2KYkZcakBw,6789
2252
- pygpt_net/provider/core/config/patch.py,sha256=FZOljkngnZr5APXnTCpDVyqPKdSrPYeS0y74jhU6HRY,7688
2253
+ pygpt_net/provider/core/config/patch.py,sha256=--SK4-Nryp_h_37wqKpLK0d5DeQpbQ4A5W565-aPGLk,7938
2253
2254
  pygpt_net/provider/core/config/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2254
2255
  pygpt_net/provider/core/config/patches/patch_before_2_6_42.py,sha256=_IcpB3DdiD01P2_jpt2ZvUs8WJRIeO6t5oQeNxY6_eE,126808
2255
2256
  pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
@@ -2280,7 +2281,7 @@ pygpt_net/provider/core/mode/patch.py,sha256=VS2KCYW05jxLd-lcStNY1k4fHKUUrVVLTdR
2280
2281
  pygpt_net/provider/core/model/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
2281
2282
  pygpt_net/provider/core/model/base.py,sha256=L1x2rHha8a8hnCUYxZr88utay1EWEx5qBXW_2acpAN0,1319
2282
2283
  pygpt_net/provider/core/model/json_file.py,sha256=l74l_n5PEHNp-FsoHtO9LHflz3RFKwDwKwOKN0stgZw,8418
2283
- pygpt_net/provider/core/model/patch.py,sha256=XOzLtk3ath6cQP9y6kco1zKcU_KS6APA3miaedsBzMg,2231
2284
+ pygpt_net/provider/core/model/patch.py,sha256=y6hBeQX6dCqQXWPpsxZnERZwHJ15E6pJelymyubz2rY,3343
2284
2285
  pygpt_net/provider/core/model/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2285
2286
  pygpt_net/provider/core/model/patches/patch_before_2_6_42.py,sha256=4z10uc4NnmCCL9AYWrXfzi1Xet5OZFjc7K-Nf0s4T1s,37729
2286
2287
  pygpt_net/provider/core/notepad/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
@@ -2399,6 +2400,7 @@ pygpt_net/provider/vector_stores/chroma.py,sha256=gLNI0MBuwLxTBvebz_WtyM12EEQN1g
2399
2400
  pygpt_net/provider/vector_stores/ctx_attachment.py,sha256=jYz2rcNkh3zdr3r1t9dRMTGY54ugmFCyHEjPW4jnF-Y,3417
2400
2401
  pygpt_net/provider/vector_stores/elasticsearch.py,sha256=qjgbTcoPfr-nNoU1415UEdLxp3vXVozWUR8d_EBety0,3241
2401
2402
  pygpt_net/provider/vector_stores/pinecode.py,sha256=gWwpISAcYbBeWguEIAcpUX1VSRCKHqLPmMwEZJ5nqQM,5304
2403
+ pygpt_net/provider/vector_stores/qdrant.py,sha256=rPqCbSULvGLH4scpk4Hcwb9It983_DKQaL6wvASSuc4,3453
2402
2404
  pygpt_net/provider/vector_stores/redis.py,sha256=UHPYxm_INYIcXy-ivxEXjTmkqfN2uQcsIBgfv7XuBOQ,3274
2403
2405
  pygpt_net/provider/vector_stores/simple.py,sha256=fcjBual9BySrNz8FzqGwyzT1YDiUdZmhlQ3v3qfdEiQ,2681
2404
2406
  pygpt_net/provider/vector_stores/temp.py,sha256=zUNI0ujN6KNGuodIghZprNR2BX3kNgIXR88CNsWEAwo,4603
@@ -2528,7 +2530,7 @@ pygpt_net/ui/layout/toolbox/mode.py,sha256=MfVunjZZ3Wi0o4sbWBqg74c2-W6BNDHr3ylZe
2528
2530
  pygpt_net/ui/layout/toolbox/model.py,sha256=OxcxSyFCQ3z6XAwj991X4KiSb78Upfn4v4m3991yvsw,1707
2529
2531
  pygpt_net/ui/layout/toolbox/presets.py,sha256=dOpZBcbE6ygIOjLrj-O5O0Cj6IIoH7Y5SerOYmBTpI4,8150
2530
2532
  pygpt_net/ui/layout/toolbox/prompt.py,sha256=subUUZJgkCmvSRekZcgVYs6wzl-MYPBLXKTs0wcJFgw,2663
2531
- pygpt_net/ui/layout/toolbox/raw.py,sha256=E1ERp3ITLXtbulo7i-JaBYx4COA4ipRemFfJztYhNFE,1492
2533
+ pygpt_net/ui/layout/toolbox/raw.py,sha256=Uvkk0QnrOIZ9sHJ3EnDzTRaWDLNC6cdgYyICPI8lJCk,1803
2532
2534
  pygpt_net/ui/layout/toolbox/split.py,sha256=Hs9hZPciLXCRV_izoayrBlJSCuTGumdNki6z1giWUUo,1696
2533
2535
  pygpt_net/ui/layout/toolbox/toolbox.py,sha256=VHzyzm7LjcAN30h111SEP6fdXwi84DYyf8CE1X3pdt8,2799
2534
2536
  pygpt_net/ui/layout/toolbox/video.py,sha256=JyDVkJIh1m6RSbJFGQqIBKrsQgbfx2O08ybJ7bEZyWg,1477
@@ -2634,7 +2636,7 @@ pygpt_net/ui/widget/node_editor/utils.py,sha256=mD46jTdJ3gB7TyCSIx2CnUsBPBBE3ucm
2634
2636
  pygpt_net/ui/widget/node_editor/view.py,sha256=cTuA9b9NuWFs2bHlAvDCyMdbdboE9uq-b4NXq4xejcg,13800
2635
2637
  pygpt_net/ui/widget/option/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2636
2638
  pygpt_net/ui/widget/option/checkbox.py,sha256=duzgGPOVbHFnWILVEu5gDUa6sHeDOvQaaj9IsY-HbU8,3954
2637
- pygpt_net/ui/widget/option/checkbox_list.py,sha256=j3lks2qPaZZdfZEV9EbN5kH8gEquVZFUDF_rq7uxjn0,5770
2639
+ pygpt_net/ui/widget/option/checkbox_list.py,sha256=SgnkLTlVZCcU3ehqAfi_w28x693w_AeNsK-_0k-uOwA,6198
2638
2640
  pygpt_net/ui/widget/option/cmd.py,sha256=Ii_i9hR4oRmG4-TPZ-FHuTv3I1vL96YLcDP2QSKmAbI,5800
2639
2641
  pygpt_net/ui/widget/option/combo.py,sha256=UZH-SKfnRHHHoKFpLBgOTykBMOXYQ9gph0e3vrg3WAQ,11452
2640
2642
  pygpt_net/ui/widget/option/dictionary.py,sha256=67F-BGOMuH-MCEvdvE-cVqkyE8xR8euHH5zSkhRqUco,13517
@@ -2667,8 +2669,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=sVRSmudPwPfjK2h7q-e6Ae4b-677BHLe20t-x
2667
2669
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2668
2670
  pygpt_net/ui/widget/vision/camera.py,sha256=DCx7h1nHruuUkU0Tw8Ay4OUVoNJhkuLsW4hIvGF5Skw,6985
2669
2671
  pygpt_net/utils.py,sha256=r-Dum4brfBaZaHJr-ux86FfdMuMHFwyuUL2bEFirdhc,14649
2670
- pygpt_net-2.6.65.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2671
- pygpt_net-2.6.65.dist-info/METADATA,sha256=4Er9u9Z2qJz_ZxLTHehE4qEKGQebM8AKXMEE51dbsE0,169035
2672
- pygpt_net-2.6.65.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2673
- pygpt_net-2.6.65.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2674
- pygpt_net-2.6.65.dist-info/RECORD,,
2672
+ pygpt_net-2.6.66.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2673
+ pygpt_net-2.6.66.dist-info/METADATA,sha256=R9tH-lPAuM7uGifTA3MXbYU_s4BZhDW8BC9GFszRyYQ,170744
2674
+ pygpt_net-2.6.66.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2675
+ pygpt_net-2.6.66.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2676
+ pygpt_net-2.6.66.dist-info/RECORD,,