pygpt-net 2.4.37__py3-none-any.whl → 2.4.41__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- CHANGELOG.md +29 -0
- README.md +44 -115
- pygpt_net/CHANGELOG.txt +29 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/controller/__init__.py +7 -3
- pygpt_net/controller/access/control.py +1 -1
- pygpt_net/controller/access/voice.py +11 -5
- pygpt_net/controller/agent/experts.py +11 -6
- pygpt_net/controller/agent/legacy.py +8 -6
- pygpt_net/controller/agent/llama.py +4 -2
- pygpt_net/controller/assistant/__init__.py +9 -4
- pygpt_net/controller/assistant/batch.py +38 -21
- pygpt_net/controller/assistant/editor.py +7 -6
- pygpt_net/controller/assistant/files.py +23 -7
- pygpt_net/controller/assistant/store.py +20 -7
- pygpt_net/controller/assistant/threads.py +34 -8
- pygpt_net/controller/attachment.py +29 -10
- pygpt_net/controller/audio/__init__.py +25 -4
- pygpt_net/controller/calendar/__init__.py +23 -4
- pygpt_net/controller/calendar/note.py +57 -11
- pygpt_net/controller/camera.py +3 -2
- pygpt_net/controller/chat/__init__.py +5 -3
- pygpt_net/controller/chat/attachment.py +34 -7
- pygpt_net/controller/chat/command.py +4 -2
- pygpt_net/controller/chat/common.py +11 -4
- pygpt_net/controller/chat/files.py +10 -3
- pygpt_net/controller/chat/image.py +17 -5
- pygpt_net/controller/chat/input.py +10 -7
- pygpt_net/controller/chat/output.py +21 -6
- pygpt_net/controller/chat/render.py +100 -21
- pygpt_net/controller/chat/response.py +34 -7
- pygpt_net/controller/chat/stream.py +4 -2
- pygpt_net/controller/chat/text.py +6 -4
- pygpt_net/controller/command.py +11 -3
- pygpt_net/controller/config/__init__.py +34 -6
- pygpt_net/controller/config/field/checkbox.py +7 -4
- pygpt_net/controller/config/field/cmd.py +7 -5
- pygpt_net/controller/config/field/combo.py +14 -6
- pygpt_net/controller/config/field/dictionary.py +14 -11
- pygpt_net/controller/config/field/input.py +9 -6
- pygpt_net/controller/config/field/slider.py +11 -8
- pygpt_net/controller/config/field/textarea.py +8 -5
- pygpt_net/controller/config/placeholder.py +52 -21
- pygpt_net/controller/ctx/__init__.py +138 -49
- pygpt_net/controller/ctx/common.py +15 -4
- pygpt_net/controller/ctx/extra.py +11 -3
- pygpt_net/controller/ctx/summarizer.py +24 -5
- pygpt_net/controller/debug/__init__.py +27 -6
- pygpt_net/controller/dialogs/confirm.py +34 -7
- pygpt_net/controller/dialogs/debug.py +4 -2
- pygpt_net/controller/dialogs/info.py +7 -2
- pygpt_net/controller/files.py +48 -10
- pygpt_net/controller/finder.py +11 -5
- pygpt_net/controller/idx/__init__.py +10 -3
- pygpt_net/controller/idx/common.py +4 -2
- pygpt_net/controller/idx/indexer.py +25 -17
- pygpt_net/controller/idx/settings.py +9 -3
- pygpt_net/controller/kernel/__init__.py +34 -8
- pygpt_net/controller/kernel/reply.py +12 -3
- pygpt_net/controller/kernel/stack.py +5 -3
- pygpt_net/controller/lang/custom.py +2 -7
- pygpt_net/controller/lang/mapping.py +5 -3
- pygpt_net/controller/layout.py +2 -2
- pygpt_net/controller/mode.py +16 -4
- pygpt_net/controller/model/__init__.py +14 -3
- pygpt_net/controller/model/editor.py +8 -3
- pygpt_net/controller/notepad.py +26 -12
- pygpt_net/controller/painter/capture.py +23 -4
- pygpt_net/controller/painter/common.py +9 -7
- pygpt_net/controller/plugins/__init__.py +19 -5
- pygpt_net/controller/plugins/presets.py +15 -6
- pygpt_net/controller/plugins/settings.py +9 -3
- pygpt_net/controller/presets/__init__.py +55 -16
- pygpt_net/controller/presets/editor.py +26 -10
- pygpt_net/controller/settings/__init__.py +3 -2
- pygpt_net/controller/settings/editor.py +29 -7
- pygpt_net/controller/settings/profile.py +22 -5
- pygpt_net/controller/theme/__init__.py +54 -12
- pygpt_net/controller/theme/common.py +24 -2
- pygpt_net/controller/theme/markdown.py +32 -16
- pygpt_net/controller/theme/menu.py +26 -5
- pygpt_net/controller/theme/nodes.py +2 -5
- pygpt_net/controller/tools/__init__.py +40 -2
- pygpt_net/controller/ui/__init__.py +4 -6
- pygpt_net/controller/ui/tabs.py +363 -65
- pygpt_net/core/access/actions.py +6 -4
- pygpt_net/core/access/shortcuts.py +4 -3
- pygpt_net/core/access/voice.py +6 -5
- pygpt_net/core/agents/legacy.py +4 -2
- pygpt_net/core/agents/memory.py +7 -2
- pygpt_net/core/agents/observer/evaluation.py +15 -7
- pygpt_net/core/agents/provider.py +9 -4
- pygpt_net/core/agents/runner.py +61 -15
- pygpt_net/core/agents/tools.py +23 -5
- pygpt_net/core/assistants/__init__.py +6 -4
- pygpt_net/core/assistants/files.py +35 -12
- pygpt_net/core/assistants/store.py +20 -10
- pygpt_net/core/attachments/__init__.py +54 -15
- pygpt_net/core/attachments/context.py +92 -29
- pygpt_net/core/audio/__init__.py +71 -3
- pygpt_net/core/audio/context.py +7 -2
- pygpt_net/core/bridge/__init__.py +22 -6
- pygpt_net/core/bridge/context.py +5 -3
- pygpt_net/core/calendar/__init__.py +57 -11
- pygpt_net/core/chain/__init__.py +8 -2
- pygpt_net/core/chain/chat.py +10 -8
- pygpt_net/core/chain/completion.py +10 -7
- pygpt_net/core/command.py +62 -17
- pygpt_net/core/ctx/__init__.py +260 -58
- pygpt_net/core/ctx/bag.py +25 -4
- pygpt_net/core/ctx/container.py +28 -17
- pygpt_net/core/ctx/idx.py +45 -8
- pygpt_net/core/ctx/output.py +95 -74
- pygpt_net/core/ctx/reply.py +5 -2
- pygpt_net/core/db/__init__.py +8 -7
- pygpt_net/core/db/viewer.py +17 -11
- pygpt_net/core/debug/__init__.py +10 -9
- pygpt_net/core/debug/tabs.py +5 -2
- pygpt_net/core/docker/__init__.py +11 -5
- pygpt_net/core/docker/builder.py +11 -3
- pygpt_net/core/events/app.py +5 -3
- pygpt_net/core/events/base.py +11 -5
- pygpt_net/core/events/control.py +5 -3
- pygpt_net/core/events/event.py +17 -7
- pygpt_net/core/events/kernel.py +5 -3
- pygpt_net/core/events/render.py +5 -3
- pygpt_net/core/experts/__init__.py +5 -4
- pygpt_net/core/filesystem/__init__.py +52 -34
- pygpt_net/core/filesystem/actions.py +8 -5
- pygpt_net/core/filesystem/editor.py +13 -3
- pygpt_net/core/filesystem/types.py +12 -7
- pygpt_net/core/filesystem/url.py +7 -3
- pygpt_net/core/idx/__init__.py +34 -25
- pygpt_net/core/idx/chat.py +40 -16
- pygpt_net/core/idx/context.py +6 -2
- pygpt_net/core/idx/indexing.py +84 -35
- pygpt_net/core/idx/llm.py +11 -3
- pygpt_net/core/idx/metadata.py +13 -3
- pygpt_net/core/idx/types/ctx.py +32 -6
- pygpt_net/core/idx/types/external.py +41 -7
- pygpt_net/core/idx/types/files.py +31 -6
- pygpt_net/core/image.py +15 -4
- pygpt_net/core/llm/__init__.py +13 -3
- pygpt_net/core/locale.py +34 -8
- pygpt_net/core/models.py +4 -3
- pygpt_net/core/notepad.py +9 -4
- pygpt_net/core/plugins.py +7 -6
- pygpt_net/core/presets.py +19 -10
- pygpt_net/core/profile.py +12 -6
- pygpt_net/core/prompt/__init__.py +10 -3
- pygpt_net/core/prompt/custom.py +7 -6
- pygpt_net/core/prompt/template.py +9 -3
- pygpt_net/core/render/base.py +117 -22
- pygpt_net/core/render/markdown/body.py +27 -7
- pygpt_net/core/render/markdown/renderer.py +119 -22
- pygpt_net/core/render/plain/body.py +22 -5
- pygpt_net/core/render/plain/renderer.py +97 -21
- pygpt_net/core/render/web/body.py +75 -25
- pygpt_net/core/render/web/renderer.py +313 -63
- pygpt_net/core/settings.py +9 -4
- pygpt_net/core/tabs/__init__.py +290 -103
- pygpt_net/core/tabs/tab.py +17 -4
- pygpt_net/core/tokens.py +44 -11
- pygpt_net/core/updater/__init__.py +20 -7
- pygpt_net/core/vision/analyzer.py +29 -6
- pygpt_net/core/web.py +130 -2
- pygpt_net/data/config/config.json +15 -4
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/modes.json +3 -3
- pygpt_net/data/config/settings.json +55 -10
- pygpt_net/data/config/settings_section.json +3 -0
- pygpt_net/data/css/style.light.css +1 -0
- pygpt_net/data/css/{web.css → web-blocks.css} +162 -133
- pygpt_net/data/css/{web.light.css → web-blocks.light.css} +7 -0
- pygpt_net/data/css/web-chatgpt.css +350 -0
- pygpt_net/data/css/web-chatgpt.dark.css +64 -0
- pygpt_net/data/css/web-chatgpt.light.css +75 -0
- pygpt_net/data/css/web-chatgpt_wide.css +350 -0
- pygpt_net/data/css/web-chatgpt_wide.dark.css +64 -0
- pygpt_net/data/css/web-chatgpt_wide.light.css +75 -0
- pygpt_net/data/icons/split_screen.svg +1 -0
- pygpt_net/data/locale/locale.de.ini +12 -0
- pygpt_net/data/locale/locale.en.ini +17 -2
- pygpt_net/data/locale/locale.es.ini +12 -0
- pygpt_net/data/locale/locale.fr.ini +12 -0
- pygpt_net/data/locale/locale.it.ini +12 -0
- pygpt_net/data/locale/locale.pl.ini +12 -0
- pygpt_net/data/locale/locale.uk.ini +12 -0
- pygpt_net/data/locale/locale.zh.ini +12 -0
- pygpt_net/data/locale/plugin.cmd_web.de.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.en.ini +20 -10
- pygpt_net/data/locale/plugin.cmd_web.es.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.fr.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.it.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.pl.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.uk.ini +2 -0
- pygpt_net/data/locale/plugin.cmd_web.zh.ini +2 -0
- pygpt_net/icons.qrc +1 -0
- pygpt_net/icons_rc.py +165 -136
- pygpt_net/item/ctx.py +46 -24
- pygpt_net/plugin/audio_input/simple.py +21 -5
- pygpt_net/plugin/audio_output/__init__.py +4 -1
- pygpt_net/plugin/base/config.py +4 -2
- pygpt_net/plugin/base/plugin.py +26 -6
- pygpt_net/plugin/base/worker.py +37 -9
- pygpt_net/plugin/cmd_code_interpreter/__init__.py +39 -37
- pygpt_net/plugin/cmd_code_interpreter/runner.py +25 -12
- pygpt_net/plugin/cmd_web/__init__.py +46 -6
- pygpt_net/plugin/cmd_web/config.py +74 -48
- pygpt_net/plugin/cmd_web/websearch.py +61 -28
- pygpt_net/plugin/cmd_web/worker.py +79 -13
- pygpt_net/provider/core/config/patch.py +43 -1
- pygpt_net/provider/core/ctx/base.py +4 -1
- pygpt_net/provider/core/ctx/db_sqlite/__init__.py +10 -1
- pygpt_net/provider/core/ctx/db_sqlite/storage.py +22 -1
- pygpt_net/provider/gpt/assistants.py +10 -9
- pygpt_net/provider/gpt/audio.py +3 -2
- pygpt_net/provider/gpt/chat.py +8 -7
- pygpt_net/provider/gpt/completion.py +6 -4
- pygpt_net/provider/gpt/image.py +9 -2
- pygpt_net/provider/gpt/store.py +14 -13
- pygpt_net/provider/gpt/vision.py +6 -5
- pygpt_net/tools/__init__.py +9 -1
- pygpt_net/tools/base.py +15 -1
- pygpt_net/tools/code_interpreter/__init__.py +174 -75
- pygpt_net/tools/code_interpreter/ui/dialogs.py +21 -103
- pygpt_net/tools/code_interpreter/ui/widgets.py +284 -9
- pygpt_net/tools/html_canvas/__init__.py +78 -23
- pygpt_net/tools/html_canvas/ui/dialogs.py +46 -62
- pygpt_net/tools/html_canvas/ui/widgets.py +96 -3
- pygpt_net/ui/base/context_menu.py +2 -2
- pygpt_net/ui/layout/chat/input.py +10 -18
- pygpt_net/ui/layout/chat/output.py +26 -44
- pygpt_net/ui/layout/ctx/ctx_list.py +13 -4
- pygpt_net/ui/layout/toolbox/footer.py +18 -2
- pygpt_net/ui/main.py +2 -2
- pygpt_net/ui/menu/config.py +7 -11
- pygpt_net/ui/menu/debug.py +11 -1
- pygpt_net/ui/menu/theme.py +9 -2
- pygpt_net/ui/widget/filesystem/explorer.py +2 -2
- pygpt_net/ui/widget/lists/context.py +27 -5
- pygpt_net/ui/widget/tabs/Input.py +2 -2
- pygpt_net/ui/widget/tabs/body.py +2 -1
- pygpt_net/ui/widget/tabs/layout.py +195 -0
- pygpt_net/ui/widget/tabs/output.py +218 -55
- pygpt_net/ui/widget/textarea/html.py +11 -1
- pygpt_net/ui/widget/textarea/output.py +10 -1
- pygpt_net/ui/widget/textarea/search_input.py +4 -1
- pygpt_net/ui/widget/textarea/web.py +49 -9
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/METADATA +45 -116
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/RECORD +255 -247
- /pygpt_net/data/css/{web.dark.css → web-blocks.dark.css} +0 -0
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/LICENSE +0 -0
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/WHEEL +0 -0
- {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/entry_points.txt +0 -0
CHANGELOG.md
CHANGED
@@ -1,5 +1,34 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 2.4.41 (2024-12-14)
|
4
|
+
|
5
|
+
- Improved switching between columns on a split screen.
|
6
|
+
- Added visual identification of the active column.
|
7
|
+
|
8
|
+
## 2.4.40 (2024-12-13)
|
9
|
+
|
10
|
+
- Enhanced Split Screen mode, now promoted from beta to stable.
|
11
|
+
- Python Code Interpreter tool added to the Tabs.
|
12
|
+
- HTML/JS Canvas tool added to the Tabs.
|
13
|
+
- Added attachment icon to the context list if context has attachments.
|
14
|
+
- Improved audio playback.
|
15
|
+
- Improved web search.
|
16
|
+
- Added a thumbnail image to web search results.
|
17
|
+
- Added a new commands to web search: "extract_images" and "extract_links".
|
18
|
+
- Added the option "Use raw content (without summarization)" to the web search plugin, which provides a more detailed result to the main model.
|
19
|
+
- Extended the default maximum result characters to 50,000 in the web search plugin.
|
20
|
+
|
21
|
+
## 2.4.39 (2024-12-09)
|
22
|
+
|
23
|
+
- Added "Split Screen" mode (accessible via the switch in the bottom-right corner of the screen), which allows you to work in two windows simultaneously. It is currently experimental (beta). Future updates will include Code Interpreter and Canvas running in tabs.
|
24
|
+
|
25
|
+
- Fixed: Language switch.
|
26
|
+
|
27
|
+
## 2.4.38 (2024-12-08)
|
28
|
+
|
29
|
+
- Added the ability to select a style for chat display between: Blocks, ChatGPT-like, and ChatGPT-like Wide. New option in the menu: Config -> Theme -> Style...
|
30
|
+
- Added configuration options for audio input in Settings -> Audio -> Audio Input Device, Channels, and Sampling rate.
|
31
|
+
|
3
32
|
## 2.4.37 (2024-11-30)
|
4
33
|
|
5
34
|
- The `Query only` mode in `Uploaded` tab has been renamed to `RAG`.
|
README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://snapcraft.io/pygpt)
|
4
4
|
|
5
|
-
Release: **2.4.
|
5
|
+
Release: **2.4.41** | build: **2024.12.14** | Python: **>=3.10, <3.12**
|
6
6
|
|
7
7
|
> Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
|
8
8
|
>
|
@@ -1984,6 +1984,10 @@ Per-page content chunk size (max characters per chunk). *Default:* `20000`
|
|
1984
1984
|
|
1985
1985
|
Disables SSL verification when crawling web pages. *Default:* `False`
|
1986
1986
|
|
1987
|
+
- `Use raw content (without summarization)` *raw*
|
1988
|
+
|
1989
|
+
Return raw content from web search instead of summarized content. Provides more data but consumes more tokens. *Default:* `True`
|
1990
|
+
|
1987
1991
|
- `Timeout` *timeout*
|
1988
1992
|
|
1989
1993
|
Connection timeout (seconds). *Default:* `5`
|
@@ -1994,7 +1998,7 @@ User agent to use when making requests. *Default:* `Mozilla/5.0`.
|
|
1994
1998
|
|
1995
1999
|
- `Max result length` *max_result_length*
|
1996
2000
|
|
1997
|
-
Max length of summarized result (characters). *Default:* `
|
2001
|
+
Max length of the summarized or raw result (characters). *Default:* `50000`
|
1998
2002
|
|
1999
2003
|
- `Max summary tokens` *summary_max_tokens*
|
2000
2004
|
|
@@ -2680,6 +2684,8 @@ Config -> Settings...
|
|
2680
2684
|
|
2681
2685
|
- `Zoom`: Adjusts the zoom in chat window (web render view). `WebEngine / Chromium` render mode only.
|
2682
2686
|
|
2687
|
+
- `Style (chat)`: Chat style (Blocks, or ChatGPT-like, or ChatGPT-like Wide. `WebEngine / Chromium` render mode only.
|
2688
|
+
|
2683
2689
|
- `Code syntax highlight`: Syntax highlight theme in code blocks. `WebEngine / Chromium` render mode only.
|
2684
2690
|
|
2685
2691
|
- `Font Size (chat window)`: Adjusts the font size in the chat window (plain-text) and notepads.
|
@@ -2702,8 +2708,6 @@ Config -> Settings...
|
|
2702
2708
|
|
2703
2709
|
- `Use theme colors in chat window`: Use color theme in chat window, Default: True.
|
2704
2710
|
|
2705
|
-
- `Disable markdown formatting in output`: Enables plain-text display in output window, Default: False.
|
2706
|
-
|
2707
2711
|
**Files and attachments**
|
2708
2712
|
|
2709
2713
|
- `Store attachments in the workdir upload directory`: Enable to store a local copy of uploaded attachments for future use. Default: True
|
@@ -2814,14 +2818,22 @@ Config -> Settings...
|
|
2814
2818
|
|
2815
2819
|
**Vision**
|
2816
2820
|
|
2821
|
+
- `Vision: Camera Input Device`: Video capture camera index (index of the camera, default: 0).
|
2822
|
+
|
2817
2823
|
- `Vision: Camera capture width (px)`: Video capture resolution (width).
|
2818
2824
|
|
2819
2825
|
- `Vision: Camera capture height (px)`: Video capture resolution (height).
|
2820
2826
|
|
2821
|
-
- `Vision: Camera IDX (number)`: Video capture camera index (number of camera).
|
2822
|
-
|
2823
2827
|
- `Vision: Image capture quality`: Video capture image JPEG quality (%).
|
2824
2828
|
|
2829
|
+
**Audio**
|
2830
|
+
|
2831
|
+
- `Audio Input Device`: Selects the audio device for Microphone input.
|
2832
|
+
|
2833
|
+
- `Channels`: Input channels, default: 1
|
2834
|
+
|
2835
|
+
- `Sampling Rate`: Sampling rate, default: 44100
|
2836
|
+
|
2825
2837
|
**Indexes (LlamaIndex)**
|
2826
2838
|
|
2827
2839
|
- `Indexes`: List of created indexes.
|
@@ -3865,125 +3877,42 @@ may consume additional tokens that are not displayed in the main window.
|
|
3865
3877
|
|
3866
3878
|
## Recent changes:
|
3867
3879
|
|
3868
|
-
**2.4.
|
3869
|
-
|
3870
|
-
- The `Query only` mode in `Uploaded` tab has been renamed to `RAG`.
|
3871
|
-
- New options have been added under `Settings -> Files and Attachments`:
|
3872
|
-
- `Use history in RAG query`: When enabled, the content of the entire conversation will be used when preparing a query if the mode is set to RAG or Summary.
|
3873
|
-
- `RAG limit`: This option is applicable only if 'Use history in RAG query' is enabled. It specifies the limit on how many recent entries in the conversation will be used when generating a query for RAG. A value of 0 indicates no limit.
|
3874
|
-
- Cache: dynamic parts of the system prompt (from plugins) have been moved to the very end of the prompt stack to enable the use of prompt cache mechanisms in OpenAI.
|
3875
|
-
|
3876
|
-
**2.4.36 (2024-11-28)**
|
3877
|
-
|
3878
|
-
- Added a new command-line argument: --workdir="/path/to/workdir" to explicitly set the current working directory.
|
3879
|
-
- Fix: start image generation in Image mode.
|
3880
|
-
|
3881
|
-
**2.4.35 (2024-11-28)**
|
3882
|
-
|
3883
|
-
- Docker removed from dependencies in Snap version #82
|
3884
|
-
- Refactored documentation.
|
3885
|
-
- Fix: toggles real-time update hook.
|
3886
|
-
- Fix: missing edit icons.
|
3887
|
-
- Added tokens from attachments to counters if mode == Full context.
|
3888
|
-
|
3889
|
-
**2.4.34 (2024-11-26)**
|
3890
|
-
|
3891
|
-
- Added a new mode: `Chat with Audio`, with built-in multimodal support for audio input/output. Currently in `beta`, the execution of commands and tools in this mode is temporarily unavailable.
|
3892
|
-
- Added new models: `gpt-4o-audio-preview`, `gpt-4o-2024-11-20`, `chatgpt-4o-latest`.
|
3893
|
-
- Force disabled integration with the native system menu.
|
3894
|
-
|
3895
|
-
**2.4.33 (2024-11-26)**
|
3896
|
-
|
3897
|
-
- Improved CSS and rendering of file and image lists.
|
3898
|
-
- Added displaying of used attachments in the chat window.
|
3899
|
-
|
3900
|
-
**2.4.32 (2024-11-26)**
|
3880
|
+
**2.4.41 (2024-12-14)**
|
3901
3881
|
|
3902
|
-
-
|
3903
|
-
- Added
|
3882
|
+
- Improved switching between columns on a split screen.
|
3883
|
+
- Added visual identification of the active column.
|
3904
3884
|
|
3905
|
-
**2.4.
|
3885
|
+
**2.4.40 (2024-12-13)**
|
3906
3886
|
|
3907
|
-
-
|
3887
|
+
- Enhanced Split Screen mode, now promoted from beta to stable.
|
3888
|
+
- Python Code Interpreter tool added to the Tabs.
|
3889
|
+
- HTML/JS Canvas tool added to the Tabs.
|
3890
|
+
- Added attachment icon to the context list if context has attachments.
|
3891
|
+
- Improved audio playback.
|
3892
|
+
- Improved web search.
|
3893
|
+
- Added a thumbnail image to web search results.
|
3894
|
+
- Added a new commands to web search: "extract_images" and "extract_links".
|
3895
|
+
- Added the option "Use raw content (without summarization)" to the web search plugin, which provides a more detailed result to the main model.
|
3896
|
+
- Extended the default maximum result characters to 50,000 in the web search plugin.
|
3908
3897
|
|
3909
|
-
**
|
3898
|
+
**2.4.39 (2024-12-09)**
|
3910
3899
|
|
3911
|
-
- Added
|
3900
|
+
- Added "Split Screen" mode (accessible via the switch in the bottom-right corner of the screen), which allows you to work in two windows simultaneously. It is currently experimental (beta). Future updates will include Code Interpreter and Canvas running in tabs.
|
3912
3901
|
|
3913
|
-
|
3902
|
+
- Fixed: Language switch.
|
3914
3903
|
|
3915
|
-
-
|
3916
|
-
- Updated locales for plugins.
|
3904
|
+
**2.4.38 (2024-12-08)**
|
3917
3905
|
|
3918
|
-
|
3906
|
+
- Added the ability to select a style for chat display between: Blocks, ChatGPT-like, and ChatGPT-like Wide. New option in the menu: Config -> Theme -> Style...
|
3907
|
+
- Added configuration options for audio input in Settings -> Audio -> Audio Input Device, Channels, and Sampling rate.
|
3919
3908
|
|
3920
|
-
|
3921
|
-
- Added the ability to configure mapped volumes and ports for Docker containers in the plugin settings.
|
3922
|
-
- Optimized and speed-up the LlamaIndex plugin (inline).
|
3923
|
-
- Checkboxes replaced with Toggle buttons.
|
3924
|
-
- Improved settings dialogs.
|
3925
|
-
- Slight modification of the layout.
|
3926
|
-
- Fix: Dockerfile formatting in Code Interpreter config.
|
3927
|
-
- Fix: experts inline plugin execution.
|
3928
|
-
|
3929
|
-
**2.4.28 (2024-11-24)**
|
3930
|
-
|
3931
|
-
- Fix: issue #78
|
3932
|
-
|
3933
|
-
**2.4.27 (2024-11-24)**
|
3934
|
-
|
3935
|
-
- Profile switch fix.
|
3936
|
-
|
3937
|
-
**2.4.26 (2024-11-24)**
|
3938
|
-
|
3939
|
-
- Fix: issue #77
|
3940
|
-
|
3941
|
-
**2.4.25 (2024-11-24)**
|
3942
|
-
|
3943
|
-
- Added new plugin: System (OS), with optional sandbox support.
|
3944
|
-
- Execution of system commands moved to the System plugin.
|
3945
|
-
- Improved sandbox/Docker management.
|
3946
|
-
- Enhanced plugin settings.
|
3947
|
-
- Commands renamed to Tools, simplified layout.
|
3948
|
-
- Fix: handling of the Mouse and Keyboard plugin.
|
3949
|
-
- Fix: switching to a new context from a non-chat tab.
|
3950
|
-
- Fix: camera screenshots when the camera is not started.
|
3951
|
-
|
3952
|
-
**2.4.24 (2024-11-23)**
|
3953
|
-
|
3954
|
-
- Added the ability to use ZIP and TAR archives as attachments (they are now unpacked "on the fly").
|
3955
|
-
- Added the ability to index ZIP and TAR archives (it may be necessary to remove .zip and .tar from the blacklist in the settings).
|
3956
|
-
- Fix: error when uploading to the /data directory using the Upload files button.
|
3957
|
-
|
3958
|
-
**2.4.23 (2024-11-23)**
|
3959
|
-
|
3960
|
-
- Condensed layout widgets margins.
|
3961
|
-
- Added filename info to provided additional context from attachments.
|
3962
|
-
- Fixed auto-clear in attachments in Assistants mode.
|
3963
|
-
|
3964
|
-
**2.4.22 (2024-11-23)**
|
3965
|
-
|
3966
|
-
- Added the ability to use attachments with images, audio, and video as additional context. Tip: to enable the use of images as additional context, you need to enable the option: `Files and attachments -> Allow images as additional context`.
|
3967
|
-
- Edit icons in the chat window are enabled by default.
|
3968
|
-
|
3969
|
-
**2.4.21 (2024-11-23)**
|
3970
|
-
|
3971
|
-
- Added the ability to send additional context from attachments without needing to activate the "Chat with Files" mode. Now, you just need to attach a file, and the additional context from the file will be available in the conversation. More information can be found in the "Files and attachments" section of the documentation.
|
3972
|
-
|
3973
|
-
- Fixed the issue with restarting the agent after it has been forcefully stopped.
|
3974
|
-
|
3975
|
-
**2.4.20 (2024-11-22)**
|
3976
|
-
|
3977
|
-
- Fixed freeze in Windows installer. #75
|
3978
|
-
- Small fixes.
|
3979
|
-
|
3980
|
-
**2.4.19 (2024-11-22)**
|
3909
|
+
**2.4.37 (2024-11-30)**
|
3981
3910
|
|
3982
|
-
-
|
3983
|
-
-
|
3984
|
-
-
|
3985
|
-
-
|
3986
|
-
-
|
3911
|
+
- The `Query only` mode in `Uploaded` tab has been renamed to `RAG`.
|
3912
|
+
- New options have been added under `Settings -> Files and Attachments`:
|
3913
|
+
- `Use history in RAG query`: When enabled, the content of the entire conversation will be used when preparing a query if the mode is set to RAG or Summary.
|
3914
|
+
- `RAG limit`: This option is applicable only if 'Use history in RAG query' is enabled. It specifies the limit on how many recent entries in the conversation will be used when generating a query for RAG. A value of 0 indicates no limit.
|
3915
|
+
- Cache: dynamic parts of the system prompt (from plugins) have been moved to the very end of the prompt stack to enable the use of prompt cache mechanisms in OpenAI.
|
3987
3916
|
|
3988
3917
|
|
3989
3918
|
# Credits and links
|
pygpt_net/CHANGELOG.txt
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
2.4.41 (2024-12-14)
|
2
|
+
|
3
|
+
- Improved switching between columns on a split screen.
|
4
|
+
- Added visual identification of the active column.
|
5
|
+
|
6
|
+
2.4.40 (2024-12-13)
|
7
|
+
|
8
|
+
- Enhanced Split Screen mode, now promoted from beta to stable.
|
9
|
+
- Python Code Interpreter tool added to the Tabs.
|
10
|
+
- HTML/JS Canvas tool added to the Tabs.
|
11
|
+
- Added attachment icon to the context list if context has attachments.
|
12
|
+
- Improved audio playback.
|
13
|
+
- Improved web search.
|
14
|
+
- Added a thumbnail image to web search results.
|
15
|
+
- Added a new commands to web search: "extract_images" and "extract_links".
|
16
|
+
- Added the option "Use raw content (without summarization)" to the web search plugin, which provides a more detailed result to the main model.
|
17
|
+
- Extended the default maximum result characters to 50,000 in the web search plugin.
|
18
|
+
|
19
|
+
2.4.39 (2024-12-09)
|
20
|
+
|
21
|
+
- Added "Split Screen" mode (accessible via the switch in the bottom-right corner of the screen), which allows you to work in two windows simultaneously. It is currently experimental (beta). Future updates will include Code Interpreter and Canvas running in tabs.
|
22
|
+
|
23
|
+
- Fixed: Language switch.
|
24
|
+
|
25
|
+
2.4.38 (2024-12-08)
|
26
|
+
|
27
|
+
- Added the ability to select a style for chat display between: Blocks, ChatGPT-like, and ChatGPT-like Wide. New option in the menu: Config -> Theme -> Style...
|
28
|
+
- Added configuration options for audio input in Settings -> Audio -> Audio Input Device, Channels, and Sampling rate.
|
29
|
+
|
1
30
|
2.4.37 (2024-11-30)
|
2
31
|
|
3
32
|
- The `Query only` mode in `Uploaded` tab has been renamed to `RAG`.
|
pygpt_net/__init__.py
CHANGED
@@ -6,15 +6,15 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
__author__ = "Marcin Szczygliński"
|
13
13
|
__copyright__ = "Copyright 2024, Marcin Szczygliński"
|
14
14
|
__credits__ = ["Marcin Szczygliński"]
|
15
15
|
__license__ = "MIT"
|
16
|
-
__version__ = "2.4.
|
17
|
-
__build__ = "2024.
|
16
|
+
__version__ = "2.4.41"
|
17
|
+
__build__ = "2024.12.14"
|
18
18
|
__maintainer__ = "Marcin Szczygliński"
|
19
19
|
__github__ = "https://github.com/szczyglis-dev/py-gpt"
|
20
20
|
__website__ = "https://pygpt.net"
|
pygpt_net/controller/__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: 2024.
|
9
|
+
# Updated Date: 2024.12.09 23:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
from pygpt_net.controller.access import Access
|
@@ -87,15 +87,16 @@ class Controller:
|
|
87
87
|
self.chat.init()
|
88
88
|
|
89
89
|
# setup layout
|
90
|
-
self.ui.pre_setup()
|
91
90
|
self.layout.setup()
|
92
91
|
self.ui.setup()
|
92
|
+
self.ui.tabs.setup()
|
93
93
|
|
94
94
|
# setup controllers
|
95
95
|
self.lang.setup()
|
96
96
|
self.assistant.setup()
|
97
97
|
self.chat.setup()
|
98
98
|
self.agent.setup()
|
99
|
+
self.tools.setup()
|
99
100
|
self.ctx.setup()
|
100
101
|
self.presets.setup()
|
101
102
|
self.idx.setup()
|
@@ -105,7 +106,8 @@ class Controller:
|
|
105
106
|
self.attachment.setup()
|
106
107
|
self.camera.setup_ui()
|
107
108
|
self.access.setup()
|
108
|
-
|
109
|
+
|
110
|
+
|
109
111
|
|
110
112
|
def post_setup(self):
|
111
113
|
"""Post-setup, after plugins are loaded"""
|
@@ -116,6 +118,7 @@ class Controller:
|
|
116
118
|
self.calendar.setup() # after everything is loaded
|
117
119
|
self.painter.setup() # load previous image if exists
|
118
120
|
self.debug.post_setup() # post setup debug after all loaded
|
121
|
+
self.ui.tabs.restore_data() # restore opened tabs data
|
119
122
|
|
120
123
|
# show license terms dialog
|
121
124
|
if not self.window.core.config.get('license.accepted'):
|
@@ -168,6 +171,7 @@ class Controller:
|
|
168
171
|
# post-reload
|
169
172
|
self.ui.tabs.reload_after()
|
170
173
|
self.ctx.reload_after()
|
174
|
+
self.ui.tabs.restore_data() # restore opened tabs data
|
171
175
|
self.kernel.restart()
|
172
176
|
|
173
177
|
self.reloading = False # unlock
|
@@ -6,9 +6,11 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional, List, Dict, Any
|
13
|
+
|
12
14
|
import pyaudio
|
13
15
|
import wave
|
14
16
|
import os
|
@@ -59,7 +61,7 @@ class Voice:
|
|
59
61
|
"""Setup voice control"""
|
60
62
|
self.update()
|
61
63
|
|
62
|
-
def delayed_play(self, text: str, event: AppEvent
|
64
|
+
def delayed_play(self, text: str, event: AppEvent):
|
63
65
|
"""
|
64
66
|
Delayed play audio
|
65
67
|
|
@@ -185,7 +187,11 @@ class Voice:
|
|
185
187
|
self.enable_voice_control()
|
186
188
|
|
187
189
|
def is_voice_control_enabled(self) -> bool:
|
188
|
-
"""
|
190
|
+
"""
|
191
|
+
Check if voice control is enabled
|
192
|
+
|
193
|
+
:return: True if enabled
|
194
|
+
"""
|
189
195
|
return self.window.core.config.get("access.voice_control")
|
190
196
|
|
191
197
|
def toggle_recording(self):
|
@@ -342,7 +348,7 @@ class Voice:
|
|
342
348
|
self.window.tools.get("transcriber").on_transcribe(path, text)
|
343
349
|
|
344
350
|
@Slot(object, object)
|
345
|
-
def handle_input(self, text: str, ctx: CtxItem = None):
|
351
|
+
def handle_input(self, text: str, ctx: Optional[CtxItem] = None):
|
346
352
|
"""
|
347
353
|
Insert text to input and send
|
348
354
|
|
@@ -356,7 +362,7 @@ class Voice:
|
|
356
362
|
commands = self.window.core.access.voice.recognize_commands(text)
|
357
363
|
self.handle_commands(commands)
|
358
364
|
|
359
|
-
def handle_commands(self, commands:
|
365
|
+
def handle_commands(self, commands: List[Dict[str, Any]]):
|
360
366
|
"""
|
361
367
|
Handle commands
|
362
368
|
|
@@ -6,9 +6,11 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional, Any
|
13
|
+
|
12
14
|
from pygpt_net.core.types import (
|
13
15
|
MODE_AGENT,
|
14
16
|
MODE_EXPERT,
|
@@ -44,9 +46,7 @@ class Experts:
|
|
44
46
|
return self.is_stop
|
45
47
|
|
46
48
|
def unlock(self):
|
47
|
-
"""
|
48
|
-
Unlock experts
|
49
|
-
"""
|
49
|
+
"""Unlock experts"""
|
50
50
|
self.is_stop = False
|
51
51
|
|
52
52
|
def enabled(self) -> bool:
|
@@ -61,7 +61,12 @@ class Experts:
|
|
61
61
|
return True
|
62
62
|
return False
|
63
63
|
|
64
|
-
def append_prompts(
|
64
|
+
def append_prompts(
|
65
|
+
self,
|
66
|
+
mode: str,
|
67
|
+
sys_prompt: str,
|
68
|
+
parent_id: Optional[str] = None
|
69
|
+
):
|
65
70
|
"""
|
66
71
|
Append prompt to the window
|
67
72
|
|
@@ -151,7 +156,7 @@ class Experts:
|
|
151
156
|
return num_calls # abort continue if expert call detected
|
152
157
|
return num_calls
|
153
158
|
|
154
|
-
def log(self, data:
|
159
|
+
def log(self, data: Any):
|
155
160
|
"""
|
156
161
|
Log data to debug
|
157
162
|
|
@@ -6,9 +6,11 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional, List, Dict, Any
|
13
|
+
|
12
14
|
from pygpt_net.core.types import (
|
13
15
|
MODE_AGENT,
|
14
16
|
MODE_AGENT_LLAMA,
|
@@ -109,7 +111,7 @@ class Legacy:
|
|
109
111
|
self.window.ui.nodes['status.agent'].setText(status)
|
110
112
|
self.window.controller.agent.common.toggle_status()
|
111
113
|
|
112
|
-
def get_functions(self) ->
|
114
|
+
def get_functions(self) -> List[Dict[str, Any]]:
|
113
115
|
"""
|
114
116
|
Append goal commands
|
115
117
|
|
@@ -137,7 +139,7 @@ class Legacy:
|
|
137
139
|
def on_system_prompt(
|
138
140
|
self,
|
139
141
|
prompt: str,
|
140
|
-
append_prompt: str = "",
|
142
|
+
append_prompt: Optional[str] = "",
|
141
143
|
auto_stop: bool = True,
|
142
144
|
) -> str:
|
143
145
|
"""
|
@@ -286,7 +288,7 @@ class Legacy:
|
|
286
288
|
def on_cmd(
|
287
289
|
self,
|
288
290
|
ctx: CtxItem,
|
289
|
-
cmds:
|
291
|
+
cmds: List[Dict[str, Any]],
|
290
292
|
):
|
291
293
|
"""
|
292
294
|
Event: On commands
|
@@ -300,7 +302,7 @@ class Legacy:
|
|
300
302
|
def cmd(
|
301
303
|
self,
|
302
304
|
ctx: CtxItem,
|
303
|
-
cmds:
|
305
|
+
cmds: List[Dict[str, Any]],
|
304
306
|
):
|
305
307
|
"""
|
306
308
|
Event: On command
|
@@ -378,7 +380,7 @@ class Legacy:
|
|
378
380
|
mode="agent",
|
379
381
|
)
|
380
382
|
|
381
|
-
def hook_update(self, key, value, caller, *args, **kwargs):
|
383
|
+
def hook_update(self, key: str, value: Any, caller, *args, **kwargs):
|
382
384
|
"""
|
383
385
|
Hook: on option update
|
384
386
|
|
@@ -6,9 +6,11 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Any
|
13
|
+
|
12
14
|
from pygpt_net.core.events import KernelEvent
|
13
15
|
from pygpt_net.core.bridge.context import BridgeContext
|
14
16
|
from pygpt_net.item.ctx import CtxItem
|
@@ -134,7 +136,7 @@ class Llama:
|
|
134
136
|
"""Update agent status"""
|
135
137
|
pass
|
136
138
|
|
137
|
-
def hook_update(self, key, value, caller, *args, **kwargs):
|
139
|
+
def hook_update(self, key: str, value: Any, caller, *args, **kwargs):
|
138
140
|
"""
|
139
141
|
Hook: on option update
|
140
142
|
|
@@ -6,9 +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: 2024.
|
9
|
+
# Updated Date: 2024.12.14 08:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
|
+
from typing import Optional
|
12
13
|
import webbrowser
|
13
14
|
|
14
15
|
from pygpt_net.item.assistant import AssistantItem
|
@@ -22,7 +23,7 @@ from .threads import Threads
|
|
22
23
|
from pygpt_net.core.text.utils import has_unclosed_code_tag
|
23
24
|
from pygpt_net.utils import trans
|
24
25
|
from pygpt_net.item.ctx import CtxItem
|
25
|
-
from
|
26
|
+
from pygpt_net.core.events import RenderEvent
|
26
27
|
|
27
28
|
|
28
29
|
class Assistant:
|
@@ -49,7 +50,7 @@ class Assistant:
|
|
49
50
|
"""
|
50
51
|
Update assistants list
|
51
52
|
|
52
|
-
:param update_list: update list
|
53
|
+
:param update_list: True if update list
|
53
54
|
"""
|
54
55
|
if update_list:
|
55
56
|
self.update_list()
|
@@ -244,7 +245,11 @@ class Assistant:
|
|
244
245
|
self.window.update_status(trans('status.assistant.cleared'))
|
245
246
|
self.update()
|
246
247
|
|
247
|
-
def delete(
|
248
|
+
def delete(
|
249
|
+
self,
|
250
|
+
idx: Optional[int] = None,
|
251
|
+
force: bool = False
|
252
|
+
):
|
248
253
|
"""
|
249
254
|
Delete assistant
|
250
255
|
|