pygpt-net 2.7.8__py3-none-any.whl → 2.7.10__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 (112) hide show
  1. pygpt_net/CHANGELOG.txt +14 -0
  2. pygpt_net/LICENSE +1 -1
  3. pygpt_net/__init__.py +3 -3
  4. pygpt_net/config.py +15 -1
  5. pygpt_net/controller/chat/common.py +5 -4
  6. pygpt_net/controller/chat/image.py +3 -3
  7. pygpt_net/controller/chat/stream.py +76 -41
  8. pygpt_net/controller/chat/stream_worker.py +3 -3
  9. pygpt_net/controller/ctx/extra.py +3 -1
  10. pygpt_net/controller/dialogs/debug.py +37 -8
  11. pygpt_net/controller/kernel/kernel.py +3 -7
  12. pygpt_net/controller/lang/custom.py +25 -12
  13. pygpt_net/controller/lang/lang.py +45 -3
  14. pygpt_net/controller/lang/mapping.py +15 -2
  15. pygpt_net/controller/notepad/notepad.py +68 -25
  16. pygpt_net/controller/presets/editor.py +5 -1
  17. pygpt_net/controller/presets/presets.py +17 -5
  18. pygpt_net/controller/realtime/realtime.py +13 -1
  19. pygpt_net/controller/theme/theme.py +11 -2
  20. pygpt_net/controller/ui/tabs.py +1 -1
  21. pygpt_net/core/ctx/output.py +38 -12
  22. pygpt_net/core/db/database.py +4 -2
  23. pygpt_net/core/debug/console/console.py +30 -2
  24. pygpt_net/core/debug/context.py +2 -1
  25. pygpt_net/core/debug/ui.py +26 -4
  26. pygpt_net/core/filesystem/filesystem.py +6 -2
  27. pygpt_net/core/notepad/notepad.py +2 -2
  28. pygpt_net/core/tabs/tabs.py +79 -19
  29. pygpt_net/data/config/config.json +4 -3
  30. pygpt_net/data/config/models.json +37 -22
  31. pygpt_net/data/config/settings.json +12 -0
  32. pygpt_net/data/locale/locale.ar.ini +1833 -0
  33. pygpt_net/data/locale/locale.bg.ini +1833 -0
  34. pygpt_net/data/locale/locale.cs.ini +1833 -0
  35. pygpt_net/data/locale/locale.da.ini +1833 -0
  36. pygpt_net/data/locale/locale.de.ini +4 -1
  37. pygpt_net/data/locale/locale.en.ini +70 -67
  38. pygpt_net/data/locale/locale.es.ini +4 -1
  39. pygpt_net/data/locale/locale.fi.ini +1833 -0
  40. pygpt_net/data/locale/locale.fr.ini +4 -1
  41. pygpt_net/data/locale/locale.he.ini +1833 -0
  42. pygpt_net/data/locale/locale.hi.ini +1833 -0
  43. pygpt_net/data/locale/locale.hu.ini +1833 -0
  44. pygpt_net/data/locale/locale.it.ini +4 -1
  45. pygpt_net/data/locale/locale.ja.ini +1833 -0
  46. pygpt_net/data/locale/locale.ko.ini +1833 -0
  47. pygpt_net/data/locale/locale.nl.ini +1833 -0
  48. pygpt_net/data/locale/locale.no.ini +1833 -0
  49. pygpt_net/data/locale/locale.pl.ini +5 -2
  50. pygpt_net/data/locale/locale.pt.ini +1833 -0
  51. pygpt_net/data/locale/locale.ro.ini +1833 -0
  52. pygpt_net/data/locale/locale.ru.ini +1833 -0
  53. pygpt_net/data/locale/locale.sk.ini +1833 -0
  54. pygpt_net/data/locale/locale.sv.ini +1833 -0
  55. pygpt_net/data/locale/locale.tr.ini +1833 -0
  56. pygpt_net/data/locale/locale.uk.ini +4 -1
  57. pygpt_net/data/locale/locale.zh.ini +4 -1
  58. pygpt_net/item/notepad.py +8 -2
  59. pygpt_net/migrations/Version20260121190000.py +25 -0
  60. pygpt_net/migrations/Version20260122140000.py +25 -0
  61. pygpt_net/migrations/__init__.py +5 -1
  62. pygpt_net/preload.py +246 -3
  63. pygpt_net/provider/api/__init__.py +16 -2
  64. pygpt_net/provider/api/anthropic/__init__.py +21 -7
  65. pygpt_net/provider/api/google/__init__.py +21 -7
  66. pygpt_net/provider/api/google/image.py +89 -2
  67. pygpt_net/provider/api/google/realtime/client.py +70 -24
  68. pygpt_net/provider/api/google/realtime/realtime.py +48 -12
  69. pygpt_net/provider/api/google/video.py +2 -2
  70. pygpt_net/provider/api/openai/__init__.py +26 -11
  71. pygpt_net/provider/api/openai/image.py +79 -3
  72. pygpt_net/provider/api/openai/realtime/realtime.py +26 -6
  73. pygpt_net/provider/api/openai/responses.py +11 -31
  74. pygpt_net/provider/api/openai/video.py +2 -2
  75. pygpt_net/provider/api/x_ai/__init__.py +21 -10
  76. pygpt_net/provider/api/x_ai/realtime/client.py +185 -146
  77. pygpt_net/provider/api/x_ai/realtime/realtime.py +30 -15
  78. pygpt_net/provider/api/x_ai/remote_tools.py +83 -0
  79. pygpt_net/provider/api/x_ai/tools.py +51 -0
  80. pygpt_net/provider/core/config/patch.py +12 -1
  81. pygpt_net/provider/core/model/patch.py +36 -1
  82. pygpt_net/provider/core/notepad/db_sqlite/storage.py +53 -10
  83. pygpt_net/tools/agent_builder/ui/dialogs.py +2 -1
  84. pygpt_net/tools/audio_transcriber/ui/dialogs.py +2 -1
  85. pygpt_net/tools/code_interpreter/ui/dialogs.py +2 -1
  86. pygpt_net/tools/html_canvas/ui/dialogs.py +2 -1
  87. pygpt_net/tools/image_viewer/ui/dialogs.py +3 -5
  88. pygpt_net/tools/indexer/ui/dialogs.py +2 -1
  89. pygpt_net/tools/media_player/ui/dialogs.py +2 -1
  90. pygpt_net/tools/translator/ui/dialogs.py +2 -1
  91. pygpt_net/tools/translator/ui/widgets.py +6 -2
  92. pygpt_net/ui/dialog/about.py +2 -2
  93. pygpt_net/ui/dialog/db.py +2 -1
  94. pygpt_net/ui/dialog/debug.py +169 -6
  95. pygpt_net/ui/dialog/logger.py +6 -2
  96. pygpt_net/ui/dialog/models.py +36 -3
  97. pygpt_net/ui/dialog/preset.py +5 -1
  98. pygpt_net/ui/dialog/remote_store.py +2 -1
  99. pygpt_net/ui/main.py +3 -2
  100. pygpt_net/ui/widget/dialog/editor_file.py +2 -1
  101. pygpt_net/ui/widget/lists/debug.py +12 -7
  102. pygpt_net/ui/widget/option/checkbox.py +2 -8
  103. pygpt_net/ui/widget/option/combo.py +10 -2
  104. pygpt_net/ui/widget/textarea/console.py +156 -7
  105. pygpt_net/ui/widget/textarea/highlight.py +66 -0
  106. pygpt_net/ui/widget/textarea/input.py +624 -57
  107. pygpt_net/ui/widget/textarea/notepad.py +294 -27
  108. {pygpt_net-2.7.8.dist-info → pygpt_net-2.7.10.dist-info}/LICENSE +1 -1
  109. {pygpt_net-2.7.8.dist-info → pygpt_net-2.7.10.dist-info}/METADATA +16 -64
  110. {pygpt_net-2.7.8.dist-info → pygpt_net-2.7.10.dist-info}/RECORD +112 -91
  111. {pygpt_net-2.7.8.dist-info → pygpt_net-2.7.10.dist-info}/WHEEL +0 -0
  112. {pygpt_net-2.7.8.dist-info → pygpt_net-2.7.10.dist-info}/entry_points.txt +0 -0
@@ -28,6 +28,7 @@ action.group.remove = Aus Gruppe entfernen
28
28
  action.idx = Index with LlamaIndex...
29
29
  action.idx.remove = Entfernen aus
30
30
  action.import = Importieren
31
+ action.mark = Markieren
31
32
  action.mkdir = Verzeichnis erstellen...
32
33
  action.move_to = Verschieben nach
33
34
  action.new = Neu...
@@ -67,6 +68,7 @@ action.tab.move.right = In die rechte Spalte verschieben
67
68
  action.touch = Datei erstellen...
68
69
  action.truncate = Alles löschen
69
70
  action.undo = Rückgängig
71
+ action.unmark = Markierung entfernen
70
72
  action.unpack = Auspacken
71
73
  action.unpin = Loslösen
72
74
  action.upload = Dateien hier hochladen...
@@ -690,7 +692,7 @@ event.control.voice_cmd.toggle = Sprachsteuerung: Umschalten
690
692
  event.control.voice_msg.start = Spracheingabe: Start
691
693
  event.control.voice_msg.stop = Spracheingabe: Stopp
692
694
  event.control.voice_msg.toggle = Spracheingabe: Umschalten
693
- exit.msg = Gefällt dir PyGPT? Unterstütze die Entwicklung des Projekts:
695
+ exit.msg = Unterstütze die Entwicklung von PyGPT:
694
696
  expert.wait.failed: Aufruf des Experten fehlgeschlagen
695
697
  expert.wait.status: Warten auf Experten...
696
698
  files.delete.confirm = Datei/Verzeichnis löschen?
@@ -762,6 +764,7 @@ input.btn.send = Senden
762
764
  input.btn.stop = Stopp
763
765
  input.btn.update = Aktualisieren
764
766
  input.label = Eingabe (Ihr Prompt)
767
+ input.placeholder = Drücken Sie STRG + Pfeil nach oben/unten für den Prompt-Verlauf...
765
768
  input.radio.enter = Eingabetaste
766
769
  input.radio.enter_shift = Umschalt+Eingabe
767
770
  input.radio.none = Aus
@@ -28,6 +28,7 @@ action.group.remove = Remove from group
28
28
  action.idx = Index with LlamaIndex...
29
29
  action.idx.remove = Remove from
30
30
  action.import = Import
31
+ action.mark = Mark
31
32
  action.mkdir = Create directory...
32
33
  action.move_to = Move to
33
34
  action.new = New...
@@ -35,7 +36,7 @@ action.open = Open
35
36
  action.open_dir = Open in directory...
36
37
  action.open_dir_dest = Open Destination Directory
37
38
  action.open_dir_src = Open Source Directory
38
- action.open_dir_storage = Open Storage directory
39
+ action.open_dir_storage = Open storage directory
39
40
  action.open_new_tab = Open in a new tab
40
41
  action.open_new_window = Open (new window)
41
42
  action.pack = Pack
@@ -56,7 +57,7 @@ action.save_selection_as = Save selection as...
56
57
  action.select_all = Select all
57
58
  action.select_unselect_all = Select/Unselect All
58
59
  action.tab.add.chat = Add a new chat
59
- action.tab.add.chat.tooltip = Add a new chat (RMB click to more options...)
60
+ action.tab.add.chat.tooltip = Add a new chat (right-click for more options...)
60
61
  action.tab.add.notepad = Add a new notepad
61
62
  action.tab.add.tool = Add a new tool
62
63
  action.tab.close = Close
@@ -67,6 +68,7 @@ action.tab.move.right = Move to right column
67
68
  action.touch = Create file...
68
69
  action.truncate = Truncate
69
70
  action.undo = Undo
71
+ action.unmark = Unmark
70
72
  action.unpack = Unpack
71
73
  action.unpin = Unpin
72
74
  action.upload = Upload files here...
@@ -75,18 +77,18 @@ action.use.attachment = As attachment
75
77
  action.use.copy_sys_path = Copy system path
76
78
  action.use.copy_work_path = Copy working path
77
79
  action.use.image = As image...
78
- action.use.read_cmd = Ask for reading this file...
80
+ action.use.read_cmd = Ask to read this file...
79
81
  action.video.open = Open video or audio...
80
82
  action.video.play = Play video or audio...
81
83
  action.video.transcribe = Transcribe audio...
82
84
  agent.builder.confirm.clear.msg = Do you really want to clear the graph?
83
85
  agent.builder.confirm.clear.title = Clear
84
86
  agent.builder.confirm.delete.msg = Do you really want to delete the agent?
85
- agent.builder.title = Agents Builder
87
+ agent.builder.title = Agent Builder
86
88
  agent.coder.additional.label = Additional prompt
87
89
  agent.coder.additional.prompt.desc = Additional prompt for agent (will be added to the base prompt)
88
90
  agent.coder.base.label = Base prompt
89
- agent.coder.base.prompt.desc = Code execute prompt (initial)
91
+ agent.coder.base.prompt.desc = Code execution prompt (initial)
90
92
  agent.eval.feedback = Feedback
91
93
  agent.eval.next = Re-running with feedback
92
94
  agent.eval.score = Evaluator score
@@ -94,9 +96,9 @@ agent.eval.score.good = Response is good enough, exiting.
94
96
  agent.evolve.generation = Generation
95
97
  agent.evolve.maxgen_limit = Max generations reached, exiting.
96
98
  agent.evolve.option.max_generations = Max generations
97
- agent.evolve.option.num_parents = Num of parents
99
+ agent.evolve.option.num_parents = Number of parents
98
100
  agent.evolve.running = Running agent
99
- agent.evolve.winner = Winner: agent
101
+ agent.evolve.winner = Winner: Agent
100
102
  agent.infinity.confirm.content = WARNING: You are attempting to run an infinite loop! This may cause heavy token usage. Are you sure you want to continue?
101
103
  agent.name.supervisor = Supervisor
102
104
  agent.name.worker = Worker
@@ -149,9 +151,9 @@ agent.planner.label.with_name = {base}: {name}
149
151
  agent.planner.plan.label = Planner (initial)
150
152
  agent.planner.plan.prompt.desc = Initial plan prompt
151
153
  agent.planner.refine.label = Planner (refine)
152
- agent.planner.refine.prompt.desc = Plan refine prompt
154
+ agent.planner.refine.prompt.desc = Plan refinement prompt
153
155
  agent.planner.step.label = Execute prompt
154
- agent.planner.step.prompt.desc = Steps execute prompt
156
+ agent.planner.step.prompt.desc = Step execution prompt
155
157
  agent.planner.ui.current_plan = Current plan:
156
158
  agent.planner.ui.dependencies = Dependencies:
157
159
  agent.planner.ui.executing_plan = Executing plan...
@@ -163,13 +165,13 @@ agent.planner.ui.plan_marked_complete = Planner marked the plan as complete: {re
163
165
  agent.planner.ui.refine_failed_parse = Refine step failed to parse; continuing without changes.
164
166
  agent.planner.ui.refining_remaining_plan = Refining remaining plan...
165
167
  agent.planner.ui.subtask_failed = Sub-task failed: {error}
166
- agent.planner.ui.subtask_finished = Finished Sub Task {index}/{total}: {name}
167
- agent.planner.ui.subtask_header.one = **===== Sub Task {index}: {name} =====**
168
- agent.planner.ui.subtask_header.progress = **===== Sub Task {index}/{total}: {name} =====**
168
+ agent.planner.ui.subtask_finished = Finished sub-task {index}/{total}: {name}
169
+ agent.planner.ui.subtask_header.one = **===== Sub-task {index}: {name} =====**
170
+ agent.planner.ui.subtask_header.progress = **===== Sub-task {index}/{total}: {name} =====**
169
171
  agent.planner.ui.updated_remaining_plan = Updated remaining plan:
170
172
  agent.tab.debug = Debug
171
173
  alert.preset.empty_id = Name is required.
172
- alert.preset.no_chat_completion = At least one of: chat, completion, img or vision option is required!
174
+ alert.preset.no_chat_completion = At least one of: chat, completion, img, or vision option is required!
173
175
  alert.snap.file_manager = Snap detected. Please open the directory manually in your file manager:
174
176
  alert.title = Info
175
177
  assistant.action.delete = Delete
@@ -186,7 +188,7 @@ assistant.instructions = Instructions (system prompt)
186
188
  assistant.model = Model
187
189
  assistant.name = Name
188
190
  assistant.new = Create
189
- assistant.new.id_tip = Leave empty ID if you are creating a new Assistant.\n...or provide ID from OpenAI if the Assistant already exists on the server.
191
+ assistant.new.id_tip = Leave the ID empty if you are creating a new Assistant.\n...or provide the ID from OpenAI if the Assistant already exists on the server.
190
192
  assistant.run.completed = Run: Completed
191
193
  assistant.run.failed = Run: Failed
192
194
  assistant.run.func.call = Run: func call...
@@ -228,8 +230,8 @@ attachments_uploaded.btn.clear = Clear
228
230
  attachments_uploaded.btn.sync = Sync
229
231
  attachments_uploaded.btn.sync.all = All stores
230
232
  attachments_uploaded.btn.sync.current = Current only
231
- attachments_uploaded.clear.confirm = WARNING: are you sure you want to delete all these files from the remote server?
232
- attachments_uploaded.delete.confirm = WARNING: are you sure you want to delete this file from the remote server?
233
+ attachments_uploaded.clear.confirm = WARNING: Are you sure you want to delete all these files from the remote server?
234
+ attachments_uploaded.delete.confirm = WARNING: Are you sure you want to delete this file from the remote server?
233
235
  attachments_uploaded.sync.tip = Tip: click on 'Sync' to retrieve the file list from OpenAI
234
236
  attachments_uploaded.tab = Uploaded
235
237
  audio.auto_turn = Auto (VAD)
@@ -239,13 +241,13 @@ audio.control.btn = Voice control
239
241
  audio.loop = Loop
240
242
  audio.magic_word.detected = Magic word detected!
241
243
  audio.magic_word.invalid = Not a magic word :(
242
- audio.magic_word.please = Magic word please...
244
+ audio.magic_word.please = Magic word, please...
243
245
  audio.speak.btn = Microphone
244
246
  audio.speak.btn.continuous = Continuous recording
245
247
  audio.speak.btn.stop = Stop
246
248
  audio.speak.btn.stop.tooltip = Click to stop microphone listening
247
249
  audio.speak.btn.tooltip = Click to start microphone listening
248
- audio.speak.energy = Mic. Volume
250
+ audio.speak.energy = Mic volume
249
251
  audio.speak.ignoring = Ignored (no prefix)
250
252
  audio.speak.now = Speak now...
251
253
  audio.speak.sending = Sending...
@@ -257,7 +259,7 @@ audio.transcribe.open = Open audio/video file and transcribe...
257
259
  audio.transcribe.result.finished = Finished: {path}
258
260
  audio.transcribe.result.selected = Selected file: {path}
259
261
  audio.transcribe.tip = Tip: click on "Open..." to begin transcribing the audio from the file. The audio input provider from the plugin settings will be utilized.
260
- audio.transcribe.title = Audio transcribe
262
+ audio.transcribe.title = Audio transcription
261
263
  calendar.day.label = Set label color...
262
264
  calendar.day.label.color.blue = Blue
263
265
  calendar.day.label.color.default = Default
@@ -282,12 +284,12 @@ chat.prefix.url = Link
282
284
  clipboard.copied = Copied to clipboard.
283
285
  clipboard.copied_to = Copied to clipboard:
284
286
  cmd.enabled = + Tools
285
- cmd.tip = Tip: To enable the execution of tools from plugins you must enable the "+ Tools" option.
287
+ cmd.tip = Tip: To enable the execution of tools from plugins, you must enable the "+ Tools" option.
286
288
  coming_soon = Coming soon...
287
289
  common.down = Move down
288
290
  common.up = Move up
289
291
  computer_use.sandbox = Sandbox (Playwright)
290
- computer_use.sandbox.tooltip = Run web automation in sandboxed environment using Playwright - recommended for better security.\nINFO: Playwright must be installed and set up properly.
292
+ computer_use.sandbox.tooltip = Run web automation in a sandboxed environment using Playwright - recommended for better security.\nINFO: Playwright must be installed and set up properly.
291
293
  confirm.assistant.delete = Delete assistant?
292
294
  confirm.assistant.files.clear = Clear files (local only)?
293
295
  confirm.assistant.functions.clear = Are you sure you want to clear the functions list?
@@ -504,7 +506,7 @@ dialog.workdir.change.empty.alert = Directory is not empty! Aborting.
504
506
  dialog.workdir.reset.btn = Current
505
507
  dialog.workdir.result.directory_not_exists = Destination directory does not exist!
506
508
  dialog.workdir.result.failed = An error occurred while moving the working directory.
507
- dialog.workdir.result.no_free_space = Too low space on disk! Required: {required}, Free space: {free}.
509
+ dialog.workdir.result.no_free_space = Not enough disk space! Required: {required}, Free space: {free}.
508
510
  dialog.workdir.result.same_directory = Nothing to move.
509
511
  dialog.workdir.result.success = [OK] The working directory is currently set to: {path}
510
512
  dialog.workdir.result.wait = Please wait... moving the current working directory... This may take a while...
@@ -571,13 +573,13 @@ dictionary.plugin.audio_input.google_cloud_args.type = Type: for dict use JSON s
571
573
  dictionary.plugin.audio_input.google_cloud_args.value = Keyword argument value
572
574
  dictionary.plugin.cmd_api.cmds.enabled = Enabled (True/False)
573
575
  dictionary.plugin.cmd_api.cmds.endpoint = Endpoint: API endpoint URL, use {param} as GET param placeholders
574
- dictionary.plugin.cmd_api.cmds.get_params = GET params: list, separated by comma, GET params to append to endpoint URL
576
+ dictionary.plugin.cmd_api.cmds.get_params = GET params: list, separated by comma; GET params to append to endpoint URL
575
577
  dictionary.plugin.cmd_api.cmds.headers = Headers: provide the JSON object with a dictionary of extra request headers, like Authorization, API keys, etc.
576
578
  dictionary.plugin.cmd_api.cmds.instruction = Instruction: description for the model on when and how to use this API call
577
579
  dictionary.plugin.cmd_api.cmds.name = Name: unique API call name (ID)
578
580
  dictionary.plugin.cmd_api.cmds.post_json = POST JSON: provide the JSON object, template to send in POST JSON request, use %param% as POST param placeholders
579
- dictionary.plugin.cmd_api.cmds.post_params = POST params: list, separated by comma, POST params to send in POST request
580
- dictionary.plugin.cmd_api.cmds.type = Request type: use GET for basic GET request, POST to send encoded POST params or POST_JSON to send JSON-encoded object as body
581
+ dictionary.plugin.cmd_api.cmds.post_params = POST params: list, separated by comma; POST params to send in POST request
582
+ dictionary.plugin.cmd_api.cmds.type = Request type: use GET for basic GET request, POST to send encoded POST params, or POST_JSON to send JSON-encoded object as body
581
583
  dictionary.plugin.cmd_custom.cmds.cmd = Command to execute
582
584
  dictionary.plugin.cmd_custom.cmds.enabled = Enabled (True/False)
583
585
  dictionary.plugin.cmd_custom.cmds.instruction = Instruction prompt
@@ -600,14 +602,14 @@ docker.build.finish = Success! The Docker image has been built. You can now requ
600
602
  docker.build.start = Building Docker image... please wait...
601
603
  docker.image.build = The Docker image has not been built yet. This will happen now, and it may take a while (but it's a one-time procedure). The execution of the command has been paused. Once the image is built, please execute the command again.
602
604
  docker.install = Sandbox requires Docker to be installed. Docker was not detected on this system. Please install Docker first; you can find the instructions here: https://docs.docker.com/engine/install/. The execution of the current command has been paused.
603
- docker.install.snap = \n\nSNAP VERSION: \nYou are not connected to built-in Docker daemon. Please connect the slots with:\n\nsudo snap connect pygpt:docker-executables docker:docker-executables\n\nsudo snap connect pygpt:docker docker:docker-daemon\n\n...and restart the application.
605
+ docker.install.snap = \n\nSNAP VERSION: \nYou are not connected to the built-in Docker daemon. Please connect the slots with:\n\nsudo snap connect pygpt:docker-executables docker:docker-executables\n\nsudo snap connect pygpt:docker docker:docker-daemon\n\n...and restart the application.
604
606
  dt.days_ago = days ago
605
607
  dt.month = month ago
606
608
  dt.today = today
607
609
  dt.week = week ago
608
610
  dt.weeks = weeks ago
609
611
  dt.yesterday = yesterday
610
- error.assistant_not_selected = Please create, import or select an assistant first!
612
+ error.assistant_not_selected = Please create, import, or select an assistant first!
611
613
  eval.score = Score
612
614
  event.audio.app.started = Welcome!
613
615
  event.audio.app.status = Current mode: {mode}.\nCurrent conversation: {ctx}, last updated {last}.\nTotal conversations: {total}.
@@ -630,7 +632,7 @@ event.audio.ctx.search.string = Found records: {num}.
630
632
  event.audio.ctx.selected = Selected context: {ctx}.
631
633
  event.audio.input.append = Text appended to input.
632
634
  event.audio.input.call = Input call.
633
- event.audio.input.disable = Audio input enabled.
635
+ event.audio.input.disable = Audio input disabled.
634
636
  event.audio.input.enable = Audio input enabled.
635
637
  event.audio.input.error = An error occurred during sending input.
636
638
  event.audio.input.sent = Input sent.
@@ -706,9 +708,9 @@ event.control.voice_cmd.toggle = Voice control: Toggle
706
708
  event.control.voice_msg.start = Voice input: Start
707
709
  event.control.voice_msg.stop = Voice input: Stop
708
710
  event.control.voice_msg.toggle = Voice input: Toggle
709
- exit.msg = Do you like PyGPT? Support the development of the project:
710
- expert.wait.failed: Failed calling expert
711
- expert.wait.status: Waiting for expert...
711
+ exit.msg = Support PyGPT development:
712
+ expert.wait.failed = Failed to call expert
713
+ expert.wait.status = Waiting for expert...
712
714
  files.delete.confirm = Delete file/directory?
713
715
  files.delete.recursive.confirm = Directory is not empty! Are you sure you want to delete the directory and all the files in it?
714
716
  files.explorer.header.indexed = Indexed at
@@ -778,6 +780,7 @@ input.btn.send = Send
778
780
  input.btn.stop = Stop
779
781
  input.btn.update = Update
780
782
  input.label = Input (Your prompt)
783
+ input.placeholder = Press Ctrl + Up/Down arrows for prompt history...
781
784
  input.radio.enter = Enter
782
785
  input.radio.enter_shift = Shift+Enter
783
786
  input.radio.none = Off
@@ -806,7 +809,7 @@ interpreter.menu.kernel.restart = IPython: restart kernel
806
809
  ipython.docker.build.finish = Success! The Docker image for IPython has been built.
807
810
  ipython.docker.build.start = Building Docker image... please wait...
808
811
  ipython.docker.install = Running IPython requires Docker to be installed. Docker was not detected on this system. Please install Docker first; you can find the instructions here: https://docs.docker.com/engine/install/. The execution of the current command has been paused.
809
- ipython.docker.install.snap = \n\nSNAP VERSION: \nYou are not connected to built-in Docker daemon. Please connect the slots with:\n\nsudo snap connect pygpt:docker-executables docker:docker-executables\n\nsudo snap connect pygpt:docker docker:docker-daemon\n\n...and restart the application.
812
+ ipython.docker.install.snap = \n\nSNAP VERSION: \nYou are not connected to the built-in Docker daemon. Please connect the slots with:\n\nsudo snap connect pygpt:docker-executables docker:docker-executables\n\nsudo snap connect pygpt:docker docker:docker-daemon\n\n...and restart the application.
810
813
  ipython.image.build = The Docker image for IPython has not been built yet. This will happen now, and it may take a while (but it's a one-time procedure). The execution of the command has been paused. Once the image is built, please execute the command again.
811
814
  layout.split = Split screen
812
815
  list.all = --- ALL ---
@@ -871,7 +874,7 @@ menu.info.donate = Donate PyGPT
871
874
  menu.info.github = GitHub
872
875
  menu.info.license = License
873
876
  menu.info.ms_store = Microsoft Store
874
- menu.info.pypi = PyPi
877
+ menu.info.pypi = PyPI
875
878
  menu.info.report = Report a bug
876
879
  menu.info.snap = Snap Store
877
880
  menu.info.updates = Check for updates...
@@ -984,7 +987,7 @@ models.importer.status.wait = Fetching models list...
984
987
  model.tokens = Output tokens
985
988
  model.tokens.desc = Max model output tokens
986
989
  model.tool_calls = Tool calls (function calling)
987
- model.tool_calls.desc = Enable native API function calling - not every model supports this, if disabled then system prompt with tools will be used
990
+ model.tool_calls.desc = Enable native API function calling - not every model supports this; if disabled, then system prompt with tools will be used
988
991
  mode.research = Research
989
992
  mode.research.tooltip = Web research with Perplexity
990
993
  mode.vision = Vision
@@ -993,8 +996,8 @@ msg.agent.plan = Plan
993
996
  msg.agent.plan.current = Current plan
994
997
  msg.agent.plan.deps = Dependencies
995
998
  msg.agent.plan.expected = Expected output
996
- msg.agent.plan.num_subtasks = Num of subtasks
997
- msg.agent.plan.subtask = Sub Task
999
+ msg.agent.plan.num_subtasks = Number of sub-tasks
1000
+ msg.agent.plan.subtask = Sub-task
998
1001
  msg.agent.step = Step
999
1002
  msg.eval.score = Score
1000
1003
  msg.name.evaluation = Evaluation
@@ -1043,7 +1046,7 @@ node.editor.property.name.placeholder = Name of the agent
1043
1046
  node.editor.property.output.name = Output
1044
1047
  node.editor.property.remote_tools.name = Remote tools
1045
1048
  node.editor.property.role.name = Role
1046
- node.editor.property.role.placeholder = Optional short description of agent's purpose
1049
+ node.editor.property.role.placeholder = Optional short description of the agent's purpose
1047
1050
  node.editor.rename.label = Name:
1048
1051
  node.editor.rename.title = Rename Node
1049
1052
  node.editor.side.input = Input
@@ -1073,7 +1076,7 @@ output.tips.10 = You can import new models by using the Config -> Models -> Impo
1073
1076
  output.tips.11 = Use profiles to quickly switch between different app configurations and settings.
1074
1077
  output.tips.12 = Create agents tailored to your tasks by selecting the best agent type. Customize agents' system prompts in the Presets editor as needed.
1075
1078
  output.tips.13 = You can use the microphone input in the notepad to save audio notes.
1076
- output.tips.2 = Press CTRL + F to open the Find dialog.
1079
+ output.tips.2 = Press Ctrl + F to open the Find dialog.
1077
1080
  output.tips.3 = Press the ESC key to stop generating a response at any time.
1078
1081
  output.tips.4 = To utilize tools from plugins, make sure the "+ Tools" checkbox is selected.
1079
1082
  output.tips.5 = You can add more chat or notepad tabs by clicking the [+] button in the top right corner or by right-clicking on any tab.
@@ -1177,7 +1180,7 @@ remote_tool.openai.mcp = Remote MCP
1177
1180
  remote_tool.openai.web_search = Web search
1178
1181
  screenshot.capture.name.prefix = Screenshot from
1179
1182
  settings.access.audio.event.speech = Use voice synthesis to describe events on the screen.
1180
- settings.access.audio.event.speech.disabled = Blacklist for voice synthesis events describe (ignored events)
1183
+ settings.access.audio.event.speech.disabled = Blacklist for voice synthesis event descriptions (ignored events)
1181
1184
  settings.access.audio.event.speech.disabled.desc = Add to this list all the actions that should not be described using audio synthesis.
1182
1185
  settings.access.audio.notify.execute = Audio notify voice command execution
1183
1186
  settings.access.audio.use_cache = Use audio output cache
@@ -1194,7 +1197,7 @@ settings.advanced.collapse = Show/hide advanced options
1194
1197
  settings.agent.api_use_responses = Use Responses API in Agent mode
1195
1198
  settings.agent.api_use_responses.desc = Use Responses API instead of ChatCompletions API in Agent (autonomous) mode. OpenAI models only.
1196
1199
  settings.agent.func_call.native = Use native API function calls
1197
- settings.agent.func_call.native.desc = If enabled, the application will use native API function calls instead of the internal pygpt format and the command prompts will not be used. Autonomus agent mode only.
1200
+ settings.agent.func_call.native.desc = If enabled, the application will use native API function calls instead of the internal pygpt format and the command prompts will not be used. Autonomous agent mode only.
1198
1201
  settings.agent.goal.notify = Display a tray notification when the goal is achieved.
1199
1202
  settings.agent.idx = Index to use
1200
1203
  settings.agent.idx.auto_retrieve = Auto retrieve additional context from RAG
@@ -1214,7 +1217,7 @@ settings.agent.llama.verbose = Verbose (log output to console)
1214
1217
  settings.agent.mode = Sub-mode for agents
1215
1218
  settings.agent.mode.desc = Sub-mode to use in Agent (Autonomous) mode
1216
1219
  settings.agent.openai.response.split = Split response messages
1217
- settings.agent.openai.response.split.desc = Split response messages to separated context items in OpenAI Agents mode.
1220
+ settings.agent.openai.response.split.desc = Split response messages into separate context items in OpenAI Agents mode.
1218
1221
  settings.agent.output.render.all = Display full agent output in chat view
1219
1222
  settings.agent.output.render.all.desc = If enabled, then full output from agent will be displayed in chat window if agent is enabled.
1220
1223
  settings.api_azure_endpoint = API Endpoint
@@ -1239,34 +1242,34 @@ settings.api_endpoint_perplexity = API Endpoint
1239
1242
  settings.api_endpoint_perplexity.desc = Perplexity API endpoint URL, default: https://api.perplexity.ai
1240
1243
  settings.api_endpoint_xai = API Endpoint
1241
1244
  settings.api_endpoint_xai.desc = xAI API endpoint URL, default: https://api.x.ai
1242
- settings.api_key = OpenAI API KEY
1243
- settings.api_key.anthropic = Anthropic API KEY
1245
+ settings.api_key = OpenAI API key
1246
+ settings.api_key.anthropic = Anthropic API key
1244
1247
  settings.api_key.anthropic.desc = Required for the Anthropic API and Claude models.
1245
- settings.api_key.deepseek = DeepSeek API KEY
1248
+ settings.api_key.deepseek = DeepSeek API key
1246
1249
  settings.api_key.deepseek.desc = Required for the DeepSeek API.
1247
1250
  settings.api_key.desc = Required for the OpenAI API. If you wish to use custom endpoints or local APIs, then you may enter any value here.
1248
- settings.api_key.google = Google API KEY
1251
+ settings.api_key.google = Google API key
1249
1252
  settings.api_key.google.desc = Required for the Google API and Gemini models.
1250
- settings.api_key.hugging_face = HuggingFace API KEY
1253
+ settings.api_key.hugging_face = HuggingFace API key
1251
1254
  settings.api_key.hugging_face.desc = Required for the HuggingFace API.
1252
- settings.api_key_management.xai = Management API KEY
1253
- settings.api_key_management.xai.desc = xAI Management API KEY. Required for Collections management via Remote vector stores tool.
1254
- settings.api_key.mistral = Mistral AI API KEY
1255
+ settings.api_key_management.xai = Management API key
1256
+ settings.api_key_management.xai.desc = xAI Management API key. Required for Collections management via Remote vector stores tool.
1257
+ settings.api_key.mistral = Mistral AI API key
1255
1258
  settings.api_key.mistral.desc = Required for the Mistral AI API.
1256
- settings.api_key.open_router = OpenRouter API KEY
1259
+ settings.api_key.open_router = OpenRouter API key
1257
1260
  settings.api_key.open_router.desc = Required for the OpenRouter API.
1258
- settings.api_key.perplexity = Perplexity API KEY
1261
+ settings.api_key.perplexity = Perplexity API key
1259
1262
  settings.api_key.perplexity.desc = Required for the Perplexity API.
1260
- settings.api_key.voyage = VoyageAI API KEY
1263
+ settings.api_key.voyage = VoyageAI API key
1261
1264
  settings.api_key.voyage.desc = Required for the Voyage API - embeddings for Anthropic and DeepSeek API.
1262
- settings.api_key.xai = xAI API KEY
1265
+ settings.api_key.xai = xAI API key
1263
1266
  settings.api_key.xai.desc = Required for the xAI API and Grok models.
1264
1267
  settings.api_native_anthropic = Use native API SDK
1265
1268
  settings.api_native_anthropic.desc = Use native Anthropic SDK instead of compatible OpenAI client
1266
1269
  settings.api_native_google = Use native API SDK
1267
- settings.api_native_google.app_credentials = Google Application credentials (path)
1270
+ settings.api_native_google.app_credentials = Google Application credentials (path)
1268
1271
  settings.api_native_google.app_credentials.desc = Absolute path to credentials.json, e.g. /home/user/credentials.json
1269
- settings.api_native_google.cloud_location = Google Cloud location
1272
+ settings.api_native_google.cloud_location = Google Cloud location
1270
1273
  settings.api_native_google.cloud_location.desc = Provide your Google Cloud project location, default: us-central1
1271
1274
  settings.api_native_google.cloud_project = Google Cloud project
1272
1275
  settings.api_native_google.cloud_project.desc = Provide your Google Cloud project name
@@ -1276,7 +1279,7 @@ settings.api_native_google.use_vertex.desc = Enable to use VertexAI in Google Ge
1276
1279
  settings.api_native_xai = Use native API SDK
1277
1280
  settings.api_native_xai.desc = Use native xAI SDK instead of compatible OpenAI client
1278
1281
  settings.api_proxy = Proxy address
1279
- settings.api_proxy.desc = Optional, proxy for API SDKs, e.g. http://proxy.example.com or socks5://user:pass@host:port
1282
+ settings.api_proxy.desc = Optional proxy for API SDKs, e.g. http://proxy.example.com or socks5://user:pass@host:port
1280
1283
  settings.api_proxy.enabled = Use proxy
1281
1284
  settings.api_proxy.enabled.desc = Enable this option to use a proxy for connections to APIs
1282
1285
  settings.api_use_responses = Use Responses API in Chat mode
@@ -1436,8 +1439,8 @@ settings.llama.idx.excluded.ext.desc = File extensions to exclude if no data loa
1436
1439
  settings.llama.idx.excluded.force = Force exclude files
1437
1440
  settings.llama.idx.excluded.force.desc = If enabled, the exclusion list will be applied even when the data loader for the extension is active.
1438
1441
  settings.llama.idx.list = Indexes
1439
- settings.llama.idx.react = Use ReAct agent for Tool calls in Chat with Files mode.
1440
- settings.llama.idx.react.desc = If enabled, the ReAct agent will be used if the option "+Tools" will be enabled.
1442
+ settings.llama.idx.react = Use ReAct agent for tool calls in Chat with Files mode.
1443
+ settings.llama.idx.react.desc = If enabled, the ReAct agent will be used if the option "+Tools" is enabled.
1441
1444
  settings.llama.idx.recursive = Recursive directory indexing
1442
1445
  settings.llama.idx.replace_old = Replace old document versions in the index during re-indexing
1443
1446
  settings.llama.idx.replace_old.desc = If enabled, previous versions of documents will be deleted from the index when the newest versions are indexed.
@@ -1530,7 +1533,7 @@ settings.remote_tools.xai.code_execution = Code Execution
1530
1533
  settings.remote_tools.xai.code_execution.desc = Enable Code Execution remote tool.
1531
1534
  settings.remote_tools.xai.collections = Collections Search
1532
1535
  settings.remote_tools.xai.collections.args = Collection IDs
1533
- settings.remote_tools.xai.collections.args.desc = Collection IDs, separated by comma (,)\nNOTE: Management API KEY is required for managing collections in Remote vector stores tool.
1536
+ settings.remote_tools.xai.collections.args.desc = Collection IDs, separated by comma (,)\nNOTE: Management API key is required for managing collections in Remote vector stores tool.
1534
1537
  settings.remote_tools.xai.collections.desc = Enable Collections Search remote tool.
1535
1538
  settings.remote_tools.xai.mcp = Remote MCP
1536
1539
  settings.remote_tools.xai.mcp.args = Remote MCP configuration
@@ -1551,9 +1554,9 @@ settings.remote_tools.xai.x_search.desc = Enable X Search remote tool.
1551
1554
  settings.render.code_syntax = Code syntax highlight
1552
1555
  settings.render.code_syntax.disabled = Disable syntax highlight
1553
1556
  settings.render.code_syntax.final_max_chars = Max chars to highlight (static)
1554
- settings.render.code_syntax.final_max_chars.desc = Syntax highlight: max chars to highlight in static content, 0 to disable
1557
+ settings.render.code_syntax.final_max_chars.desc = Syntax highlight: max chars to highlight in static content, 0 to disable
1555
1558
  settings.render.code_syntax.final_max_lines = Max lines to highlight (static)
1556
- settings.render.code_syntax.final_max_lines.desc = Syntax highlight: max lines to highlight in static content, 0 to disable
1559
+ settings.render.code_syntax.final_max_lines.desc = Syntax highlight: max lines to highlight in static content, 0 to disable
1557
1560
  settings.render.code_syntax.stream_max_lines = Max lines to highlight (real-time)
1558
1561
  settings.render.code_syntax.stream_max_lines.desc = Syntax highlight: max lines to highlight in stream, 0 to disable
1559
1562
  settings.render.code_syntax.stream_n_chars = Highlight every N chars (real-time)
@@ -1661,7 +1664,7 @@ status.assistant.deleted = Assistant deleted
1661
1664
  status.assistant.saved = Assistant updated
1662
1665
  status.audio.start = Generating audio, please wait...
1663
1666
  status.audio.stopped = Stopped audio playback.
1664
- status.audio.too_short = Audio record is too short. Try again.
1667
+ status.audio.too_short = Audio recording is too short. Try again.
1665
1668
  status.cmd.wait = Executing command... please wait...
1666
1669
  status.deleted = Deleted
1667
1670
  status.error = Oops... an error occurred :(
@@ -1700,7 +1703,7 @@ text.context_menu.find = Find...
1700
1703
  theme.dark = Dark
1701
1704
  theme.light = Light
1702
1705
  tip.input.attachments = Here you can add attachments to the message you are sending. You can send text files, code files, PDFs, documents, spreadsheets, and others - they will be used as additional context in the conversation. You can also send images or captured photos from a camera for analysis.
1703
- tip.input.attachments.ctx = Below are the uploaded and indexed attachments available to use as additional context for the entire discussion above. Options: Full context - attachs the entire content from the attachment in the input prompt, RAG - queries the indexed attachment for additional context, Summary - attachs a summary of the added content in the prompt, Off - disables additional context. **WARNING:** using Full context mode may consume a lot of tokens (as the raw content from the attachment will be attached to the input prompt)!
1706
+ tip.input.attachments.ctx = Below are the uploaded and indexed attachments available to use as additional context for the entire discussion above. Options: Full context - attaches the entire content from the attachment in the input prompt; RAG - queries the indexed attachment for additional context; Summary - attaches a summary of the added content in the prompt; Off - disables additional context. **WARNING:** Using Full context mode may consume a lot of tokens (as the raw content from the attachment will be attached to the input prompt)!
1704
1707
  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.
1705
1708
  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.
1706
1709
  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.
@@ -1721,8 +1724,8 @@ toolbox.agent.llama.loop.enabled.label = Loop
1721
1724
  toolbox.agent.llama.loop.label = Loop / evaluate (until score, 0% = infinity)
1722
1725
  toolbox.agent.llama.loop.mode.complete = Min. % complete
1723
1726
  toolbox.agent.llama.loop.mode.score = Min. % score
1724
- toolbox.agent.llama.loop.mode.tooltip = Evaluate task completion / or task result accuracy
1725
- toolbox.agent.llama.loop.score.tooltip = Required score to finish, 0% = infinity loop
1727
+ toolbox.agent.llama.loop.mode.tooltip = Evaluate task completion or task result accuracy
1728
+ toolbox.agent.llama.loop.score.tooltip = Required score to finish, 0% = infinite loop
1726
1729
  toolbox.agent.preset.placeholder = System prompt is definable per agent in Agent preset
1727
1730
  toolbox.agents.label = Agents
1728
1731
  toolbox.assistants.label = Assistants
@@ -1813,7 +1816,7 @@ video.remix = Remix/Extend
1813
1816
  video.remix.tooltip = Enable remix/extend from the previous video in context (Sora2, Veo3.1).\nIf enabled, the previous video will be used as a reference instead of creating a new one from scratch.
1814
1817
  vid.status.downloading = Downloading video... please wait...
1815
1818
  vid.status.generating = Generating video from
1816
- vid.status.prompt.error = Enhancement prompt error occured
1819
+ vid.status.prompt.error = Enhancement prompt error occurred
1817
1820
  vid.status.prompt.wait = Preparing prompt... please wait...
1818
1821
  vision.capture.auto = Auto capture
1819
1822
  vision.capture.auto.click = Auto-capture is enabled!
@@ -1823,7 +1826,7 @@ vision.capture.enable = Camera
1823
1826
  vision.capture.enable.tooltip = Enable / disable image capture from the camera
1824
1827
  vision.capture.error = Capture error (no camera?)
1825
1828
  vision.capture.label = Click on the image to capture
1826
- vision.capture.manual.captured.error = Error in capturing from the camera!
1829
+ vision.capture.manual.captured.error = Error capturing from the camera!
1827
1830
  vision.capture.manual.captured.success = Image captured from the camera:
1828
1831
  vision.capture.name.prefix = Camera capture:
1829
1832
  vision.capture.options.title = Video capture
@@ -28,6 +28,7 @@ action.group.remove = Quitar del grupo
28
28
  action.idx = Indexar con LlamaIndex...
29
29
  action.idx.remove = Eliminar de
30
30
  action.import = Importar
31
+ action.mark = Resaltar
31
32
  action.mkdir = Crear directorio...
32
33
  action.move_to = Mover a
33
34
  action.new = Nuevo...
@@ -67,6 +68,7 @@ action.tab.move.right = Mover a la columna derecha
67
68
  action.touch = Crear archivo...
68
69
  action.truncate = Borrar todo
69
70
  action.undo = Deshacer
71
+ action.unmark = Quitar resaltado
70
72
  action.unpack = Desempaquetar
71
73
  action.unpin = Desanclar
72
74
  action.upload = Sube archivos aquí...
@@ -691,7 +693,7 @@ event.control.voice_cmd.toggle = Control de voz: Conmutar
691
693
  event.control.voice_msg.start = Entrada de voz: Iniciar
692
694
  event.control.voice_msg.stop = Entrada de voz: Detener
693
695
  event.control.voice_msg.toggle = Entrada de voz: Conmutar
694
- exit.msg = ¿Te gusta PyGPT? Apoya el desarrollo del proyecto:
696
+ exit.msg = Apoya el desarrollo de PyGPT:
695
697
  expert.wait.failed: Error al llamar al experto
696
698
  expert.wait.status: Esperando al experto...
697
699
  files.delete.confirm = ¿Eliminar archivo/directorio?
@@ -763,6 +765,7 @@ input.btn.send = Enviar
763
765
  input.btn.stop = Detener
764
766
  input.btn.update = Actualizar
765
767
  input.label = Entrada (Su indicación)
768
+ input.placeholder = Pulsa CTRL + flechas arriba/abajo para el historial de prompts...
766
769
  input.radio.enter = Enter
767
770
  input.radio.enter_shift = Shift+Enter
768
771
  input.radio.none = Desactivado