pygpt-net 2.4.41__py3-none-any.whl → 2.4.43__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 (146) hide show
  1. CHANGELOG.md +13 -0
  2. README.md +142 -70
  3. pygpt_net/CHANGELOG.txt +13 -0
  4. pygpt_net/__init__.py +3 -3
  5. pygpt_net/app.py +3 -1
  6. pygpt_net/controller/audio/__init__.py +2 -2
  7. pygpt_net/controller/camera.py +1 -10
  8. pygpt_net/controller/chat/attachment.py +36 -23
  9. pygpt_net/controller/chat/audio.py +2 -2
  10. pygpt_net/controller/config/placeholder.py +15 -1
  11. pygpt_net/controller/ui/mode.py +16 -21
  12. pygpt_net/core/attachments/__init__.py +1 -1
  13. pygpt_net/core/attachments/context.py +10 -8
  14. pygpt_net/core/audio/__init__.py +4 -1
  15. pygpt_net/core/audio/whisper.py +37 -0
  16. pygpt_net/core/bridge/worker.py +2 -2
  17. pygpt_net/core/db/__init__.py +2 -1
  18. pygpt_net/core/debug/events.py +22 -10
  19. pygpt_net/core/debug/tabs.py +6 -3
  20. pygpt_net/core/history.py +3 -2
  21. pygpt_net/core/idx/__init__.py +16 -4
  22. pygpt_net/core/idx/chat.py +15 -5
  23. pygpt_net/core/idx/indexing.py +24 -8
  24. pygpt_net/core/installer.py +2 -4
  25. pygpt_net/core/models.py +62 -17
  26. pygpt_net/core/modes.py +11 -13
  27. pygpt_net/core/notepad.py +4 -4
  28. pygpt_net/core/plugins.py +27 -16
  29. pygpt_net/core/presets.py +20 -9
  30. pygpt_net/core/profile.py +11 -3
  31. pygpt_net/core/render/web/parser.py +3 -1
  32. pygpt_net/core/settings.py +5 -5
  33. pygpt_net/core/tabs/tab.py +10 -2
  34. pygpt_net/core/tokens.py +8 -6
  35. pygpt_net/core/web/__init__.py +105 -0
  36. pygpt_net/core/{web.py → web/helpers.py} +93 -67
  37. pygpt_net/data/config/config.json +3 -3
  38. pygpt_net/data/config/models.json +3 -3
  39. pygpt_net/data/config/modes.json +3 -3
  40. pygpt_net/data/locale/locale.en.ini +1 -0
  41. pygpt_net/data/locale/plugin.cmd_web.en.ini +2 -0
  42. pygpt_net/data/locale/plugin.mailer.en.ini +21 -0
  43. pygpt_net/item/ctx.py +66 -3
  44. pygpt_net/migrations/Version20241215110000.py +25 -0
  45. pygpt_net/migrations/__init__.py +3 -1
  46. pygpt_net/plugin/agent/__init__.py +7 -2
  47. pygpt_net/plugin/audio_output/__init__.py +6 -1
  48. pygpt_net/plugin/base/plugin.py +58 -26
  49. pygpt_net/plugin/base/worker.py +20 -17
  50. pygpt_net/plugin/cmd_history/config.py +2 -2
  51. pygpt_net/plugin/cmd_web/__init__.py +3 -4
  52. pygpt_net/plugin/cmd_web/config.py +71 -3
  53. pygpt_net/plugin/cmd_web/websearch.py +20 -12
  54. pygpt_net/plugin/cmd_web/worker.py +67 -4
  55. pygpt_net/plugin/idx_llama_index/config.py +3 -3
  56. pygpt_net/plugin/mailer/__init__.py +123 -0
  57. pygpt_net/plugin/mailer/config.py +149 -0
  58. pygpt_net/plugin/mailer/runner.py +285 -0
  59. pygpt_net/plugin/mailer/worker.py +123 -0
  60. pygpt_net/provider/agents/base.py +5 -2
  61. pygpt_net/provider/agents/openai.py +4 -2
  62. pygpt_net/provider/agents/openai_assistant.py +4 -2
  63. pygpt_net/provider/agents/planner.py +4 -2
  64. pygpt_net/provider/agents/react.py +4 -2
  65. pygpt_net/provider/audio_output/openai_tts.py +5 -11
  66. pygpt_net/provider/core/assistant/base.py +5 -3
  67. pygpt_net/provider/core/assistant/json_file.py +8 -5
  68. pygpt_net/provider/core/assistant_file/base.py +4 -3
  69. pygpt_net/provider/core/assistant_file/db_sqlite/__init__.py +4 -3
  70. pygpt_net/provider/core/assistant_file/db_sqlite/storage.py +3 -2
  71. pygpt_net/provider/core/assistant_store/base.py +6 -4
  72. pygpt_net/provider/core/assistant_store/db_sqlite/__init__.py +5 -4
  73. pygpt_net/provider/core/assistant_store/db_sqlite/storage.py +5 -3
  74. pygpt_net/provider/core/attachment/base.py +5 -3
  75. pygpt_net/provider/core/attachment/json_file.py +4 -3
  76. pygpt_net/provider/core/calendar/base.py +5 -3
  77. pygpt_net/provider/core/calendar/db_sqlite/__init__.py +6 -5
  78. pygpt_net/provider/core/calendar/db_sqlite/storage.py +5 -4
  79. pygpt_net/provider/core/config/base.py +8 -6
  80. pygpt_net/provider/core/config/json_file.py +9 -7
  81. pygpt_net/provider/core/ctx/base.py +27 -25
  82. pygpt_net/provider/core/ctx/db_sqlite/__init__.py +51 -35
  83. pygpt_net/provider/core/ctx/db_sqlite/storage.py +92 -38
  84. pygpt_net/provider/core/ctx/db_sqlite/utils.py +37 -11
  85. pygpt_net/provider/core/index/base.py +129 -23
  86. pygpt_net/provider/core/index/db_sqlite/__init__.py +130 -23
  87. pygpt_net/provider/core/index/db_sqlite/storage.py +130 -23
  88. pygpt_net/provider/core/index/db_sqlite/utils.py +4 -2
  89. pygpt_net/provider/core/mode/base.py +5 -3
  90. pygpt_net/provider/core/mode/json_file.py +7 -6
  91. pygpt_net/provider/core/model/base.py +6 -4
  92. pygpt_net/provider/core/model/json_file.py +9 -7
  93. pygpt_net/provider/core/notepad/base.py +5 -3
  94. pygpt_net/provider/core/notepad/db_sqlite/__init__.py +5 -4
  95. pygpt_net/provider/core/notepad/db_sqlite/storage.py +4 -3
  96. pygpt_net/provider/core/plugin_preset/base.py +4 -2
  97. pygpt_net/provider/core/plugin_preset/json_file.py +5 -3
  98. pygpt_net/provider/core/preset/base.py +6 -4
  99. pygpt_net/provider/core/preset/json_file.py +9 -9
  100. pygpt_net/provider/core/prompt/base.py +6 -3
  101. pygpt_net/provider/core/prompt/json_file.py +11 -6
  102. pygpt_net/provider/gpt/assistants.py +15 -6
  103. pygpt_net/provider/gpt/audio.py +5 -5
  104. pygpt_net/provider/gpt/chat.py +7 -5
  105. pygpt_net/provider/gpt/completion.py +8 -4
  106. pygpt_net/provider/gpt/image.py +3 -3
  107. pygpt_net/provider/gpt/store.py +46 -12
  108. pygpt_net/provider/gpt/vision.py +16 -11
  109. pygpt_net/provider/llms/anthropic.py +7 -2
  110. pygpt_net/provider/llms/azure_openai.py +26 -5
  111. pygpt_net/provider/llms/base.py +47 -9
  112. pygpt_net/provider/llms/google.py +7 -2
  113. pygpt_net/provider/llms/hugging_face.py +13 -3
  114. pygpt_net/provider/llms/hugging_face_api.py +18 -4
  115. pygpt_net/provider/llms/local.py +7 -2
  116. pygpt_net/provider/llms/ollama.py +30 -6
  117. pygpt_net/provider/llms/openai.py +32 -6
  118. pygpt_net/provider/vector_stores/__init__.py +45 -14
  119. pygpt_net/provider/vector_stores/base.py +35 -8
  120. pygpt_net/provider/vector_stores/chroma.py +13 -3
  121. pygpt_net/provider/vector_stores/ctx_attachment.py +32 -13
  122. pygpt_net/provider/vector_stores/elasticsearch.py +12 -3
  123. pygpt_net/provider/vector_stores/pinecode.py +12 -3
  124. pygpt_net/provider/vector_stores/redis.py +12 -3
  125. pygpt_net/provider/vector_stores/simple.py +12 -3
  126. pygpt_net/provider/vector_stores/temp.py +16 -4
  127. pygpt_net/provider/web/base.py +10 -3
  128. pygpt_net/provider/web/google_custom_search.py +9 -3
  129. pygpt_net/provider/web/microsoft_bing.py +9 -3
  130. pygpt_net/tools/__init__.py +13 -5
  131. pygpt_net/tools/audio_transcriber/__init__.py +4 -3
  132. pygpt_net/tools/base.py +15 -8
  133. pygpt_net/tools/code_interpreter/__init__.py +4 -3
  134. pygpt_net/tools/html_canvas/__init__.py +4 -3
  135. pygpt_net/tools/image_viewer/__init__.py +10 -4
  136. pygpt_net/tools/indexer/__init__.py +8 -7
  137. pygpt_net/tools/media_player/__init__.py +4 -3
  138. pygpt_net/tools/text_editor/__init__.py +36 -10
  139. pygpt_net/ui/layout/chat/output.py +2 -2
  140. pygpt_net/ui/layout/ctx/ctx_list.py +1 -1
  141. pygpt_net/ui/menu/audio.py +12 -1
  142. {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.43.dist-info}/METADATA +143 -71
  143. {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.43.dist-info}/RECORD +146 -138
  144. {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.43.dist-info}/LICENSE +0 -0
  145. {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.43.dist-info}/WHEEL +0 -0
  146. {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.43.dist-info}/entry_points.txt +0 -0
CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.4.43 (2024-12-15)
4
+
5
+ - Fix: Bug on attachment upload.
6
+ - Added: Attachments uploaded in groups are now available for all contexts in the group (beta).
7
+
8
+ ## 2.4.42 (2024-12-15)
9
+
10
+ - Added Mailer plugin, which allows sending and retrieving emails from the server, and reading them. It currently supports only SMTP.
11
+ - Added 'web_request' command to the Web Search plugin, enabling GET/POST/PUT and other connections to any address and API endpoint. It also supports sending POST data, files, headers, cookies, and more.
12
+ - Improved audio output.
13
+ - Enhanced visibility of the Video menu.
14
+ - Other fixes.
15
+
3
16
  ## 2.4.41 (2024-12-14)
4
17
 
5
18
  - Improved switching between columns on a split screen.
README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
4
4
 
5
- Release: **2.4.41** | build: **2024.12.14** | Python: **>=3.10, <3.12**
5
+ Release: **2.4.43** | build: **2024.12.15** | Python: **>=3.10, <3.12**
6
6
 
7
7
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
8
8
  >
@@ -785,6 +785,8 @@ You can use your own files (for example, to analyze them) during any conversatio
785
785
 
786
786
  **PyGPT** makes it simple for users to upload files and send them to the model for tasks like analysis, similar to attaching files in `ChatGPT`. There's a separate `Attachments` tab next to the text input area specifically for managing file uploads.
787
787
 
788
+ **Tip: Attachments uploaded in group are available in all contexts in group**.
789
+
788
790
  ![v2_file_input](https://github.com/user-attachments/assets/db8467b6-2d07-4e20-a795-430fc09443a7)
789
791
 
790
792
  You can use attachments to provide additional context to the conversation. Uploaded files will be converted into text using loaders from LlamaIndex, and then embedded into the vector store. You can upload any file format supported by the application through LlamaIndex. Supported formats include:
@@ -1067,6 +1069,8 @@ as well as list and create directories.
1067
1069
 
1068
1070
  - `Voice Control (inline)` - provides voice control command execution within a conversation.
1069
1071
 
1072
+ - `Mailer` - Provides the ability to send, receive and read emails.
1073
+
1070
1074
  ## Audio Input
1071
1075
 
1072
1076
  The plugin facilitates speech recognition (by default using the `Whisper` model from OpenAI, `Google` and `Bing` are also available). It allows for voice commands to be relayed to the AI using your own voice. Whisper doesn't require any extra API keys or additional configurations; it uses the main OpenAI key. In the plugin's configuration options, you should adjust the volume level (min energy) at which the plugin will respond to your microphone. Once the plugin is activated, a new `Speak` option will appear at the bottom near the `Send` button - when this is enabled, the application will respond to the voice received from the microphone.
@@ -1493,15 +1497,15 @@ sudo snap connect pygpt:docker docker:docker-daemon
1493
1497
 
1494
1498
  Automatically attach code input/output to the Python Code Interpreter window. *Default:* `True`
1495
1499
 
1496
- - `Enable: get_python_output` *cmd.get_python_output*
1500
+ - `Tool: get_python_output` *cmd.get_python_output*
1497
1501
 
1498
1502
  Allows `get_python_output` command execution. If enabled, it allows retrieval of the output from the Python Code Interpreter window. *Default:* `True`
1499
1503
 
1500
- - `Enable: get_python_input` *cmd.get_python_input*
1504
+ - `Tool: get_python_input` *cmd.get_python_input*
1501
1505
 
1502
1506
  Allows `get_python_input` command execution. If enabled, it allows retrieval all input code (from edit section) from the Python Code Interpreter window. *Default:* `True`
1503
1507
 
1504
- - `Enable: clear_python_output` *cmd.clear_python_output*
1508
+ - `Tool: clear_python_output` *cmd.clear_python_output*
1505
1509
 
1506
1510
  Allows `clear_python_output` command execution. If enabled, it allows clear the output of the Python Code Interpreter window. *Default:* `True`
1507
1511
 
@@ -1553,11 +1557,11 @@ Default: 5558
1553
1557
  Default: 5559
1554
1558
 
1555
1559
 
1556
- - `Enable: ipython_execute` *cmd.ipython_execute*
1560
+ - `Tool: ipython_execute` *cmd.ipython_execute*
1557
1561
 
1558
1562
  Allows Python code execution in IPython interpreter (in current kernel). *Default:* `True`
1559
1563
 
1560
- - `Enable: python_kernel_restart` *cmd.ipython_kernel_restart*
1564
+ - `Tool: python_kernel_restart` *cmd.ipython_kernel_restart*
1561
1565
 
1562
1566
  Allows to restart IPython kernel. *Default:* `True`
1563
1567
 
@@ -1584,26 +1588,26 @@ Custom Docker image name
1584
1588
 
1585
1589
  Custom Docker container name
1586
1590
 
1587
- - `Enable: code_execute` *cmd.code_execute*
1591
+ - `Tool: code_execute` *cmd.code_execute*
1588
1592
 
1589
1593
  Allows `code_execute` command execution. If enabled, provides Python code execution (generate and execute from file). *Default:* `True`
1590
1594
 
1591
- - `Enable: code_execute_all` *cmd.code_execute_all*
1595
+ - `Tool: code_execute_all` *cmd.code_execute_all*
1592
1596
 
1593
1597
  Allows `code_execute_all` command execution. If enabled, provides execution of all the Python code in interpreter window. *Default:* `True`
1594
1598
 
1595
- - `Enable: code_execute_file` *cmd.code_execute_file*
1599
+ - `Tool: code_execute_file` *cmd.code_execute_file*
1596
1600
 
1597
1601
  Allows `code_execute_file` command execution. If enabled, provides Python code execution from existing .py file. *Default:* `True`
1598
1602
 
1599
1603
 
1600
1604
  **HTML Canvas**
1601
1605
 
1602
- - `Enable: render_html_output` *cmd.render_html_output*
1606
+ - `Tool: render_html_output` *cmd.render_html_output*
1603
1607
 
1604
1608
  Allows `render_html_output` command execution. If enabled, it allows to render HTML/JS code in built-it HTML/JS browser (HTML Canvas). *Default:* `True`
1605
1609
 
1606
- - `Enable: get_html_output` *cmd.get_html_output*
1610
+ - `Tool: get_html_output` *cmd.get_html_output*
1607
1611
 
1608
1612
  Allows `get_html_output` command execution. If enabled, it allows retrieval current output from HTML Canvas. *Default:* `True`
1609
1613
 
@@ -1706,79 +1710,79 @@ If a file being created (with the same name) already exists, a prefix including
1706
1710
 
1707
1711
  **General**
1708
1712
 
1709
- - `Enable: send (upload) file as attachment` *cmd.send_file*
1713
+ - `Tool: send (upload) file as attachment` *cmd.send_file*
1710
1714
 
1711
1715
  Allows `cmd.send_file` command execution. *Default:* `True`
1712
1716
 
1713
- - `Enable: read file` *cmd.read_file*
1717
+ - `Tool: read file` *cmd.read_file*
1714
1718
 
1715
1719
  Allows `read_file` command execution. *Default:* `True`
1716
1720
 
1717
- - `Enable: append to file` *cmd.append_file*
1721
+ - `Tool: append to file` *cmd.append_file*
1718
1722
 
1719
1723
  Allows `append_file` command execution. Text-based files only (plain text, JSON, CSV, etc.) *Default:* `True`
1720
1724
 
1721
- - `Enable: save file` *cmd.save_file*
1725
+ - `Tool: save file` *cmd.save_file*
1722
1726
 
1723
1727
  Allows `save_file` command execution. Text-based files only (plain text, JSON, CSV, etc.) *Default:* `True`
1724
1728
 
1725
- - `Enable: delete file` *cmd.delete_file*
1729
+ - `Tool: delete file` *cmd.delete_file*
1726
1730
 
1727
1731
  Allows `delete_file` command execution. *Default:* `True`
1728
1732
 
1729
- - `Enable: list files (ls)` *cmd.list_files*
1733
+ - `Tool: list files (ls)` *cmd.list_files*
1730
1734
 
1731
1735
  Allows `list_dir` command execution. *Default:* `True`
1732
1736
 
1733
- - `Enable: list files in dirs in directory (ls)` *cmd.list_dir*
1737
+ - `Tool: list files in dirs in directory (ls)` *cmd.list_dir*
1734
1738
 
1735
1739
  Allows `mkdir` command execution. *Default:* `True`
1736
1740
 
1737
- - `Enable: downloading files` *cmd.download_file*
1741
+ - `Tool: downloading files` *cmd.download_file*
1738
1742
 
1739
1743
  Allows `download_file` command execution. *Default:* `True`
1740
1744
 
1741
- - `Enable: removing directories` *cmd.rmdir*
1745
+ - `Tool: removing directories` *cmd.rmdir*
1742
1746
 
1743
1747
  Allows `rmdir` command execution. *Default:* `True`
1744
1748
 
1745
- - `Enable: copying files` *cmd.copy_file*
1749
+ - `Tool: copying files` *cmd.copy_file*
1746
1750
 
1747
1751
  Allows `copy_file` command execution. *Default:* `True`
1748
1752
 
1749
- - `Enable: copying directories (recursive)` *cmd.copy_dir*
1753
+ - `Tool: copying directories (recursive)` *cmd.copy_dir*
1750
1754
 
1751
1755
  Allows `copy_dir` command execution. *Default:* `True`
1752
1756
 
1753
- - `Enable: move files and directories (rename)` *cmd.move*
1757
+ - `Tool: move files and directories (rename)` *cmd.move*
1754
1758
 
1755
1759
  Allows `move` command execution. *Default:* `True`
1756
1760
 
1757
- - `Enable: check if path is directory` *cmd.is_dir*
1761
+ - `Tool: check if path is directory` *cmd.is_dir*
1758
1762
 
1759
1763
  Allows `is_dir` command execution. *Default:* `True`
1760
1764
 
1761
- - `Enable: check if path is file` *cmd.is_file*
1765
+ - `Tool: check if path is file` *cmd.is_file*
1762
1766
 
1763
1767
  Allows `is_file` command execution. *Default:* `True`
1764
1768
 
1765
- - `Enable: check if file or directory exists` *cmd.file_exists*
1769
+ - `Tool: check if file or directory exists` *cmd.file_exists*
1766
1770
 
1767
1771
  Allows `file_exists` command execution. *Default:* `True`
1768
1772
 
1769
- - `Enable: get file size` *cmd.file_size*
1773
+ - `Tool: get file size` *cmd.file_size*
1770
1774
 
1771
1775
  Allows `file_size` command execution. *Default:* `True`
1772
1776
 
1773
- - `Enable: get file info` *cmd.file_info*
1777
+ - `Tool: get file info` *cmd.file_info*
1774
1778
 
1775
1779
  Allows `file_info` command execution. *Default:* `True`
1776
1780
 
1777
- - `Enable: find file or directory` *cmd.find*
1781
+ - `Tool: find file or directory` *cmd.find*
1778
1782
 
1779
1783
  Allows `find` command execution. *Default:* `True`
1780
1784
 
1781
- - `Enable: get current working directory` *cmd.cwd*
1785
+ - `Tool: get current working directory` *cmd.cwd*
1782
1786
 
1783
1787
  Allows `cwd` command execution. *Default:* `True`
1784
1788
 
@@ -1788,7 +1792,7 @@ Use data loaders from LlamaIndex for file reading (`read_file` command). *Defaul
1788
1792
 
1789
1793
  **Indexing**
1790
1794
 
1791
- - `Enable: quick query the file with LlamaIndex` *cmd.query_file*
1795
+ - `Tool: quick query the file with LlamaIndex` *cmd.query_file*
1792
1796
 
1793
1797
  Allows `query_file` command execution (in-memory index). If enabled, model will be able to quick index file into memory and query it for data (in-memory index) *Default:* `True`
1794
1798
 
@@ -1796,7 +1800,7 @@ Allows `query_file` command execution (in-memory index). If enabled, model will
1796
1800
 
1797
1801
  Model used for query temporary index for `query_file` command (in-memory index). *Default:* `gpt-3.5-turbo`
1798
1802
 
1799
- - `Enable: indexing files to persistent index` *cmd.file_index*
1803
+ - `Tool: indexing files to persistent index` *cmd.file_index*
1800
1804
 
1801
1805
  Allows `file_index` command execution. If enabled, model will be able to index file or directory using LlamaIndex (persistent index). *Default:* `True`
1802
1806
 
@@ -1824,7 +1828,7 @@ The plugin provides access to the operating system and executes system commands.
1824
1828
 
1825
1829
  Automatically append current working directory to `sys_exec` command. *Default:* `True`
1826
1830
 
1827
- - `Enable: sys_exec` *cmd.sys_exec*
1831
+ - `Tool: sys_exec` *cmd.sys_exec*
1828
1832
 
1829
1833
  Allows `sys_exec` command execution. If enabled, provides system commands execution. *Default:* `True`
1830
1834
 
@@ -1876,35 +1880,35 @@ Allows keyboard typing. *Default:* `True`
1876
1880
 
1877
1881
  Allows making screenshots. *Default:* `True`
1878
1882
 
1879
- - `Enable: mouse_get_pos` *cmd.mouse_get_pos*
1883
+ - `Tool: mouse_get_pos` *cmd.mouse_get_pos*
1880
1884
 
1881
1885
  Allows `mouse_get_pos` command execution. *Default:* `True`
1882
1886
 
1883
- - `Enable: mouse_set_pos` *cmd.mouse_set_pos*
1887
+ - `Tool: mouse_set_pos` *cmd.mouse_set_pos*
1884
1888
 
1885
1889
  Allows `mouse_set_pos` command execution. *Default:* `True`
1886
1890
 
1887
- - `Enable: make_screenshot` *cmd.make_screenshot*
1891
+ - `Tool: make_screenshot` *cmd.make_screenshot*
1888
1892
 
1889
1893
  Allows `make_screenshot` command execution. *Default:* `True`
1890
1894
 
1891
- - `Enable: mouse_click` *cmd.mouse_click*
1895
+ - `Tool: mouse_click` *cmd.mouse_click*
1892
1896
 
1893
1897
  Allows `mouse_click` command execution. *Default:* `True`
1894
1898
 
1895
- - `Enable: mouse_move` *cmd.mouse_move*
1899
+ - `Tool: mouse_move` *cmd.mouse_move*
1896
1900
 
1897
1901
  Allows `mouse_move` command execution. *Default:* `True`
1898
1902
 
1899
- - `Enable: mouse_scroll` *cmd.mouse_scroll*
1903
+ - `Tool: mouse_scroll` *cmd.mouse_scroll*
1900
1904
 
1901
1905
  Allows `mouse_scroll` command execution. *Default:* `True`
1902
1906
 
1903
- - `Enable: keyboard_key` *cmd.keyboard_key*
1907
+ - `Tool: keyboard_key` *cmd.keyboard_key*
1904
1908
 
1905
1909
  Allows `keyboard_key` command execution. *Default:* `True`
1906
1910
 
1907
- - `Enable: keyboard_type` *cmd.keyboard_type*
1911
+ - `Tool: keyboard_type` *cmd.keyboard_type*
1908
1912
 
1909
1913
  Allows `keyboard_type` command execution. *Default:* `True`
1910
1914
 
@@ -2004,41 +2008,35 @@ Max length of the summarized or raw result (characters). *Default:* `50000`
2004
2008
 
2005
2009
  Max tokens in output when generating summary. *Default:* `1500`
2006
2010
 
2007
- - `Enable: search the Web` *cmd.web_search*
2011
+ - `Tool: web_search` *cmd.web_search*
2008
2012
 
2009
2013
  Allows `web_search` command execution. If enabled, model will be able to search the Web. *Default:* `True`
2010
2014
 
2011
- - `Enable: opening URLs` *cmd.web_url_open*
2015
+ - `Tool: web_url_open` *cmd.web_url_open*
2012
2016
 
2013
2017
  Allows `web_url_open` command execution. If enabled, model will be able to open specified URL and summarize content. *Default:* `True`
2014
2018
 
2015
- - `Enable: reading the raw content from URLs` *cmd.web_url_raw*
2019
+ - `Tool: web_url_raw` *cmd.web_url_raw*
2016
2020
 
2017
2021
  Allows `web_url_raw` command execution. If enabled, model will be able to open specified URL and get the raw content. *Default:* `True`
2018
2022
 
2019
- - `Enable: getting a list of URLs from search results` *cmd.web_urls*
2023
+ - `Tool: web_request` *cmd.web_request*
2020
2024
 
2021
- Allows `web_urls` command execution. If enabled, model will be able to search the Web and get founded URLs list. *Default:* `True`
2025
+ Allows `web_request` command execution. If enabled, model will be able to send any HTTP request to specified URL or API endpoint. *Default:* `True`
2022
2026
 
2023
- - `Enable: indexing web and external content` *cmd.web_index*
2024
-
2025
- Allows `web_index` command execution. If enabled, model will be able to index pages and external content using LlamaIndex (persistent index). *Default:* `True`
2026
-
2027
- - `Enable: quick query the web and external content` *cmd.web_index_query*
2028
-
2029
- Allows `web_index_query` command execution. If enabled, model will be able to quick index and query web content using LlamaIndex (in-memory index). *Default:* `True`
2027
+ - `Tool: web_extract_links` *cmd.web_extract_links*
2030
2028
 
2031
- - `Auto-index all used URLs using LlamaIndex` *auto_index*
2029
+ Allows `web_extract_links` command execution. If enabled, model will be able to open URL and get list of all links from it. *Default:* `True`
2032
2030
 
2033
- If enabled, every URL used by the model will be automatically indexed using LlamaIndex (persistent index). *Default:* `False`
2031
+ - `Tool: web_extract_images` *cmd.web_extract_images*
2034
2032
 
2035
- - `Index to use` *idx*
2033
+ Allows `web_extract_images` command execution. If enabled, model will be able to open URL and get list of all images from it.. *Default:* `True`
2036
2034
 
2037
- ID of index to use for web page indexing (persistent index). *Default:* `base`
2035
+ **Advanced**
2038
2036
 
2039
2037
  - `Model used for web page summarize` *summary_model*
2040
2038
 
2041
- Model used for web page summarize. *Default:* `gpt-3.5-turbo-1106`
2039
+ Model used for web page summarize. *Default:* `gpt-4o-mini`
2042
2040
 
2043
2041
  - `Summarize prompt` *prompt_summarize*
2044
2042
 
@@ -2048,6 +2046,24 @@ Prompt used for web search results summarize, use {query} as a placeholder for s
2048
2046
 
2049
2047
  Prompt used for specified URL page summarize.
2050
2048
 
2049
+ **Indexing**
2050
+
2051
+ - `Tool: web_index` *cmd.web_index*
2052
+
2053
+ Allows `web_index` command execution. If enabled, model will be able to index pages and external content using LlamaIndex (persistent index). *Default:* `True`
2054
+
2055
+ - `Tool: web_index_query` *cmd.web_index_query*
2056
+
2057
+ Allows `web_index_query` command execution. If enabled, model will be able to quick index and query web content using LlamaIndex (in-memory index). *Default:* `True`
2058
+
2059
+ - `Auto-index all used URLs using LlamaIndex` *auto_index*
2060
+
2061
+ If enabled, every URL used by the model will be automatically indexed using LlamaIndex (persistent index). *Default:* `False`
2062
+
2063
+ - `Index to use` *idx*
2064
+
2065
+ ID of index to use for web page indexing (persistent index). *Default:* `base`
2066
+
2051
2067
  ## Serial port / USB
2052
2068
 
2053
2069
  Provides commands for reading and sending data to USB ports.
@@ -2095,15 +2111,15 @@ Timeout in seconds. *Default:* `1`
2095
2111
 
2096
2112
  Sleep in seconds after connection *Default:* `2`
2097
2113
 
2098
- - `Enable: Send text commands to USB port` *cmd.serial_send*
2114
+ - `Tool: Send text commands to USB port` *cmd.serial_send*
2099
2115
 
2100
2116
  Allows `serial_send` command execution. *Default:* `True`
2101
2117
 
2102
- - `Enable: Send raw bytes to USB port` *cmd.serial_send_bytes*
2118
+ - `Tool: Send raw bytes to USB port` *cmd.serial_send_bytes*
2103
2119
 
2104
2120
  Allows `serial_send_bytes` command execution. *Default:* `True`
2105
2121
 
2106
- - `Enable: Read data from USB port` *cmd.serial_read*
2122
+ - `Tool: Read data from USB port` *cmd.serial_read*
2107
2123
 
2108
2124
  Allows `serial_read` command execution. *Default:* `True`
2109
2125
 
@@ -2142,31 +2158,31 @@ Where `123` is the ID of previous context (conversation) in database, example of
2142
2158
 
2143
2159
  When enabled, it allows to automatically retrieve context history using @ tags, e.g. use @123 in question to use summary of context with ID 123 as additional context. *Default:* `False`
2144
2160
 
2145
- - `Enable: get date range context list` *cmd.get_ctx_list_in_date_range*
2161
+ - `Tool: get date range context list` *cmd.get_ctx_list_in_date_range*
2146
2162
 
2147
2163
  Allows `get_ctx_list_in_date_range` command execution. If enabled, it allows getting the list of context history (previous conversations). *Default:* `True
2148
2164
 
2149
- - `Enable: get context content by ID` *cmd.get_ctx_content_by_id*
2165
+ - `Tool: get context content by ID` *cmd.get_ctx_content_by_id*
2150
2166
 
2151
2167
  Allows `get_ctx_content_by_id` command execution. If enabled, it allows getting summarized content of context with defined ID. *Default:* `True`
2152
2168
 
2153
- - `Enable: count contexts in date range` *cmd.count_ctx_in_date*
2169
+ - `Tool: count contexts in date range` *cmd.count_ctx_in_date*
2154
2170
 
2155
2171
  Allows `count_ctx_in_date` command execution. If enabled, it allows counting contexts in date range. *Default:* `True`
2156
2172
 
2157
- - `Enable: get day note` *cmd.get_day_note*
2173
+ - `Tool: get day note` *cmd.get_day_note*
2158
2174
 
2159
2175
  Allows `get_day_note` command execution. If enabled, it allows retrieving day note for specific date. *Default:* `True`
2160
2176
 
2161
- - `Enable: add day note` *cmd.add_day_note*
2177
+ - `Tool: add day note` *cmd.add_day_note*
2162
2178
 
2163
2179
  Allows `add_day_note` command execution. If enabled, it allows adding day note for specific date. *Default:* `True`
2164
2180
 
2165
- - `Enable: update day note` *cmd.update_day_note*
2181
+ - `Tool: update day note` *cmd.update_day_note*
2166
2182
 
2167
2183
  Allows `update_day_note` command execution. If enabled, it allows updating day note for specific date. *Default:* `True`
2168
2184
 
2169
- - `Enable: remove day note` *cmd.remove_day_note*
2185
+ - `Tool: remove day note` *cmd.remove_day_note*
2170
2186
 
2171
2187
  Allows `remove_day_note` command execution. If enabled, it allows removing day note for specific date. *Default:* `True`
2172
2188
 
@@ -2258,14 +2274,57 @@ The prompt used for vision mode. It will append or replace current system prompt
2258
2274
 
2259
2275
  Replace whole system prompt with vision prompt against appending it to the current prompt. *Default:* `False`
2260
2276
 
2261
- - `Enable: capturing images from camera` *cmd.camera_capture*
2277
+ - `Tool: capturing images from camera` *cmd.camera_capture*
2262
2278
 
2263
2279
  Allows `capture` command execution. If enabled, model will be able to capture images from camera itself. The `+ Tools` option must be enabled. *Default:* `False`
2264
2280
 
2265
- - `Enable: making screenshots` *cmd.make_screenshot*
2281
+ - `Tool: making screenshots` *cmd.make_screenshot*
2266
2282
 
2267
2283
  Allows `screenshot` command execution. If enabled, model will be able to making screenshots itself. The `+ Tools` option must be enabled. *Default:* `False`
2268
2284
 
2285
+ ## Mailer
2286
+
2287
+ Enables the sending, receiving, and reading of emails from the inbox. Currently, only SMTP is supported. More options coming soon.
2288
+
2289
+ **Options**
2290
+
2291
+ - `From (email)` *from_email*
2292
+
2293
+ From (email), e.g. me@domain.com
2294
+
2295
+ - `Tool: send_mail` *cmd.send_mail*
2296
+
2297
+ Allows `send_mail` command execution. If enabled, model will be able to sending emails.
2298
+
2299
+ - `Tool: receive_emails` *cmd.receive_emails*
2300
+
2301
+ Allows `receive_emails` command execution. If enabled, model will be able to receive emails from the server.
2302
+
2303
+ - `Tool: get_email_body` *cmd.get_email_body*
2304
+
2305
+ Allows `get_email_body` command execution. If enabled, model will be able to receive message body from the server.
2306
+
2307
+ - `SMTP Host` *smtp_host*
2308
+
2309
+ SMTP Host, e.g. smtp.domain.com
2310
+
2311
+ - `SMTP Port (Inbox)` *smtp_port_inbox*
2312
+
2313
+ SMTP Port, default: 995
2314
+
2315
+ - `SMTP Port (Outbox)` *smtp_port_outbox*
2316
+
2317
+ SMTP Port, default: 465
2318
+
2319
+ - `SMTP User` *smtp_user*
2320
+
2321
+ SMTP User, e.g. user@domain.com
2322
+
2323
+ - `SMTP Password` *smtp_password*
2324
+
2325
+ SMTP Password.
2326
+
2327
+
2269
2328
  ## Real Time
2270
2329
 
2271
2330
  This plugin automatically adds the current date and time to each system prompt you send.
@@ -3877,6 +3936,19 @@ may consume additional tokens that are not displayed in the main window.
3877
3936
 
3878
3937
  ## Recent changes:
3879
3938
 
3939
+ **2.4.43 (2024-12-15)**
3940
+
3941
+ - Fix: Bug on attachment upload.
3942
+ - Added: Attachments uploaded in groups are now available for all contexts in the group (beta).
3943
+
3944
+ **2.4.42 (2024-12-15)**
3945
+
3946
+ - Added Mailer plugin, which allows sending and retrieving emails from the server, and reading them. It currently supports only SMTP.
3947
+ - Added 'web_request' command to the Web Search plugin, enabling GET/POST/PUT and other connections to any address and API endpoint. It also supports sending POST data, files, headers, cookies, and more.
3948
+ - Improved audio output.
3949
+ - Enhanced visibility of the Video menu.
3950
+ - Other fixes.
3951
+
3880
3952
  **2.4.41 (2024-12-14)**
3881
3953
 
3882
3954
  - Improved switching between columns on a split screen.
pygpt_net/CHANGELOG.txt CHANGED
@@ -1,3 +1,16 @@
1
+ 2.4.43 (2024-12-15)
2
+
3
+ - Fix: Bug on attachment upload.
4
+ - Added: Attachments uploaded in groups are now available for all contexts in the group (beta).
5
+
6
+ 2.4.42 (2024-12-15)
7
+
8
+ - Added Mailer plugin, which allows sending and retrieving emails from the server, and reading them. It currently supports only SMTP.
9
+ - Added 'web_request' command to the Web Search plugin, enabling GET/POST/PUT and other connections to any address and API endpoint. It also supports sending POST data, files, headers, cookies, and more.
10
+ - Improved audio output.
11
+ - Enhanced visibility of the Video menu.
12
+ - Other fixes.
13
+
1
14
  2.4.41 (2024-12-14)
2
15
 
3
16
  - Improved switching between columns on a split screen.
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.12.14 08:00:00 #
9
+ # Updated Date: 2024.12.15 11: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.41"
17
- __build__ = "2024.12.14"
16
+ __version__ = "2.4.43"
17
+ __build__ = "2024.12.15"
18
18
  __maintainer__ = "Marcin Szczygliński"
19
19
  __github__ = "https://github.com/szczyglis-dev/py-gpt"
20
20
  __website__ = "https://pygpt.net"
pygpt_net/app.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.11.21 20:00:00 #
9
+ # Updated Date: 2024.12.15 04:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from pygpt_net.launcher import Launcher
@@ -32,6 +32,7 @@ from pygpt_net.plugin.openai_dalle import Plugin as OpenAIDallePlugin
32
32
  from pygpt_net.plugin.openai_vision import Plugin as OpenAIVisionPlugin
33
33
  from pygpt_net.plugin.real_time import Plugin as RealTimePlugin
34
34
  from pygpt_net.plugin.agent import Plugin as AgentPlugin
35
+ from pygpt_net.plugin.mailer import Plugin as MailerPlugin
35
36
 
36
37
  # agents (Llama-index)
37
38
  from pygpt_net.provider.agents.openai import OpenAIAgent
@@ -320,6 +321,7 @@ def run(**kwargs):
320
321
  launcher.add_plugin(OpenAIDallePlugin())
321
322
  launcher.add_plugin(OpenAIVisionPlugin())
322
323
  launcher.add_plugin(IdxLlamaIndexPlugin())
324
+ launcher.add_plugin(MailerPlugin())
323
325
  launcher.add_plugin(CrontabPlugin())
324
326
 
325
327
  # register custom plugins
@@ -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.12.14 08:00:00 #
9
+ # Updated Date: 2024.12.14 18:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import os
@@ -221,7 +221,7 @@ class Audio:
221
221
  """
222
222
  Play sound
223
223
 
224
- :param filename
224
+ :param filename: sound file name
225
225
  """
226
226
  path = os.path.join(self.window.core.config.get_app_path(), "data", "audio", filename)
227
227
  if path:
@@ -19,9 +19,6 @@ import cv2
19
19
  from PySide6.QtCore import Slot, QObject
20
20
  from PySide6.QtGui import QImage, QPixmap, Qt
21
21
 
22
- from pygpt_net.core.types import (
23
- MODE_VISION,
24
- )
25
22
  from pygpt_net.core.events import AppEvent, KernelEvent
26
23
  from pygpt_net.core.camera import CaptureWorker
27
24
  from pygpt_net.utils import trans
@@ -508,15 +505,9 @@ class Camera(QObject):
508
505
 
509
506
  :return: True if capture is allowed
510
507
  """
511
- mode = self.window.core.config.get('mode')
512
508
  if self.window.controller.painter.is_active():
513
509
  return True
514
- if (mode != MODE_VISION
515
- and mode not in self.window.controller.chat.vision.allowed_modes):
516
- return False
517
- if self.window.controller.plugins.is_type_enabled('vision'):
518
- return True
519
- if self.window.controller.ui.vision.is_vision_model():
510
+ if self.window.controller.ui.vision.has_vision():
520
511
  return True
521
512
  return False
522
513