pygpt-net 2.6.67__py3-none-any.whl → 2.7.1__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 (78) hide show
  1. pygpt_net/CHANGELOG.txt +20 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/controller/assistant/assistant.py +13 -8
  4. pygpt_net/controller/assistant/batch.py +29 -15
  5. pygpt_net/controller/assistant/files.py +19 -14
  6. pygpt_net/controller/assistant/store.py +63 -41
  7. pygpt_net/controller/attachment/attachment.py +45 -35
  8. pygpt_net/controller/chat/attachment.py +50 -39
  9. pygpt_net/controller/config/field/dictionary.py +26 -14
  10. pygpt_net/controller/ctx/common.py +27 -17
  11. pygpt_net/controller/ctx/ctx.py +185 -101
  12. pygpt_net/controller/files/files.py +101 -41
  13. pygpt_net/controller/idx/indexer.py +87 -31
  14. pygpt_net/controller/kernel/kernel.py +13 -2
  15. pygpt_net/controller/mode/mode.py +3 -3
  16. pygpt_net/controller/model/editor.py +70 -15
  17. pygpt_net/controller/model/importer.py +153 -54
  18. pygpt_net/controller/painter/common.py +43 -11
  19. pygpt_net/controller/painter/painter.py +2 -2
  20. pygpt_net/controller/presets/experts.py +68 -15
  21. pygpt_net/controller/presets/presets.py +72 -36
  22. pygpt_net/controller/settings/profile.py +76 -35
  23. pygpt_net/controller/settings/workdir.py +70 -39
  24. pygpt_net/core/assistants/files.py +20 -18
  25. pygpt_net/core/filesystem/actions.py +111 -10
  26. pygpt_net/core/filesystem/filesystem.py +72 -1
  27. pygpt_net/core/filesystem/packer.py +161 -1
  28. pygpt_net/core/idx/idx.py +12 -11
  29. pygpt_net/core/idx/worker.py +13 -1
  30. pygpt_net/core/image/image.py +2 -2
  31. pygpt_net/core/models/models.py +4 -4
  32. pygpt_net/core/profile/profile.py +13 -3
  33. pygpt_net/core/video/video.py +2 -3
  34. pygpt_net/data/config/config.json +3 -3
  35. pygpt_net/data/config/models.json +3 -3
  36. pygpt_net/data/css/style.dark.css +45 -0
  37. pygpt_net/data/css/style.light.css +46 -0
  38. pygpt_net/data/locale/locale.de.ini +5 -1
  39. pygpt_net/data/locale/locale.en.ini +5 -1
  40. pygpt_net/data/locale/locale.es.ini +5 -1
  41. pygpt_net/data/locale/locale.fr.ini +5 -1
  42. pygpt_net/data/locale/locale.it.ini +5 -1
  43. pygpt_net/data/locale/locale.pl.ini +6 -2
  44. pygpt_net/data/locale/locale.uk.ini +5 -1
  45. pygpt_net/data/locale/locale.zh.ini +5 -1
  46. pygpt_net/provider/api/openai/__init__.py +4 -2
  47. pygpt_net/provider/core/config/patch.py +17 -1
  48. pygpt_net/tools/image_viewer/tool.py +17 -0
  49. pygpt_net/tools/text_editor/tool.py +9 -0
  50. pygpt_net/ui/__init__.py +2 -2
  51. pygpt_net/ui/dialog/preset.py +1 -0
  52. pygpt_net/ui/layout/ctx/ctx_list.py +16 -6
  53. pygpt_net/ui/layout/toolbox/image.py +2 -1
  54. pygpt_net/ui/layout/toolbox/indexes.py +2 -0
  55. pygpt_net/ui/layout/toolbox/video.py +5 -1
  56. pygpt_net/ui/main.py +3 -1
  57. pygpt_net/ui/widget/calendar/select.py +3 -3
  58. pygpt_net/ui/widget/draw/painter.py +238 -51
  59. pygpt_net/ui/widget/filesystem/explorer.py +1164 -142
  60. pygpt_net/ui/widget/lists/assistant.py +185 -24
  61. pygpt_net/ui/widget/lists/assistant_store.py +245 -42
  62. pygpt_net/ui/widget/lists/attachment.py +230 -47
  63. pygpt_net/ui/widget/lists/attachment_ctx.py +189 -33
  64. pygpt_net/ui/widget/lists/base_list_combo.py +2 -2
  65. pygpt_net/ui/widget/lists/context.py +1253 -70
  66. pygpt_net/ui/widget/lists/experts.py +110 -8
  67. pygpt_net/ui/widget/lists/model_editor.py +217 -14
  68. pygpt_net/ui/widget/lists/model_importer.py +125 -6
  69. pygpt_net/ui/widget/lists/preset.py +460 -71
  70. pygpt_net/ui/widget/lists/profile.py +149 -27
  71. pygpt_net/ui/widget/lists/uploaded.py +230 -38
  72. pygpt_net/ui/widget/option/combo.py +1211 -33
  73. pygpt_net/ui/widget/option/dictionary.py +35 -7
  74. {pygpt_net-2.6.67.dist-info → pygpt_net-2.7.1.dist-info}/METADATA +22 -57
  75. {pygpt_net-2.6.67.dist-info → pygpt_net-2.7.1.dist-info}/RECORD +78 -78
  76. {pygpt_net-2.6.67.dist-info → pygpt_net-2.7.1.dist-info}/LICENSE +0 -0
  77. {pygpt_net-2.6.67.dist-info → pygpt_net-2.7.1.dist-info}/WHEEL +0 -0
  78. {pygpt_net-2.6.67.dist-info → pygpt_net-2.7.1.dist-info}/entry_points.txt +0 -0
@@ -290,4 +290,50 @@ NodeEditor {{
290
290
  /* Status Bar */
291
291
  #StatusBarTimer {{
292
292
  color: #5d5d5d !important;
293
+ }}
294
+
295
+ /* ComboBox */
296
+ QComboBox QAbstractItemView {{
297
+ border: 0px;
298
+ border-radius: 10px;
299
+ outline: 0;
300
+ }}
301
+
302
+ QListView#ComboPopupList {{
303
+ border-radius: 10px;
304
+ outline: 0;
305
+ border: 0px solid #d6d6d6;
306
+ }}
307
+
308
+ QComboBox QAbstractItemView::item,
309
+ QListView#ComboPopupList::item {{
310
+ min-height: 20px;
311
+ padding: 8px 32px;
312
+ margin: 0;
313
+ color: #000;
314
+ }}
315
+
316
+ QComboBox QAbstractItemView::item:selected,
317
+ QListView#ComboPopupList::item:selected {{
318
+ background: #fff;
319
+ color: #000;
320
+ selection-color: #000;
321
+ font-weight: bold;
322
+ }}
323
+
324
+ QListView#ComboPopupList::item:disabled {{
325
+ color: #3f3f3f;
326
+ background: #d9d9d9;
327
+ padding: 15px;
328
+ }}
329
+
330
+ QComboBox QAbstractItemView::item:hover,
331
+ QListView#ComboPopupList::item:hover {{ }}
332
+ QWidget#ComboPopupWindow {{
333
+ background: red;
334
+ border: 0;
335
+ }}
336
+ QListView#ComboPopupList > QWidget#ComboPopupViewport {{
337
+ background: red;
338
+ border-radius: 10px;
293
339
  }}
@@ -16,6 +16,7 @@ action.ctx.indexed = Zuletzt indiziert am
16
16
  action.ctx.new = Neuer Kontext...
17
17
  action.ctx.new.in_group = Neuer Kontext in: {group}...
18
18
  action.ctx_reset = Zurücksetzen (löschen)
19
+ action.cut = Schneiden
19
20
  action.delete = Löschen
20
21
  action.download = Herunterladen
21
22
  action.duplicate = Duplizieren
@@ -26,6 +27,7 @@ action.group.new = Neue Gruppe
26
27
  action.group.remove = Aus Gruppe entfernen
27
28
  action.idx = Index with LlamaIndex...
28
29
  action.idx.remove = Entfernen aus
30
+ action.import = Importieren
29
31
  action.mkdir = Verzeichnis erstellen...
30
32
  action.move_to = Verschieben nach
31
33
  action.new = Neu...
@@ -36,6 +38,7 @@ action.open_dir_src = Quellverzeichnis öffnen
36
38
  action.open_dir_storage = Speicherverzeichnis öffnen
37
39
  action.open_new_tab = In neuem Tab öffnen
38
40
  action.open_new_window = Öffnen (neues Fenster)
41
+ action.pack = Einpacken
39
42
  action.paste = Einfügen
40
43
  action.pin = Oben anheften
41
44
  action.preview = Vorschau
@@ -64,6 +67,7 @@ action.tab.move.right = In die rechte Spalte verschieben
64
67
  action.touch = Datei erstellen...
65
68
  action.truncate = Alles löschen
66
69
  action.undo = Rückgängig
70
+ action.unpack = Auspacken
67
71
  action.unpin = Loslösen
68
72
  action.upload = Dateien hier hochladen...
69
73
  action.use = Verwenden
@@ -1570,7 +1574,7 @@ tip.input.attachments.ctx = Poniżej znajdują się załączone i zindeksowane z
1570
1574
  tip.input.attachments.uploaded = Hier ist eine Liste von Dateien, die im Assistant-Modus auf den Server hochgeladen wurden. Diese Dateien befinden sich auf einem entfernten Server und nicht auf Ihrem lokalen Computer, sodass das Modell sie mit extern auf dem entfernten Server verfügbaren Werkzeugen verwenden und analysieren kann.
1571
1575
  tip.output.tab.calendar = Mit dem Kalender können Sie zu ausgewählten Gesprächen von einem bestimmten Tag navigieren. Klicken Sie in den Kalender auf einen Tag, um die Anzeige des Chat-Verlaufs auf diesen Tag zu beschränken. Sie können auch Tagesnotizen erstellen und ihnen farbige Etiketten zuweisen.
1572
1576
  tip.output.tab.draw = Sie können das Zeichenwerkzeug für schnelle Skizzen oder das Erfassen eines Bildes von der Kamera verwenden, und dann solche Bilder im Vision-Modus zur Analyse an die KI senden. Sie können hier ein Bild mit der Kamera erfassen oder ein Bild von der Festplatte öffnen. Wenn Sie ein Bild verwenden, wird es als Anhang in der gesendeten Nachricht enthalten sein.
1573
- tip.output.tab.files = Dieses Verzeichnis mit Arbeitsdateien befindet sich auf Ihrer Festplatte. Die Dateien hier sind für KI zum Lesen zugänglich. KI kann Dateien lesen und schreiben sowie Code aus diesem Verzeichnis ausführen. Sie können dieses Verzeichnis lokal auf Ihrem System öffnen und beliebige Dateien hierhin verschieben. Sie können auch die Dateien mit Llama-Index indizieren, damit sie als zusätzliche Wissens Quelle dienen.
1577
+ tip.output.tab.files = Dieses Verzeichnis mit Arbeitsdateien befindet sich auf Ihrer Festplatte. Die Dateien hier sind für KI zum Lesen zugänglich. KI kann Dateien lesen und schreiben sowie Code aus diesem Verzeichnis ausführen. Sie können dieses Verzeichnis lokal auf Ihrem System öffnen und beliebige Dateien hierhin verschieben. Sie können auch die Dateien mit Llama-Index indizieren, damit sie als zusätzliche Wissens Quelle dienen. Verwenden Sie CTRL/SHIFT für die Mehrfachauswahl.
1574
1578
  tip.output.tab.notepad = Der Notizblock kann als Werkzeug zum Notieren und Speichern von Informationen dienen. Sie können hier beliebigen Text speichern, Text aus dem Chatfenster kopieren und alle Informationen werden automatisch gespeichert. Sie können weitere Notizblöcke erstellen, indem Sie einen neuen Tab erstellen.
1575
1579
  tip.tokens.ctx = Kontext (Erinnerung): in Gebrauch / alle - Token
1576
1580
  tip.tokens.input = Token: Benutzereingabeaufforderung + Systemaufforderung + Kontext + extra + Anhänge = Summe / Maximum
@@ -16,6 +16,7 @@ action.ctx.indexed = Last indexed at
16
16
  action.ctx.new = New context...
17
17
  action.ctx.new.in_group = New context in: {group}...
18
18
  action.ctx_reset = Reset (clear)
19
+ action.cut = Cut
19
20
  action.delete = Delete
20
21
  action.download = Download
21
22
  action.duplicate = Duplicate
@@ -26,6 +27,7 @@ action.group.new = New group
26
27
  action.group.remove = Remove from group
27
28
  action.idx = Index with LlamaIndex...
28
29
  action.idx.remove = Remove from
30
+ action.import = Import
29
31
  action.mkdir = Create directory...
30
32
  action.move_to = Move to
31
33
  action.new = New...
@@ -36,6 +38,7 @@ action.open_dir_src = Open Source Directory
36
38
  action.open_dir_storage = Open Storage directory
37
39
  action.open_new_tab = Open in a new tab
38
40
  action.open_new_window = Open (new window)
41
+ action.pack = Pack
39
42
  action.paste = Paste
40
43
  action.pin = Pin on top
41
44
  action.preview = Preview
@@ -64,6 +67,7 @@ action.tab.move.right = Move to right column
64
67
  action.touch = Create file...
65
68
  action.truncate = Truncate
66
69
  action.undo = Undo
70
+ action.unpack = Unpack
67
71
  action.unpin = Unpin
68
72
  action.upload = Upload files here...
69
73
  action.use = Use
@@ -1649,7 +1653,7 @@ tip.input.attachments.ctx = Below are the uploaded and indexed attachments avail
1649
1653
  tip.input.attachments.uploaded = Here is a list of files uploaded to the server in Assistant mode. These files are located on a remote server, not on your local computer, so the model can use and analyze them using tools available externally on the remote server.
1650
1654
  tip.output.tab.calendar = Using the calendar, you can navigate back to selected conversations from a specific day. Click on a day in the calendar to limit the display of chat history to that day. You can also create day notes and assign them colorful labels.
1651
1655
  tip.output.tab.draw = You can use the drawing tool for quick sketching or capturing an image from the camera, and then send such images to the AI in Vision mode for analysis. You can capture an image with the camera here or open an image from the disk. When using an image, it will be included in the sent message as an attachment.
1652
- tip.output.tab.files = This working files directory is on your disk. The files here are accessible for AI. AI can write and read files, as well as run code from this directory. You can open this directory locally on your system and place any files here. You can also index the files from here with LlamaIndex, so they serve as an additional knowledge source.
1656
+ tip.output.tab.files = This working files directory is on your disk. The files here are accessible for AI. AI can write and read files, as well as run code from this directory. You can open this directory locally on your system and place any files here. You can also index the files from here with LlamaIndex, so they serve as an additional knowledge source. Use CTRL/SHIFT for multiple selection.
1653
1657
  tip.output.tab.notepad = The notepad can serve as a tool for taking notes and storing information. You can keep any text here, copy text from the chat window, and all information will be automatically saved. You can create more notepads by creating a new Tab.
1654
1658
  tip.tokens.ctx = Context (memory): in use / all - tokens
1655
1659
  tip.tokens.input = Tokens: input prompt + system prompt + context + extra + attachments = sum / max
@@ -16,6 +16,7 @@ action.ctx.indexed = Última indexación el
16
16
  action.ctx.new = Nuevo contexto...
17
17
  action.ctx.new.in_group = Nuevo contexto en: {group}...
18
18
  action.ctx_reset = Restablecer (borrar)
19
+ action.cut = Cortar
19
20
  action.delete = Eliminar
20
21
  action.download = Descargar
21
22
  action.duplicate = Duplicar
@@ -26,6 +27,7 @@ action.group.new = Nuevo grupo
26
27
  action.group.remove = Quitar del grupo
27
28
  action.idx = Indexar con LlamaIndex...
28
29
  action.idx.remove = Eliminar de
30
+ action.import = Importar
29
31
  action.mkdir = Crear directorio...
30
32
  action.move_to = Mover a
31
33
  action.new = Nuevo...
@@ -36,6 +38,7 @@ action.open_dir_src = Abrir directorio fuente
36
38
  action.open_dir_storage = Abrir directorio de almacenamiento
37
39
  action.open_new_tab = Abrir en una nueva pestaña
38
40
  action.open_new_window = Abrir (nueva ventana)
41
+ action.pack = Empaquetar
39
42
  action.paste = Pegar
40
43
  action.pin = Fijar en la parte superior
41
44
  action.preview = Vista previa
@@ -64,6 +67,7 @@ action.tab.move.right = Mover a la columna derecha
64
67
  action.touch = Crear archivo...
65
68
  action.truncate = Borrar todo
66
69
  action.undo = Deshacer
70
+ action.unpack = Desempaquetar
67
71
  action.unpin = Desanclar
68
72
  action.upload = Sube archivos aquí...
69
73
  action.use = Usar
@@ -1571,7 +1575,7 @@ tip.input.attachments.ctx = A continuación se detallan los archivos adjuntos su
1571
1575
  tip.input.attachments.uploaded = Aquí tienes una lista de archivos subidos al servidor en el modo Asistente. Estos archivos están ubicados en un servidor remoto, no en tu computadora local, por lo que el modelo puede usarlos y analizarlos utilizando herramientas disponibles externamente en el servidor remoto.
1572
1576
  tip.output.tab.calendar = Usando el calendario, puedes navegar de vuelta a conversaciones seleccionadas de un día específico. Haz clic en un día en el calendario para limitar la visualización del historial de chat a ese día. También puedes crear notas diarias y asignarles etiquetas de colores.
1573
1577
  tip.output.tab.draw = Puedes usar la herramienta de dibujo para hacer bocetos rápidos o capturar una imagen de la cámara, y luego enviar dichas imágenes a la IA en modo Visión para su análisis. Puedes capturar una imagen con la cámara aquí o abrir una imagen desde el disco. Al usar una imagen, se incluirá en el mensaje enviado como un adjunto.
1574
- tip.output.tab.files = Este directorio de archivos de trabajo se encuentra en tu disco. Los archivos aquí son accesibles para que la IA los lea. La IA puede escribir y leer archivos, así como ejecutar código desde este directorio. Puedes abrir este directorio localmente en tu sistema y colocar cualquier archivo aquí. También puedes indexar los archivos con LlamaIndex, para que sirvan como una fuente de conocimiento adicional.
1578
+ tip.output.tab.files = Este directorio de archivos de trabajo se encuentra en tu disco. Los archivos aquí son accesibles para que la IA los lea. La IA puede escribir y leer archivos, así como ejecutar código desde este directorio. Puedes abrir este directorio localmente en tu sistema y colocar cualquier archivo aquí. También puedes indexar los archivos con LlamaIndex, para que sirvan como una fuente de conocimiento adicional. Usa CTRL/SHIFT para la selección múltiple.
1575
1579
  tip.output.tab.notepad = El bloc de notas puede servir como una herramienta para tomar notas y almacenar información. Puedes mantener cualquier texto aquí, copiar texto desde la ventana de chat, y toda la información se guardará automáticamente. Puedes crear más blocs de notas creando una nueva pestaña.
1576
1580
  tip.tokens.ctx = Contexto (memoria): en uso / todos - tokens
1577
1581
  tip.tokens.input = Fichas: indicación del usuario + indicación del sistema + contexto + adicional + adjuntos = suma / máximo
@@ -16,6 +16,7 @@ action.ctx.indexed = Dernière indexation le
16
16
  action.ctx.new = Nouveau contexte...
17
17
  action.ctx.new.in_group = Nouveau contexte dans : {group}...
18
18
  action.ctx_reset = Réinitialiser (effacer)
19
+ action.cut = Couper
19
20
  action.delete = Supprimer
20
21
  action.download = Télécharger
21
22
  action.duplicate = Dupliquer
@@ -26,6 +27,7 @@ action.group.new = Nouveau groupe
26
27
  action.group.remove = Retirer du groupe
27
28
  action.idx = Indexer avec LlamaIndex...
28
29
  action.idx.remove = Retirer de
30
+ action.import = Importer
29
31
  action.mkdir = Créer un répertoire...
30
32
  action.move_to = Déplacer vers
31
33
  action.new = Nouveau...
@@ -36,6 +38,7 @@ action.open_dir_src = Ouvrir le répertoire source
36
38
  action.open_dir_storage = Ouvrir le répertoire de stockage
37
39
  action.open_new_tab = Ouvrir dans un nouvel onglet
38
40
  action.open_new_window = Ouvrir (nouvelle fenêtre)
41
+ action.pack = Emballer
39
42
  action.paste = Coller
40
43
  action.pin = Épingler en haut
41
44
  action.preview = Aperçu
@@ -64,6 +67,7 @@ action.tab.move.right = Déplacer vers la colonne de droite
64
67
  action.touch = Créer un fichier...
65
68
  action.truncate = Tout effacer
66
69
  action.undo = Annuler
70
+ action.unpack = Déballer
67
71
  action.unpin = Détacher
68
72
  action.upload = Téléchargez des fichiers ici...
69
73
  action.use = Utiliser
@@ -1570,7 +1574,7 @@ tip.input.attachments.ctx = Vous trouverez ci-dessous les pièces jointes télé
1570
1574
  tip.input.attachments.uploaded = Voici une liste de fichiers téléchargés sur le serveur en mode Assistant. Ces fichiers sont situés sur un serveur distant, pas sur votre ordinateur local, donc le modèle peut les utiliser et les analyser à l'aide des outils disponibles à l'extérieur sur le serveur distant.
1571
1575
  tip.output.tab.calendar = En utilisant le calendrier, vous pouvez revenir à des conversations sélectionnées d'un jour spécifique. Cliquez sur un jour dans le calendrier pour limiter l'affichage de l'historique de chat à ce jour. Vous pouvez également créer des notes de jour et leur attribuer des étiquettes colorées.
1572
1576
  tip.output.tab.draw = Vous pouvez utiliser l'outil de dessin pour esquisser rapidement ou capturer une image de la caméra, puis envoyer de telles images à l'IA en mode Vision pour analyse. Vous pouvez capturer une image avec la caméra ici ou ouvrir une image du disque. Lors de l'utilisation d'une image, elle sera incluse dans le message envoyé en tant que pièce jointe.
1573
- tip.output.tab.files = Ce répertoire de fichiers de travail se trouve sur votre disque. Les fichiers ici sont accessibles pour l'IA à lire. L'IA peut lire et écrire des fichiers, ainsi qu'exécuter du code à partir de ce répertoire. Vous pouvez ouvrir ce répertoire localement sur votre système et placer n'importe quels fichiers ici. Vous pouvez également indexer les fichiers avec LlamaIndex, afin qu'ils servent de source de connaissances supplémentaire.
1577
+ tip.output.tab.files = Ce répertoire de fichiers de travail se trouve sur votre disque. Les fichiers ici sont accessibles pour l'IA à lire. L'IA peut lire et écrire des fichiers, ainsi qu'exécuter du code à partir de ce répertoire. Vous pouvez ouvrir ce répertoire localement sur votre système et placer n'importe quels fichiers ici. Vous pouvez également indexer les fichiers avec LlamaIndex, afin qu'ils servent de source de connaissances supplémentaire. Utilisez CTRL/SHIFT pour la sélection multiple.
1574
1578
  tip.output.tab.notepad = Le bloc-notes peut servir d'outil pour prendre des notes et stocker des informations. Vous pouvez garder n'importe quel texte ici, copier du texte depuis la fenêtre de chat, et toutes les informations seront automatiquement enregistrées. Vous pouvez créer plus de blocs-notes en créant un nouvel onglet.
1575
1579
  tip.tokens.ctx = Contexte (mémoire) : en utilisation / total - jetons
1576
1580
  tip.tokens.input = Jetons: invite de l'utilisateur + invite système + contexte + extra + pièces jointes = somme / maximum
@@ -16,6 +16,7 @@ action.ctx.indexed = Ultima indicizzazione il
16
16
  action.ctx.new = Nuovo contesto...
17
17
  action.ctx.new.in_group = Nuovo contesto in: {group}...
18
18
  action.ctx_reset = Reimposta (cancella)
19
+ action.cut = Taglia
19
20
  action.delete = Elimina
20
21
  action.download = Scarica
21
22
  action.duplicate = Duplica
@@ -26,6 +27,7 @@ action.group.new = Nuovo gruppo
26
27
  action.group.remove = Rimuovi dal gruppo
27
28
  action.idx = Indicizzare con LlamaIndex...
28
29
  action.idx.remove = Rimuovi da
30
+ action.import = Importa
29
31
  action.mkdir = Crea directory...
30
32
  action.move_to = Sposta in
31
33
  action.new = Nuovo...
@@ -36,6 +38,7 @@ action.open_dir_src = Apri la cartella sorgente
36
38
  action.open_dir_storage = Apri la cartella di archiviazione
37
39
  action.open_new_tab = Apri in una nuova scheda
38
40
  action.open_new_window = Apri (nuova finestra)
41
+ action.pack = Imballare
39
42
  action.paste = Incolla
40
43
  action.pin = Fissa in alto
41
44
  action.preview = Anteprima
@@ -64,6 +67,7 @@ action.tab.move.right = Sposta nella colonna di destra
64
67
  action.touch = Crea file...
65
68
  action.truncate = Cancellare tutto
66
69
  action.undo = Annulla
70
+ action.unpack = Scartare
67
71
  action.unpin = Sgancia
68
72
  action.upload = Carica file qui...
69
73
  action.use = Usa
@@ -1570,7 +1574,7 @@ tip.input.attachments.ctx = Di seguito sono disponibili gli allegati caricati e
1570
1574
  tip.input.attachments.uploaded = Qui è presente un elenco di файлы caricati sul server in modalità Assistant. Questi файлы si trovano su un сервер remoto, non sul tuo computer locale, quindi il modello può utilizzarli e analizzarli utilizzando strumenti disponibili all'esterno sul сервер remoto.
1571
1575
  tip.output.tab.calendar = Utilizzando il calendario, puoi tornare a conversazioni selezionate di un giorno specifico. Clicca su un giorno nel calendario per limitare la visualizzazione della cronologia della chat a quel giorno. Puoi anche creare note giornaliere e assegnarle etichette colorate.
1572
1576
  tip.output.tab.draw = Puoi utilizzare lo strumento di disegno per fare rapidi schizzi o catturare un'immagine dalla fotocamera, e poi inviare tali immagini all'IA in modalità Vision per l'analisi. Puoi catturare un'immagine con la fotocamera qui o aprire un'immagine dal disco. Quando utilizzi un'immagine, questa sarà inclusa nel messaggio inviato come allegato.
1573
- tip.output.tab.files = Questa directory di file di lavoro si trova sul tuo disco. I file qui sono accessibili per l'IA per la lettura. L'IA può scrivere e leggere file, così come eseguire codice da questa directory. Puoi aprire questa directory localmente sul tuo sistema e posizionare qui qualsiasi file. Puoi anche indicizzare i file con LlamaIndex, in modo che servano come fonte di conoscenza aggiuntiva.
1577
+ tip.output.tab.files = Questa directory di file di lavoro si trova sul tuo disco. I file qui sono accessibili per l'IA per la lettura. L'IA può scrivere e leggere file, così come eseguire codice da questa directory. Puoi aprire questa directory localmente sul tuo sistema e posizionare qui qualsiasi file. Puoi anche indicizzare i file con LlamaIndex, in modo che servano come fonte di conoscenza aggiuntiva. Usa CTRL/SHIFT per la selezione multipla.
1574
1578
  tip.output.tab.notepad = Il blocco note può servire come strumento per prendere appunti e memorizzare informazioni. Puoi mantenere qualsiasi testo qui, copiare testo dalla finestra della chat e tutte le informazioni verranno salvate automaticamente. Puoi creare più blocchi note creando una nuova scheda.
1575
1579
  tip.tokens.ctx = Contesto (memoria): in uso / totale - token
1576
1580
  tip.tokens.input = Gettoni: prompt dell'utente + prompt di sistema + contesto + extra + allegati = somma / massimo
@@ -16,6 +16,7 @@ action.ctx.indexed = Ostatnio zindeksowane
16
16
  action.ctx.new = Nowy kontekst...
17
17
  action.ctx.new.in_group = Nowy kontekst w: {group}...
18
18
  action.ctx_reset = Resetuj (wyczyść)
19
+ action.cut = Wytnij
19
20
  action.delete = Usuń
20
21
  action.download = Pobierz
21
22
  action.duplicate = Zduplikuj
@@ -26,6 +27,7 @@ action.group.new = Nowa grupa
26
27
  action.group.remove = Usuń z grupy
27
28
  action.idx = Indeksuj w LlamaIndex...
28
29
  action.idx.remove = Usuń z
30
+ action.import = Importuj
29
31
  action.mkdir = Utwórz katalog...
30
32
  action.move_to = Przenieś do
31
33
  action.new = Nowy...
@@ -36,6 +38,7 @@ action.open_dir_src = Otwórz katalog źródłowy
36
38
  action.open_dir_storage = Otwórz katalog magazynowy
37
39
  action.open_new_tab = Otwórz w nowej karcie
38
40
  action.open_new_window = Otwórz (w nowym oknie)
41
+ action.pack = Spakuj
39
42
  action.paste = Wklej
40
43
  action.pin = Przypnij na górze
41
44
  action.preview = Podgląd
@@ -64,6 +67,7 @@ action.tab.move.right = Przenieś do prawej kolumny
64
67
  action.touch = Utwórz plik...
65
68
  action.truncate = Wyczyść wszystko
66
69
  action.undo = Cofnij
70
+ action.unpack = Rozpakuj
67
71
  action.unpin = Odepnij
68
72
  action.upload = Prześlij tutaj pliki...
69
73
  action.use = Użyj
@@ -790,7 +794,7 @@ ipython.docker.install = Uruchomienie IPython wymaga zainstalowania Dockera. Doc
790
794
  ipython.docker.install.snap = \n\nWERSJA SNAP: \nNie jesteś połączony z wbudowanym daemonem Docker. Połącz sloty za pomocą:\n\nsudo snap connect pygpt:docker-executables docker:docker-executables\n\nsudo snap connect pygpt:docker docker:docker-daemon\n\n...i uruchom ponownie aplikację.
791
795
  ipython.image.build = Obraz Dockera dla IPython nie został jeszcze zbudowany. Nastąpi to teraz i może to potrwać chwilę (ale to jednorazowa procedura). Wykonywanie polecenia zostało wstrzymane. Po zbudowaniu obrazu możesz ponownie poprosić o wykonanie polecenia.
792
796
  layout.split = Podziel ekran
793
- list.all = --- WSZYSTKIE ---
797
+ list.all = --- WSZYSTKIE ---
794
798
  menu.audio = Audio / Mowa
795
799
  menu.audio.cache.clear = Wyczyść pamięć podręczną audio...
796
800
  menu.audio.control.global = Kontrola głosowa (globalna)
@@ -1571,7 +1575,7 @@ tip.input.attachments.ctx = Poniżej znajdują się załączone i zindeksowane z
1571
1575
  tip.input.attachments.uploaded = Tutaj znajduje się lista plików przesłanych na serwer w trybie Asystenta. Te pliki znajdują się na zdalnym serwerze, a nie na lokalnym komputerze, więc model może używać i analizować je za pomocą narzędzi dostępnych zewnętrznie na zdalnym serwerze.
1572
1576
  tip.output.tab.calendar = Korzystając z kalendarza, możesz wrócić do wybranych rozmów z określonego dnia. Kliknij na dzień w kalendarzu, aby ograniczyć wyświetlanie historii czatu do tego dnia. Możesz również tworzyć notatki dnia i przypisywać im kolorowe etykiety.
1573
1577
  tip.output.tab.draw = Możesz użyć narzędzia do rysowania do szybkiego szkicowania lub przechwytywania obrazu z kamery, a następnie wysyłać takie obrazy do AI w trybie Vision do analizy. Możesz tu przechwycić obraz za pomocą kamery lub otworzyć obraz z dysku. Przy użyciu obrazu zostanie on dołączony do wysłanej wiadomości jako załącznik.
1574
- tip.output.tab.files = Katalog z plikami roboczymi znajduje się na Twoim dysku. Pliki tutaj są dostępne dla AI. AI może czytać i zapisywać pliki, a także uruchamiać kod z tego katalogu. Możesz otworzyć ten katalog lokalnie w swoim systemie i umieścić tutaj dowolne pliki. Możesz także zindeksować pliki tutaj przy użyciu LlamaIndex, aby służyły jako dodatkowe źródło wiedzy.
1578
+ tip.output.tab.files = Katalog z plikami roboczymi znajduje się na Twoim dysku. Pliki tutaj są dostępne dla AI. AI może czytać i zapisywać pliki, a także uruchamiać kod z tego katalogu. Możesz otworzyć ten katalog lokalnie w swoim systemie i umieścić tutaj dowolne pliki. Możesz także zindeksować pliki tutaj przy użyciu LlamaIndex, aby służyły jako dodatkowe źródło wiedzy. Użyj CTRL/SHIFT, aby dokonać wielokrotnego wyboru.
1575
1579
  tip.output.tab.notepad = Notatnik może służyć jako narzędzie do robienia notatek i przechowywania informacji. Możesz tutaj przechowywać dowolny tekst, kopiować tekst z okna czatu, a wszystkie informacje będą automatycznie zapisywane. Możesz tworzyć więcej notatników, tworząc nową kartę.
1576
1580
  tip.tokens.ctx = Kontekst (pamięć): w użyciu / całość - l.tokenów
1577
1581
  tip.tokens.input = Tokeny: prompt użytkownika + systemowy prompt + kontekst + dodatkowe + załączniki = suma / max
@@ -16,6 +16,7 @@ action.ctx.indexed = Останнє індексування в
16
16
  action.ctx.new = Новий контекст...
17
17
  action.ctx.new.in_group = Новий контекст у: {group}...
18
18
  action.ctx_reset = Скинути (очистити)
19
+ action.cut = Вирізати
19
20
  action.delete = Видалити
20
21
  action.download = Завантажити
21
22
  action.duplicate = Дублювати
@@ -26,6 +27,7 @@ action.group.new = Нова група
26
27
  action.group.remove = Видалити з групи
27
28
  action.idx = Індексувати за допомогою LlamaIndex...
28
29
  action.idx.remove = Видалити з
30
+ action.import = Імпорт
29
31
  action.mkdir = Створити каталог...
30
32
  action.move_to = Перемістити до
31
33
  action.new = Новий...
@@ -36,6 +38,7 @@ action.open_dir_src = Відкрити вихідний каталог
36
38
  action.open_dir_storage = Відкрити каталог зберігання
37
39
  action.open_new_tab = Відкрити у новій вкладці
38
40
  action.open_new_window = Відкрити (нове вікно)
41
+ action.pack = Запакувати
39
42
  action.paste = Вставити
40
43
  action.pin = Прикріпити зверху
41
44
  action.preview = Попередній перегляд
@@ -64,6 +67,7 @@ action.tab.move.right = Перемістити в праву колонку
64
67
  action.touch = Створити файл...
65
68
  action.truncate = Очистити все
66
69
  action.undo = Скасувати
70
+ action.unpack = Розпакувати
67
71
  action.unpin = Відкріпити
68
72
  action.upload = Завантажте файли тут...
69
73
  action.use = Використовуйте
@@ -1570,7 +1574,7 @@ tip.input.attachments.ctx = Нижче наведено завантажені
1570
1574
  tip.input.attachments.uploaded = Тут є список файлів, завантажених на сервер у режимі Асистента. Ці файли розташовані на віддаленому сервері, а не на вашому локальному комп'ютері, тому модель може використовувати їх та аналізувати за допомогою інструментів, доступних ззовні на віддаленому сервері.
1571
1575
  tip.output.tab.calendar = Використовуючи календар, ви можете повертатись до обраних розмов з певного дня. Натисніть на день у календарі, щоб обмежити відображення історії чату до цього дня. Ви також можете створювати денні нотатки та присвоювати їм кольорові мітки.
1572
1576
  tip.output.tab.draw = Ви можете використовувати інструмент малювання для швидкого скетчингу або захоплення зображення з камери, а потім надсилати такі зображення ШІ у режимі Vision для аналізу. Ви можете захопити зображення за допомогою камери тут або відкрити зображення з диску. При використанні зображення, воно буде включене в наді слане повідомлення як вкладення.
1573
- tip.output.tab.files = Ця директорія робочих файлів знаходиться на вашому диску. Файли тут доступні для ШІ для читання. ШІ може читати і записувати файли, а також виконувати код з цієї директорії. Ви можете відкрити цю директорію локально на вашій системі та розмістити будь-які файли тут. Ви також можете індексувати файли за допомогою LlamaIndex, щоб вони служили додатковим джерелом знань.
1577
+ tip.output.tab.files = Ця директорія робочих файлів знаходиться на вашому диску. Файли тут доступні для ШІ для читання. ШІ може читати і записувати файли, а також виконувати код з цієї директорії. Ви можете відкрити цю директорію локально на вашій системі та розмістити будь-які файли тут. Ви також можете індексувати файли за допомогою LlamaIndex, щоб вони служили додатковим джерелом знань. Використовуйте CTRL/SHIFT для множинного вибору.
1574
1578
  tip.output.tab.notepad = Блокнот може слугувати інструментом для ведення нотаток та зберігання інформації. Ви можете зберігати тут будь-який текст, копіювати текст із вікна чату, і вся інформація буде автоматично зберігатися. Ви можете створити більше блокнотів, створивши нову вкладку.
1575
1579
  tip.tokens.ctx = Контекст (пам'ять): використано / всього - токени
1576
1580
  tip.tokens.input = Токени: запит користувача + системний запит + контекст + додаткові + вкладення = сума / макс
@@ -16,6 +16,7 @@ action.ctx.indexed = 最後索引於
16
16
  action.ctx.new = 新建上下文...
17
17
  action.ctx.new.in_group = 新的上下文在:{group}...
18
18
  action.ctx_reset = 重置(清除)
19
+ action.cut = 剪切
19
20
  action.delete = 刪除
20
21
  action.download = 下載
21
22
  action.duplicate = 複製
@@ -26,6 +27,7 @@ action.group.new = 新建组
26
27
  action.group.remove = 从组中移除
27
28
  action.idx = 使用LlamaIndex索引...
28
29
  action.idx.remove = 從中移除
30
+ action.import = 导入
29
31
  action.mkdir = 創建目錄...
30
32
  action.move_to = 移动到
31
33
  action.new = 新建...
@@ -36,6 +38,7 @@ action.open_dir_src = 打开源目录
36
38
  action.open_dir_storage = 打开存储目录
37
39
  action.open_new_tab = 在新标签页中打开
38
40
  action.open_new_window = 打开(新窗口)
41
+ action.pack = 打包
39
42
  action.paste = 粘贴
40
43
  action.pin = 置頂
41
44
  action.preview = 预览
@@ -64,6 +67,7 @@ action.tab.move.right = 移到右列
64
67
  action.touch = 創建文件...
65
68
  action.truncate = 截斷
66
69
  action.undo = 撤銷
70
+ action.unpack = 解压
67
71
  action.unpin = 取消置頂
68
72
  action.upload = 在這裡上傳文件...
69
73
  action.use = 使用
@@ -1570,7 +1574,7 @@ tip.input.attachments.ctx = 以下是上传和索引的附件,可用作上述
1570
1574
  tip.input.attachments.uploaded = 這是已上傳到服務器的文件列表,在助手模式下。這些文件位於遠程服務器上,而不是您的本地計算機上,因此模型可以使用並分析外部遠程服務器上可用的工具。
1571
1575
  tip.output.tab.calendar = 使用日曆,您可以導航回特定日期的選定對話。點擊日曆中的一天以限制聊天歷史顯示到該天。您還可以創建日記並為它們分配彩色標籤。
1572
1576
  tip.output.tab.draw = 您可以使用繪圖工具進行快速素描或從相機捕獲圖像,然後將這些圖像發送到AI在視覺模式下進行分析。您可以在這裡使用相機捕獲圖像或從磁盤打開圖像。使用圖像時,它將作為附件包含在發送的消息中。
1573
- tip.output.tab.files = 此工作文件目錄位於您的磁盤上。這裡的文件可供AI訪問。AI可以寫入和讀取文件,也可以從此目錄運行代碼。您可以在本地系統上打開此目錄並放置任何文件。您還可以使用LlamaIndex對這裡的文件進行索引,以便它們作為額外的知識來源。
1577
+ tip.output.tab.files = 此工作文件目錄位於您的磁盤上。這裡的文件可供AI訪問。AI可以寫入和讀取文件,也可以從此目錄運行代碼。您可以在本地系統上打開此目錄並放置任何文件。您還可以使用LlamaIndex對這裡的文件進行索引,以便它們作為額外的知識來源。使用 CTRL/SHIFT 进行多重选择。
1574
1578
  tip.output.tab.notepad = 记事本可以用作记笔记和存储信息的工具。您可以在这里保留任何文本,从聊天窗口复制文本,所有信息将自动保存。您可以通过创建新选项卡来创建更多记事本。
1575
1579
  tip.tokens.ctx = 上下文(記憶):使用中 / 全部 - 令牌
1576
1580
  tip.tokens.input = 代币:用户输入提示 + 系统提示 + 上下文 + 额外 + 附件 = 总和 / 最大值
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.12.25 20:00:00 #
9
+ # Updated Date: 2025.12.28 00:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from openai import OpenAI
@@ -83,7 +83,9 @@ class ApiOpenAI:
83
83
  """
84
84
  # prepare client args by mode and model provider
85
85
  args = self.window.core.models.prepare_client_args(mode, model)
86
- return OpenAI(**args)
86
+ self.client = OpenAI(**args)
87
+ self.last_client_args = args # store last args for debug
88
+ return self.client
87
89
 
88
90
  def call(
89
91
  self,
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.09.26 03:00:00 #
9
+ # Updated Date: 2025.12.27 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -183,6 +183,22 @@ class Patch:
183
183
  data["img_mode"] = "image"
184
184
  updated = True
185
185
 
186
+ # < 2.7.0
187
+ if old < parse_version("2.7.0"):
188
+ print("Migrating config from < 2.7.0...")
189
+ # add: combo boxes css
190
+ patch_css('style.light.css', True)
191
+ patch_css('style.dark.css', True)
192
+ updated = True
193
+
194
+ # < 2.7.1
195
+ if old < parse_version("2.7.1"):
196
+ print("Migrating config from < 2.7.1...")
197
+ # update: combo boxes css
198
+ patch_css('style.light.css', True)
199
+ patch_css('style.dark.css', True)
200
+ updated = True
201
+
186
202
  # update file
187
203
  migrated = False
188
204
  if updated:
@@ -70,6 +70,23 @@ class ImageViewer(BaseTool):
70
70
  if path:
71
71
  self.open_preview(path, id, auto_close)
72
72
 
73
+ def open_preview_batch(
74
+ self,
75
+ paths: list,
76
+ current_id: str = None,
77
+ auto_close: bool = True):
78
+ """
79
+ Open image preview batch in dialog
80
+
81
+ :param paths:
82
+ :param current_id:
83
+ :param auto_close:
84
+ :return:
85
+ """
86
+ for path in paths:
87
+ self.open_preview(path, current_id, auto_close)
88
+
89
+
73
90
  def open_preview(
74
91
  self,
75
92
  path: str = None,
@@ -112,6 +112,15 @@ class TextEditor(BaseTool):
112
112
  """Open new instance"""
113
113
  self.open()
114
114
 
115
+ def open_batch(self, files: list):
116
+ """
117
+ Open multiple files in editor instances
118
+
119
+ :param files: list of files to open
120
+ """
121
+ for file in files:
122
+ self.open(file, auto_close=False, force=True)
123
+
115
124
  def open(
116
125
  self,
117
126
  file: Optional[str] = None,
pygpt_net/ui/__init__.py CHANGED
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.20 20:00:00 #
9
+ # Updated Date: 2025.12.27 17:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import os
@@ -143,7 +143,7 @@ class UI:
143
143
  suffix = self.window.core.platforms.get_env_suffix()
144
144
  profile_name = self.window.core.config.profile.get_current_name()
145
145
  self.window.setWindowTitle(
146
- f"PyGPT - Desktop AI Assistant {self.window.meta['version']} | "
146
+ f"PyGPT {self.window.meta['version']} | "
147
147
  f"build {self.window.meta['build'].replace('.', '-')}{suffix} ({profile_name})"
148
148
  )
149
149
 
@@ -258,6 +258,7 @@ class Preset(BaseConfigDialog):
258
258
  personalize_rows.addWidget(self.window.ui.nodes['preset.editor.avatar'])
259
259
  personalize_rows.addStretch(1)
260
260
  personalize_rows.addWidget(warn_label)
261
+ personalize_rows.setContentsMargins(10, 30, 10, 0)
261
262
 
262
263
  rows.setContentsMargins(0, 0, 0, 0)
263
264
  rows.addStretch(1)
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.09.15 22:00:00 #
9
+ # Updated Date: 2025.12.28 12:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6 import QtCore
@@ -69,6 +69,14 @@ class CtxList:
69
69
  models[ctx_id] = model
70
70
  ctx_list.setModel(model)
71
71
 
72
+ # Expose force scroll on model as a thin proxy to the view method for external callers
73
+ try:
74
+ def _model_force_scroll_to_current(*args, **kwargs):
75
+ return ctx_list.force_scroll_to_current(*args, **kwargs)
76
+ setattr(model, "force_scroll_to_current", _model_force_scroll_to_current)
77
+ except Exception:
78
+ pass
79
+
72
80
  ctx = self.window.controller.ctx
73
81
  ctx_list.selectionModel().selectionChanged.connect(lambda *_: ctx.selection_change())
74
82
 
@@ -265,14 +273,17 @@ class CtxList:
265
273
  if c == 0 and search_string:
266
274
  continue
267
275
 
268
- suffix = f" ({c})" if c > 0 else ""
276
+ # Display only the group name; the counter is drawn by delegate on the right
269
277
  is_attachment = group.has_additional_ctx()
270
- group_name = group.name + suffix
278
+ group_name = group.name
271
279
  group_item = GroupItem(folder_icon, group_name, group.id)
272
280
  group_item.hasAttachments = is_attachment
281
+
282
+ # Provide all metadata required by the delegate
273
283
  custom_data = {
274
284
  "is_group": True,
275
285
  "is_attachment": is_attachment,
286
+ "count": c,
276
287
  }
277
288
 
278
289
  if is_attachment:
@@ -299,12 +310,11 @@ class CtxList:
299
310
 
300
311
  model.appendRow(group_item)
301
312
 
313
+ # Always reflect persisted expansion state so groups stay open after actions
302
314
  desired = group.id in node.expanded_items
303
315
  idx = group_item.index()
304
- if node.isExpanded(idx) != desired and expand:
316
+ if node.isExpanded(idx) != desired:
305
317
  node.setExpanded(idx, desired)
306
- else:
307
- node.setExpanded(idx, False)
308
318
 
309
319
  def count_in_group(self, group_id: int, data: dict) -> int:
310
320
  """
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.09.01 23:00:00 #
9
+ # Updated Date: 2025.12.28 18:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtWidgets import QVBoxLayout, QWidget
@@ -52,6 +52,7 @@ class Image:
52
52
 
53
53
  option_resolutions = self.window.core.image.get_resolution_option()
54
54
  conf_global['img_resolution'] = OptionCombo(self.window, 'global', 'img_resolution', option_resolutions)
55
+ conf_global['img_resolution'].setMinimumWidth(160)
55
56
 
56
57
  rows = QVBoxLayout()
57
58
  rows.addWidget(conf_global['img_variants'])
@@ -91,6 +91,7 @@ class Indexes:
91
91
  option = {
92
92
  "name": "current_index",
93
93
  "label": "toolbox.llama_index.current_index",
94
+ "search": False,
94
95
  "keys": [],
95
96
  "value": None,
96
97
  }
@@ -105,6 +106,7 @@ class Indexes:
105
106
  option = {
106
107
  "name": "llama.idx.mode",
107
108
  "label": "toolbox.llama_index.mode",
109
+ "search": False,
108
110
  "keys": self.window.controller.idx.get_modes_keys(),
109
111
  "value": "chat",
110
112
  }
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.12.26 12:00:00 #
9
+ # Updated Date: 2025.12.28 18:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtWidgets import QWidget, QHBoxLayout
@@ -45,6 +45,10 @@ class Video:
45
45
  conf_global['video.resolution'] = OptionCombo(self.window, 'global', 'video.resolution', option_resolution)
46
46
  conf_global['video.duration'] = OptionInput(self.window, 'global', 'video.duration', option_duration)
47
47
 
48
+ conf_global['video.aspect_ratio'].setMinimumWidth(120)
49
+ conf_global['video.resolution'].setMinimumWidth(120)
50
+ conf_global['video.duration'].setMinimumWidth(50)
51
+
48
52
  rows = QHBoxLayout()
49
53
  rows.addWidget(conf_global['video.resolution'], 2)
50
54
  rows.addWidget(conf_global['video.aspect_ratio'], 2)