pygpt-net 2.6.19__py3-none-any.whl → 2.6.20__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.6.19
3
+ Version: 2.6.20
4
4
  Summary: Desktop AI Assistant powered by: OpenAI GPT-5, o1, o3, GPT-4, Gemini, Claude, Grok, DeepSeek, and other models supported by Llama Index, and Ollama. Chatbot, agents, completion, image generation, vision analysis, speech-to-text, plugins, internet access, file handling, command execution and more.
5
5
  License: MIT
6
6
  Keywords: py_gpt,py-gpt,pygpt,desktop,app,o1,o3,gpt-5,gpt,gpt4,gpt-4o,gpt-4v,gpt3.5,gpt-4,gpt-4-vision,gpt-3.5,llama3,mistral,gemini,grok,deepseek,bielik,claude,tts,whisper,vision,chatgpt,dall-e,chat,chatbot,assistant,text completion,image generation,ai,api,openai,api key,langchain,llama-index,ollama,presets,ui,qt,pyside
@@ -23,6 +23,7 @@ Requires-Dist: PySide6 (==6.9.1)
23
23
  Requires-Dist: Pygments (>=2.19.2,<3.0.0)
24
24
  Requires-Dist: SQLAlchemy (>=2.0.41,<3.0.0)
25
25
  Requires-Dist: SpeechRecognition (>=3.14.3,<4.0.0)
26
+ Requires-Dist: Telethon (>=1.40.0,<2.0.0)
26
27
  Requires-Dist: anthropic (>=0.54.0,<0.55.0)
27
28
  Requires-Dist: azure-core (>=1.34.0,<2.0.0)
28
29
  Requires-Dist: beautifulsoup4 (>=4.13.4,<5.0.0)
@@ -80,6 +81,7 @@ Requires-Dist: openai-agents (>=0.2.3,<0.3.0)
80
81
  Requires-Dist: opencv-python (>=4.11.0.86,<5.0.0.0)
81
82
  Requires-Dist: packaging (>=24.2,<25.0)
82
83
  Requires-Dist: pandas (>=2.2.3,<3.0.0)
84
+ Requires-Dist: paramiko (>=4.0.0,<5.0.0)
83
85
  Requires-Dist: pillow (>=10.4.0,<11.0.0)
84
86
  Requires-Dist: pinecone-client (>=3.2.2,<4.0.0)
85
87
  Requires-Dist: psutil (>=7.0.0,<8.0.0)
@@ -109,7 +111,7 @@ Description-Content-Type: text/markdown
109
111
 
110
112
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
111
113
 
112
- Release: **2.6.19** | build: **2025-08-22** | Python: **>=3.10, <3.14**
114
+ Release: **2.6.20** | build: **2025-08-22** | Python: **>=3.10, <3.14**
113
115
 
114
116
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
115
117
  >
@@ -1412,320 +1414,91 @@ Required **kwargs:
1412
1414
 
1413
1415
  **PyGPT** can be enhanced with plugins to add new features.
1414
1416
 
1415
- **Tip:** Plugins works best with GPT-4 models.
1416
-
1417
1417
  The following plugins are currently available, and model can use them instantly:
1418
1418
 
1419
+ - `API calls` - plugin lets you connect the model to the external services using custom defined API calls.
1420
+
1419
1421
  - `Audio Input` - provides speech recognition.
1420
1422
 
1421
1423
  - `Audio Output` - provides voice synthesis.
1422
1424
 
1423
1425
  - `Autonomous Agent (inline)` - enables autonomous conversation (AI to AI), manages loop, and connects output back to input. This is the inline Agent mode.
1424
1426
 
1425
- - `Chat with Files (LlamaIndex, inline)` - plugin integrates `LlamaIndex` storage in any chat and provides additional knowledge into context (from indexed files and previous context from database).
1426
-
1427
- - `API calls` - plugin lets you connect the model to the external services using custom defined API calls.
1428
-
1429
- - `Code Interpreter` - responsible for generating and executing Python code, functioning much like
1430
- the Code Interpreter on ChatGPT, but locally. This means a model can interface with any script, application, or code.
1431
- Plugins can work in conjunction to perform sequential tasks; for example, the `Files` plugin can write generated
1432
- Python code to a file, which the `Code Interpreter` can execute it and return its result to model.
1433
-
1434
- - `Custom Commands` - allows you to create and execute custom commands on your system.
1435
-
1436
- - `Files I/O` - provides access to the local filesystem, enabling a model to read and write files,
1437
- as well as list and create directories.
1438
-
1439
- - `System (OS)` - allows you to create and execute custom commands on your system.
1440
-
1441
- - `Mouse and Keyboard` - provides the ability to control the mouse and keyboard by the model.
1427
+ - `Bitbucket` - Access Bitbucket API to manage repositories, issues, and pull requests.
1442
1428
 
1443
- - `Web Search` - provides the ability to connect to the Web, search web pages for current data, and index external content using LlamaIndex data loaders.
1429
+ - `Chat with Files (LlamaIndex, inline)` - plugin integrates `LlamaIndex` storage in any chat and provides additional knowledge into context (from indexed files and previous context from database).
1444
1430
 
1445
- - `Serial port / USB` - plugin provides commands for reading and sending data to USB ports.
1431
+ - `Code Interpreter` - responsible for generating and executing Python code, functioning much like the Code Interpreter on ChatGPT, but locally. This means a model can interface with any script, application, or code. Plugins can work in conjunction to perform sequential tasks; for example, the `Files` plugin can write generated Python code to a file, which the `Code Interpreter` can execute it and return its result to model.
1446
1432
 
1447
1433
  - `Context history (calendar, inline)` - provides access to context history database.
1448
1434
 
1449
1435
  - `Crontab / Task scheduler` - plugin provides cron-based job scheduling - you can schedule tasks/prompts to be sent at any time using cron-based syntax for task setup.
1450
1436
 
1451
- - `Image Generation (inline)` - integrates DALL-E 3 image generation with any chat and mode. Just enable and ask for image in Chat mode, using standard model like GPT-4. The plugin does not require the `+ Tools` option to be enabled.
1437
+ - `Custom Commands` - allows you to create and execute custom commands on your system.
1452
1438
 
1453
1439
  - `Experts (inline)` - allows calling experts in any chat mode. This is the inline Experts (co-op) mode.
1454
1440
 
1455
- - `Vision (inline)` - integrates Vision capabilities with any chat mode, not just Vision mode. When the plugin is enabled, the model temporarily switches to vision in the background when an image attachment or vision capture is provided.
1456
-
1457
- - `Real Time` - automatically appends the current date and time to the system prompt, informing the model about current time.
1458
-
1459
- - `System Prompt Extra (append)` - appends additional system prompts (extra data) from a list to every current system prompt. You can enhance every system prompt with extra instructions that will be automatically appended to the system prompt.
1460
-
1461
- - `Voice Control (inline)` - provides voice control command execution within a conversation.
1462
-
1463
- - `Mailer` - Provides the ability to send, receive and read emails.
1464
-
1465
- - `Google` - Access Gmail, Drive, Docs, Maps, Calendar, Contacts, Colab, YouTube, Keep - for managing emails, files, events, notes, video info, and contacts.
1466
-
1467
1441
  - `Facebook` - Manage user info, pages, posts, and photos on Facebook pages.
1468
1442
 
1469
- - `Slack` - Handle users, conversations, messages, and files on Slack.
1470
-
1471
- - `Telegram` - Send messages, photos, and documents; manage chats and contacts.
1472
-
1473
- - `X/Twitter` - Interact with tweets and users, manage bookmarks and media, perform likes, retweets, and more.
1443
+ - `Files I/O` - provides access to the local filesystem, enabling a model to read and write files, as well as list and create directories.
1474
1444
 
1475
1445
  - `GitHub` - Access GitHub API to manage repositories, issues, and pull requests.
1476
1446
 
1477
- - `Bitbucket` - Access Bitbucket API to manage repositories, issues, and pull requests.
1478
-
1479
- ## Audio Input
1480
-
1481
- 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.
1482
-
1483
- The plugin can be extended with other speech recognition providers.
1484
-
1485
- Options:
1486
-
1487
- - `Provider` *provider*
1488
-
1489
- Choose the provider. *Default:* `Whisper`
1490
-
1491
- Available providers:
1492
-
1493
- - Whisper (via `OpenAI API`)
1494
- - Whisper (local model) - not available in compiled and Snap versions, only Python/PyPi version
1495
- - Google (via `SpeechRecognition` library)
1496
- - Google Cloud (via `SpeechRecognition` library)
1497
- - Microsoft Bing (via `SpeechRecognition` library)
1498
-
1499
- **Whisper (API)**
1500
-
1501
- - `Model` *whisper_model*
1502
-
1503
- Choose the model. *Default:* `whisper-1`
1504
-
1505
- **Whisper (local)**
1506
-
1507
- - `Model` *whisper_local_model*
1508
-
1509
- Choose the local model. *Default:* `base`
1510
-
1511
- Available models: https://github.com/openai/whisper
1512
-
1513
- **Google**
1514
-
1515
- - `Additional keywords arguments` *google_args*
1516
-
1517
- Additional keywords arguments for r.recognize_google(audio, **kwargs)
1518
-
1519
- **Google Cloud**
1520
-
1521
- - `Additional keywords arguments` *google_cloud_args*
1522
-
1523
- Additional keywords arguments for r.recognize_google_cloud(audio, **kwargs)
1524
-
1525
- **Bing**
1526
-
1527
- - `Additional keywords arguments` *bing_args*
1528
-
1529
- Additional keywords arguments for r.recognize_bing(audio, **kwargs)
1530
-
1531
-
1532
- **General options**
1533
-
1534
- - `Auto send` *auto_send*
1535
-
1536
- Automatically send recognized speech as input text after recognition. *Default:* `True`
1537
-
1538
- - `Advanced mode` *advanced*
1539
-
1540
- Enable only if you want to use advanced mode and the settings below. Do not enable this option if you just want to use the simplified mode (default). *Default:* `False`
1541
-
1542
-
1543
- **Advanced mode options**
1544
-
1545
- - `Timeout` *timeout*
1546
-
1547
- The duration in seconds that the application waits for voice input from the microphone. *Default:* `5`
1548
-
1549
- - `Phrase max length` *phrase_length*
1550
-
1551
- Maximum duration for a voice sample (in seconds). *Default:* `10`
1552
-
1553
- - `Min energy` *min_energy*
1554
-
1555
- Minimum threshold multiplier above the noise level to begin recording. *Default:* `1.3`
1556
-
1557
- - `Adjust for ambient noise` *adjust_noise*
1558
-
1559
- Enables adjustment to ambient noise levels. *Default:* `True`
1560
-
1561
- - `Continuous listen` *continuous_listen*
1562
-
1563
- Experimental: continuous listening - do not stop listening after a single input.
1564
- Warning: This feature may lead to unexpected results and requires fine-tuning with
1565
- the rest of the options! If disabled, listening must be started manually
1566
- by enabling the `Speak` option. *Default:* `False`
1567
-
1568
-
1569
- - `Wait for response` *wait_response*
1570
-
1571
- Wait for a response before initiating listening for the next input. *Default:* `True`
1572
-
1573
- - `Magic word` *magic_word*
1574
-
1575
- Activate listening only after the magic word is provided. *Default:* `False`
1447
+ - `Google` - Access Gmail, Drive, Docs, Maps, Calendar, Contacts, Colab, YouTube, Keep - for managing emails, files, events, notes, video info, and contacts.
1576
1448
 
1577
- - `Reset Magic word` *magic_word_reset*
1449
+ - `Image Generation (inline)` - integrates DALL-E 3 image generation with any chat and mode. Just enable and ask for image in Chat mode, using standard model like GPT-4. The plugin does not require the `+ Tools` option to be enabled.
1578
1450
 
1579
- Reset the magic word status after it is received (the magic word will need to be provided again). *Default:* `True`
1451
+ - `Mailer` - Provides the ability to send, receive and read emails.
1580
1452
 
1581
- - `Magic words` *magic_words*
1453
+ - `Mouse and Keyboard` - provides the ability to control the mouse and keyboard by the model.
1582
1454
 
1583
- List of magic words to initiate listening (Magic word mode must be enabled). *Default:* `OK, Okay, Hey GPT, OK GPT`
1455
+ - `Real Time` - automatically appends the current date and time to the system prompt, informing the model about current time.
1584
1456
 
1585
- - `Magic word timeout` *magic_word_timeout*
1457
+ - `Serial port / USB` - plugin provides commands for reading and sending data to USB ports.
1586
1458
 
1587
- The number of seconds the application waits for magic word. *Default:* `1`
1459
+ - `Server (SSH/FTP)` - Connect to remote servers using FTP, SFTP, and SSH. Execute remote commands, upload, download, and more.
1588
1460
 
1589
- - `Magic word phrase max length` *magic_word_phrase_length*
1461
+ - `Slack` - Handle users, conversations, messages, and files on Slack.
1590
1462
 
1591
- The minimum phrase duration for magic word. *Default:* `2`
1463
+ - `System Prompt Extra (append)` - appends additional system prompts (extra data) from a list to every current system prompt. You can enhance every system prompt with extra instructions that will be automatically appended to the system prompt.
1592
1464
 
1593
- - `Prefix words` *prefix_words*
1465
+ - `System (OS)` - allows you to create and execute custom commands on your system.
1594
1466
 
1595
- List of words that must initiate each phrase to be processed. For example, you can define words like "OK" or "GPT"—if set, any phrases not starting with those words will be ignored. Insert multiple words or phrases separated by commas. Leave empty to deactivate. *Default:* `empty`
1467
+ - `Telegram` - Send messages, photos, and documents; manage chats and contacts.
1596
1468
 
1597
- - `Stop words` *stop_words*
1469
+ - `Vision (inline)` - integrates Vision capabilities with any chat mode, not just Vision mode. When the plugin is enabled, the model temporarily switches to vision in the background when an image attachment or vision capture is provided.
1598
1470
 
1599
- List of words that will stop the listening process. *Default:* `stop, exit, quit, end, finish, close, terminate, kill, halt, abort`
1471
+ - `Voice Control (inline)` - provides voice control command execution within a conversation.
1600
1472
 
1601
- Options related to Speech Recognition internals:
1473
+ - `Web Search` - provides the ability to connect to the Web, search web pages for current data, and index external content using LlamaIndex data loaders.
1602
1474
 
1603
- - `energy_threshold` *recognition_energy_threshold*
1475
+ - `X/Twitter` - Interact with tweets and users, manage bookmarks and media, perform likes, retweets, and more.
1604
1476
 
1605
- Represents the energy level threshold for sounds. *Default:* `300`
1606
1477
 
1607
- - `dynamic_energy_threshold` *recognition_dynamic_energy_threshold*
1478
+ ## API calls
1608
1479
 
1609
- Represents whether the energy level threshold (see recognizer_instance.energy_threshold) for sounds
1610
- should be automatically adjusted based on the currently ambient noise level while listening. *Default:* `True`
1480
+ **PyGPT** lets you connect the model to the external services using custom defined API calls.
1611
1481
 
1612
- - `dynamic_energy_adjustment_damping` *recognition_dynamic_energy_adjustment_damping*
1482
+ To activate this feature, turn on the `API calls` plugin found in the `Plugins` menu.
1613
1483
 
1614
- Represents approximately the fraction of the current energy threshold that is retained after one second
1615
- of dynamic threshold adjustment. *Default:* `0.15`
1484
+ In this plugin you can provide list of allowed API calls, their parameters and request types. The model will replace provided placeholders with required params and make API call to external service.
1616
1485
 
1617
- - `pause_threshold` *recognition_pause_threshold*
1486
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#api-calls
1618
1487
 
1619
- Represents the minimum length of silence (in seconds) that will register as the end of a phrase. *Default:* `0.8`
1488
+ ## Audio Input
1620
1489
 
1621
- - `adjust_for_ambient_noise: duration` *recognition_adjust_for_ambient_noise_duration*
1490
+ 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.
1622
1491
 
1623
- The duration parameter is the maximum number of seconds that it will dynamically adjust the threshold
1624
- for before returning. *Default:* `1`
1492
+ The plugin can be extended with other speech recognition providers.
1625
1493
 
1626
- Options reference: https://pypi.org/project/SpeechRecognition/1.3.1/
1494
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#audio-input
1627
1495
 
1628
1496
  ## Audio Output
1629
1497
 
1630
1498
  The plugin lets you turn text into speech using the TTS model from OpenAI or other services like `Microsoft Azure`, `Google`, and `Eleven Labs`. You can add more text-to-speech providers to it too. `OpenAI TTS` does not require any additional API keys or extra configuration; it utilizes the main OpenAI key.
1631
1499
  Microsoft Azure requires to have an Azure API Key. Before using speech synthesis via `Microsoft Azure`, `Google` or `Eleven Labs`, you must configure the audio plugin with your API keys, regions and voices if required.
1632
1500
 
1633
- ![v2_azure](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_azure.png)
1634
-
1635
- Through the available options, you can select the voice that you want the model to use. More voice synthesis providers coming soon.
1636
-
1637
- To enable voice synthesis, activate the `Audio Output` plugin in the `Plugins` menu or turn on the `Audio Output` option in the `Audio / Voice` menu (both options in the menu achieve the same outcome).
1638
-
1639
- **Options**
1640
-
1641
- - `Provider` *provider*
1642
-
1643
- Choose the provider. *Default:* `OpenAI TTS`
1644
-
1645
- Available providers:
1646
-
1647
- - OpenAI TTS
1648
- - Microsoft Azure TTS
1649
- - Google TTS
1650
- - Eleven Labs TTS
1651
-
1652
- **OpenAI Text-To-Speech**
1653
-
1654
- - `Model` *openai_model*
1655
-
1656
- Choose the model. Available options:
1657
-
1658
- ```
1659
- - tts-1
1660
- - tts-1-hd
1661
- ```
1662
- *Default:* `tts-1`
1663
-
1664
- - `Voice` *openai_voice*
1665
-
1666
- Choose the voice. Available voices to choose from:
1667
-
1668
- ```
1669
- - alloy
1670
- - echo
1671
- - fable
1672
- - onyx
1673
- - nova
1674
- - shimmer
1675
- ```
1676
-
1677
- *Default:* `alloy`
1678
-
1679
- **Microsoft Azure Text-To-Speech**
1680
-
1681
- - `Azure API Key` *azure_api_key*
1682
-
1683
- Here, you should enter the API key, which can be obtained by registering for free on the following website: https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech
1684
-
1685
- - `Azure Region` *azure_region*
1686
-
1687
- You must also provide the appropriate region for Azure here. *Default:* `eastus`
1688
-
1689
- - `Voice (EN)` *azure_voice_en*
1690
-
1691
- Here you can specify the name of the voice used for speech synthesis for English. *Default:* `en-US-AriaNeural`
1692
-
1693
- - `Voice (non-English)` *azure_voice_pl*
1694
-
1695
- Here you can specify the name of the voice used for speech synthesis for other non-english languages. *Default:* `pl-PL-AgnieszkaNeural`
1696
-
1697
- **Google Text-To-Speech**
1698
-
1699
- - `Google Cloud Text-to-speech API Key` *google_api_key*
1700
-
1701
- You can obtain your own API key at: https://console.cloud.google.com/apis/library/texttospeech.googleapis.com
1702
-
1703
- - `Voice` *google_voice*
1704
-
1705
- Specify voice. Voices: https://cloud.google.com/text-to-speech/docs/voices
1706
-
1707
- - `Language code` *google_api_key*
1708
-
1709
- Language code. Language codes: https://cloud.google.com/speech-to-text/docs/speech-to-text-supported-languages
1710
-
1711
- **Eleven Labs Text-To-Speech**
1712
-
1713
- - `Eleven Labs API Key` *eleven_labs_api_key*
1714
-
1715
- You can obtain your own API key at: https://elevenlabs.io/speech-synthesis
1716
-
1717
- - `Voice ID` *eleven_labs_voice*
1718
-
1719
- Voice ID. Voices: https://elevenlabs.io/voice-library
1720
-
1721
- - `Model` *eleven_labs_model*
1722
-
1723
- Specify model. Models: https://elevenlabs.io/docs/speech-synthesis/models
1724
-
1725
-
1726
- If speech synthesis is enabled, a voice will be additionally generated in the background while generating a response via model.
1727
-
1728
- Both `OpenAI TTS` and `OpenAI Whisper` use the same single API key provided for the OpenAI API, with no additional keys required.
1501
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#audio-output
1729
1502
 
1730
1503
  ## Autonomous Agent (inline)
1731
1504
 
@@ -1737,1044 +1510,188 @@ in self-dialogue, answering his own questions and comments, in order to find the
1737
1510
 
1738
1511
  This mode is similar to `Auto-GPT` - it can be used to create more advanced inferences and to solve problems by breaking them down into subtasks that the model will autonomously perform one after another until the goal is achieved. The plugin is capable of working in cooperation with other plugins, thus it can utilize tools such as web search, access to the file system, or image generation using `DALL-E`.
1739
1512
 
1740
- You can adjust the number of iterations for the self-conversation in the `Plugins / Settings...` menu under the following option:
1741
-
1742
- - `Iterations` *iterations*
1743
-
1744
- *Default:* `3`
1745
-
1746
- **WARNING**: Setting this option to `0` activates an **infinity loop** which can generate a large number of requests and cause very high token consumption, so use this option with caution!
1747
-
1748
- - `Prompts` *prompts*
1749
-
1750
- Editable list of prompts used to instruct how to handle autonomous mode, you can create as many prompts as you want.
1751
- First active prompt on list will be used to handle autonomous mode. **INFO:** At least one active prompt is required!
1752
-
1753
- - `Auto-stop after goal is reached` *auto_stop*
1754
-
1755
- If enabled, plugin will stop after goal is reached." *Default:* `True`
1756
-
1757
- - `Reverse roles between iterations` *reverse_roles*
1758
-
1759
- Only for Completion modes.
1760
- If enabled, this option reverses the roles (AI <> user) with each iteration. For example,
1761
- if in the previous iteration the response was generated for "Batman," the next iteration will use that
1762
- response to generate an input for "Joker." *Default:* `True`
1763
-
1764
- ## Chat with Files (LlamaIndex, inline)
1765
-
1766
- Plugin integrates `LlamaIndex` storage in any chat and provides additional knowledge into context.
1767
-
1768
- - `Ask LlamaIndex first` *ask_llama_first*
1769
-
1770
- When enabled, then `LlamaIndex` will be asked first, and response will be used as additional knowledge in prompt. When disabled, then `LlamaIndex` will be asked only when needed. **INFO: Disabled in autonomous mode (via plugin)!** *Default:* `False`
1771
-
1772
- - `Auto-prepare question before asking LlamaIndex first` *prepare_question*
1773
-
1774
- When enabled, then question will be prepared before asking LlamaIndex first to create best query. *Default:* `False`
1775
-
1776
- - `Model for question preparation` *model_prepare_question*
1777
-
1778
- Model used to prepare question before asking LlamaIndex. *Default:* `gpt-3.5-turbo`
1779
-
1780
- - `Max output tokens for question preparation` *prepare_question_max_tokens*
1781
-
1782
- Max tokens in output when preparing question before asking LlamaIndex. *Default:* `500`
1783
-
1784
- - `Prompt for question preparation` *syntax_prepare_question*
1785
-
1786
- System prompt for question preparation.
1787
-
1788
- - `Max characters in question` *max_question_chars*
1789
-
1790
- Max characters in question when querying LlamaIndex, 0 = no limit. *Default:* `1000`
1791
-
1792
- - `Append metadata to context` *append_meta*
1793
-
1794
- If enabled, then metadata from LlamaIndex will be appended to additional context. *Default:* `False`
1795
-
1796
- - `Model` *model_query*
1797
-
1798
- Model used for querying `LlamaIndex`. *Default:* `gpt-3.5-turbo`
1799
-
1800
- - `Indexes IDs` *idx*
1801
-
1802
- Indexes to use. If you want to use multiple indexes at once then separate them by comma. *Default:* `base`
1803
-
1804
-
1805
- ## API calls
1806
-
1807
- **PyGPT** lets you connect the model to the external services using custom defined API calls.
1808
-
1809
- To activate this feature, turn on the `API calls` plugin found in the `Plugins` menu.
1810
-
1811
- In this plugin you can provide list of allowed API calls, their parameters and request types. The model will replace provided placeholders with required params and make API call to external service.
1812
-
1813
- - `Your custom API calls` *cmds*
1814
-
1815
- You can provide custom API calls on the list here.
1816
-
1817
- Params to specify for API call:
1818
-
1819
- - **Enabled** (True / False)
1820
- - **Name:** unique API call name (ID)
1821
- - **Instruction:** description for model when and how to use this API call
1822
- - **GET params:** list, separated by comma, GET params to append to endpoint URL
1823
- - **POST params:** list, separated by comma, POST params to send in POST request
1824
- - **POST JSON:** provide the JSON object, template to send in POST JSON request, use `%param%` as POST param placeholders
1825
- - **Headers:** provide the JSON object with dictionary of extra request headers, like Authorization, API keys, etc.
1826
- - **Request type:** use GET for basic GET request, POST to send encoded POST params or POST_JSON to send JSON-encoded object as body
1827
- - **Endpoint:** API endpoint URL, use `{param}` as GET param placeholders
1828
-
1829
- An example API call is provided with plugin by default, it calls the Wikipedia API:
1830
-
1831
- - Name: `search_wiki`
1832
- - Instructiom: `send API call to Wikipedia to search pages by query`
1833
- - GET params: `query, limit`
1834
- - Type: `GET`
1835
- - API endpoint: https://en.wikipedia.org/w/api.php?action=opensearch&limit={limit}&format=json&search={query}
1836
-
1837
- In the above example, every time you ask the model for query Wiki for provided query (e.g. `Call the Wikipedia API for query: Nikola Tesla`) it will replace placeholders in provided API endpoint URL with a generated query and it will call prepared API endpoint URL, like below:
1838
-
1839
- https://en.wikipedia.org/w/api.php?action=opensearch&limit=5&format=json&search=Nikola%20Tesla
1840
-
1841
- You can specify type of request: `GET`, `POST` and `POST JSON`.
1842
-
1843
- In the `POST` request you can provide POST params, they will be encoded and send as POST data.
1844
-
1845
- In the `POST JSON` request you must provide JSON object template to be send, using `%param%` placeholders in the JSON object to be replaced with the model.
1846
-
1847
- You can also provide any required credentials, like Authorization headers, API keys, tokens, etc. using the `headers` field - you can provide a JSON object here with a dictionary `key => value` - provided JSON object will be converted to headers dictonary and send with the request.
1848
-
1849
- - `Disable SSL verify` *disable_ssl*
1850
-
1851
- Disables SSL verification when making requests. *Default:* `False`
1852
-
1853
- - `Timeout` *timeout*
1854
-
1855
- Connection timeout (seconds). *Default:* `5`
1856
-
1857
- - `User agent` *user_agent*
1858
-
1859
- User agent to use when making requests. *Default:* `Mozilla/5.0`
1860
-
1861
-
1862
- ## Code Interpreter
1863
-
1864
- ### Executing Code
1865
-
1866
- From version `2.4.13` with built-in `IPython`.
1867
-
1868
- The plugin operates similarly to the `Code Interpreter` in `ChatGPT`, with the key difference that it works locally on the user's system. It allows for the execution of any Python code on the computer that the model may generate. When combined with the `Files I/O` plugin, it facilitates running code from files saved in the `data` directory. You can also prepare your own code files and enable the model to use them or add your own plugin for this purpose. You can execute commands and code on the host machine or in Docker container.
1869
-
1870
- **IPython:** Starting from version `2.4.13`, it is highly recommended to adopt the new option: `IPython`, which offers significant improvements over previous workflows. IPython provides a robust environment for executing code within a kernel, allowing you to maintain the state of your session by preserving the results of previous commands. This feature is particularly useful for iterative development and data analysis, as it enables you to build upon prior computations without starting from scratch. Moreover, IPython supports the use of magic commands, such as `!pip install <package_name>`, which facilitate the installation of new packages directly within the session. This capability streamlines the process of managing dependencies and enhances the flexibility of your development environment. Overall, IPython offers a more efficient and user-friendly experience for executing and managing code.
1513
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#autonomous-agent-inline
1871
1514
 
1872
- To use IPython in sandbox mode, Docker must be installed on your system.
1873
-
1874
- You can find the installation instructions here: https://docs.docker.com/engine/install/
1875
-
1876
- **Tip: connecting IPython in Docker in Snap version**:
1877
-
1878
- To use IPython in the Snap version, you must connect PyGPT to the Docker daemon:
1879
-
1880
- ```commandline
1881
- sudo snap connect pygpt:docker-executables docker:docker-executables
1882
- ```
1883
-
1884
- ````commandline
1885
- sudo snap connect pygpt:docker docker:docker-daemon
1886
- ````
1887
-
1888
-
1889
- **Code interpreter:** a real-time Python Code Interpreter is built-in. Click the `<>` icon to open the interpreter window. Both the input and output of the interpreter are connected to the plugin. Any output generated by the executed code will be displayed in the interpreter. Additionally, you can request the model to retrieve contents from the interpreter window output.
1890
-
1891
- ![v2_python](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_python.png)
1892
-
1893
- **INFO:** Executing Python code using IPython in compiled versions requires an enabled sandbox (Docker container). You can connect the Docker container via `Plugins -> Settings`.
1894
-
1895
-
1896
- **Tip:** always remember to enable the `+ Tools` option to allow execute commands from the plugins.
1897
-
1898
-
1899
- **Options:**
1900
-
1901
- **General**
1902
-
1903
- - `Connect to the Python Code Interpreter window` *attach_output*
1904
-
1905
- Automatically attach code input/output to the Python Code Interpreter window. *Default:* `True`
1515
+ ## Bitbucket
1906
1516
 
1907
- - `Tool: get_python_output` *cmd.get_python_output*
1517
+ The Bitbucket plugin allows for seamless integration with the Bitbucket Cloud API, offering functionalities to manage repositories, issues, and pull requests. This plugin provides highly configurable options for authentication, cached convenience, and manages HTTP requests efficiently.
1908
1518
 
1909
- Allows `get_python_output` command execution. If enabled, it allows retrieval of the output from the Python Code Interpreter window. *Default:* `True`
1910
-
1911
- - `Tool: get_python_input` *cmd.get_python_input*
1912
-
1913
- 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`
1914
-
1915
- - `Tool: clear_python_output` *cmd.clear_python_output*
1916
-
1917
- Allows `clear_python_output` command execution. If enabled, it allows clear the output of the Python Code Interpreter window. *Default:* `True`
1918
-
1919
-
1920
- **IPython**
1921
-
1922
- - `Sandbox (docker container)` *sandbox_ipython*
1923
-
1924
- Executes IPython in sandbox (docker container). Docker must be installed and running.
1925
-
1926
- - `Dockerfile` *ipython_dockerfile*
1927
-
1928
- You can customize the Dockerfile for the image used by IPython by editing the configuration above and rebuilding the image via Tools -> Rebuild IPython Docker Image.
1929
-
1930
- - `Session Key` *ipython_session_key*
1931
-
1932
- It must match the key provided in the Dockerfile.
1933
-
1934
- - `Docker image name` *ipython_image_name*
1935
-
1936
- Custom image name
1937
-
1938
- - `Docker container name` *ipython_container_name*
1939
-
1940
- Custom container name
1941
-
1942
- - `Connection address` *ipython_conn_addr*
1943
-
1944
- Default: 127.0.0.1
1945
-
1946
- - `Port: shell` *ipython_port_shell*
1947
-
1948
- Default: 5555
1949
-
1950
- - `Port: iopub` *ipython_port_iopub*
1951
-
1952
- Default: 5556
1953
-
1954
- - `Port: stdin` *ipython_port_stdin*
1955
-
1956
- Default: 5557
1957
-
1958
- - `Port: control` *ipython_port_control*
1959
-
1960
- Default: 5558
1961
-
1962
- - `Port: hb` *ipython_port_hb*
1963
-
1964
- Default: 5559
1965
-
1966
-
1967
- - `Tool: ipython_execute` *cmd.ipython_execute*
1968
-
1969
- Allows Python code execution in IPython interpreter (in current kernel). *Default:* `True`
1970
-
1971
- - `Tool: python_kernel_restart` *cmd.ipython_kernel_restart*
1972
-
1973
- Allows to restart IPython kernel. *Default:* `True`
1974
-
1975
-
1976
- **Python (legacy)**
1977
-
1978
- - `Sandbox (docker container)` *sandbox_docker*
1979
-
1980
- Executes commands in sandbox (docker container). Docker must be installed and running.
1981
-
1982
- - `Python command template` *python_cmd_tpl*
1983
-
1984
- Python command template (use {filename} as path to file placeholder). *Default:* `python3 {filename}`
1985
-
1986
- - `Dockerfile` *dockerfile*
1987
-
1988
- You can customize the Dockerfile for the image used by legacy Python by editing the configuration above and rebuilding the image via Tools -> Rebuild Python (Legacy) Docker Image.
1989
-
1990
- - `Docker image name` *image_name*
1991
-
1992
- Custom Docker image name
1993
-
1994
- - `Docker container name` *container_name*
1995
-
1996
- Custom Docker container name
1997
-
1998
- - `Tool: code_execute` *cmd.code_execute*
1999
-
2000
- Allows `code_execute` command execution. If enabled, provides Python code execution (generate and execute from file). *Default:* `True`
2001
-
2002
- - `Tool: code_execute_all` *cmd.code_execute_all*
2003
-
2004
- Allows `code_execute_all` command execution. If enabled, provides execution of all the Python code in interpreter window. *Default:* `True`
2005
-
2006
- - `Tool: code_execute_file` *cmd.code_execute_file*
2007
-
2008
- Allows `code_execute_file` command execution. If enabled, provides Python code execution from existing .py file. *Default:* `True`
2009
-
2010
-
2011
- **HTML Canvas**
2012
-
2013
- - `Tool: render_html_output` *cmd.render_html_output*
2014
-
2015
- 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`
2016
-
2017
- - `Tool: get_html_output` *cmd.get_html_output*
2018
-
2019
- Allows `get_html_output` command execution. If enabled, it allows retrieval current output from HTML Canvas. *Default:* `True`
2020
-
2021
- - `Sandbox (docker container)` *sandbox_docker*
2022
-
2023
- Execute commands in sandbox (docker container). Docker must be installed and running. *Default:* `False`
2024
-
2025
- - `Docker image` *sandbox_docker_image*
2026
-
2027
- Docker image to use for sandbox *Default:* `python:3.8-alpine`
2028
-
2029
-
2030
-
2031
- ## Custom Commands
2032
-
2033
- With the `Custom Commands` plugin, you can integrate **PyGPT** with your operating system and scripts or applications. You can define an unlimited number of custom commands and instruct model on when and how to execute them. Configuration is straightforward, and **PyGPT** includes a simple tutorial command for testing and learning how it works:
2034
-
2035
- ![v2_custom_cmd](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_custom_cmd.png)
2036
-
2037
- To add a new custom command, click the **ADD** button and then:
2038
-
2039
- 1. Provide a name for your command: this is a unique identifier for model.
2040
- 2. Provide an `instruction` explaining what this command does; model will know when to use the command based on this instruction.
2041
- 3. Define `params`, separated by commas - model will send data to your commands using these params. These params will be placed into placeholders you have defined in the `cmd` field. For example:
2042
-
2043
- If you want instruct model to execute your Python script named `smart_home_lights.py` with an argument, such as `1` to turn the light ON, and `0` to turn it OFF, define it as follows:
2044
-
2045
- - **name**: lights_cmd
2046
- - **instruction**: turn lights on/off; use 1 as 'arg' to turn ON, or 0 as 'arg' to turn OFF
2047
- - **params**: arg
2048
- - **cmd**: `python /path/to/smart_home_lights.py {arg}`
2049
-
2050
- The setup defined above will work as follows:
2051
-
2052
- When you ask model to turn your lights ON, model will locate this command and prepare the command `python /path/to/smart_home_lights.py {arg}` with `{arg}` replaced with `1`. On your system, it will execute the command:
2053
-
2054
- ```python /path/to/smart_home_lights.py 1```
2055
-
2056
- And that's all. model will take care of the rest when you ask to turn ON the lights.
2057
-
2058
- You can define as many placeholders and parameters as you desire.
2059
-
2060
- Here are some predefined system placeholders for use:
2061
-
2062
- - `{_time}` - current time in `H:M:S` format
2063
- - `{_date}` - current date in `Y-m-d` format
2064
- - `{_datetime}` - current date and time in `Y-m-d H:M:S` format
2065
- - `{_file}` - path to the file from which the command is invoked
2066
- - `{_home}` - path to **PyGPT**'s home/working directory
2067
-
2068
- You can connect predefined placeholders with your own params.
2069
-
2070
- *Example:*
2071
-
2072
- - **name**: song_cmd
2073
- - **instruction**: store the generated song on hard disk
2074
- - **params**: song_text, title
2075
- - **cmd**: `echo "{song_text}" > {_home}/{title}.txt`
2076
-
2077
-
2078
- With the setup above, every time you ask model to generate a song for you and save it to the disk, it will:
2079
-
2080
- 1. Generate a song.
2081
- 2. Locate your command.
2082
- 3. Execute the command by sending the song's title and text.
2083
- 4. The command will save the song text into a file named with the song's title in the PyGPT working directory.
2084
-
2085
- **Example tutorial command**
2086
-
2087
- **PyGPT** provides simple tutorial command to show how it works, to run it just ask model for execute `tutorial test command` and it will show you how it works:
2088
-
2089
- ```> please execute tutorial test command```
2090
-
2091
- ![v2_custom_cmd_example](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_custom_cmd_example.png)
2092
-
2093
- ## Files I/O
2094
-
2095
- The plugin allows for file management within the local filesystem. It enables the model to create, read, write and query files located in the `data` directory, which can be found in the user's work directory. With this plugin, the AI can also generate Python code files and thereafter execute that code within the user's system.
2096
-
2097
- Plugin capabilities include:
2098
-
2099
- - Sending files as attachments
2100
- - Reading files
2101
- - Appending to files
2102
- - Writing files
2103
- - Deleting files and directories
2104
- - Listing files and directories
2105
- - Creating directories
2106
- - Downloading files
2107
- - Copying files and directories
2108
- - Moving (renaming) files and directories
2109
- - Reading file info
2110
- - Indexing files and directories using LlamaIndex
2111
- - Querying files using LlamaIndex
2112
- - Searching for files and directories
2113
-
2114
- If a file being created (with the same name) already exists, a prefix including the date and time is added to the file name.
2115
-
2116
- **Options:**
2117
-
2118
- **General**
2119
-
2120
- - `Tool: send (upload) file as attachment` *cmd.send_file*
2121
-
2122
- Allows `cmd.send_file` command execution. *Default:* `True`
2123
-
2124
- - `Tool: read file` *cmd.read_file*
2125
-
2126
- Allows `read_file` command execution. *Default:* `True`
2127
-
2128
- - `Tool: append to file` *cmd.append_file*
2129
-
2130
- Allows `append_file` command execution. Text-based files only (plain text, JSON, CSV, etc.) *Default:* `True`
2131
-
2132
- - `Tool: save file` *cmd.save_file*
2133
-
2134
- Allows `save_file` command execution. Text-based files only (plain text, JSON, CSV, etc.) *Default:* `True`
2135
-
2136
- - `Tool: delete file` *cmd.delete_file*
2137
-
2138
- Allows `delete_file` command execution. *Default:* `True`
2139
-
2140
- - `Tool: list files (ls)` *cmd.list_files*
2141
-
2142
- Allows `list_dir` command execution. *Default:* `True`
2143
-
2144
- - `Tool: list files in dirs in directory (ls)` *cmd.list_dir*
2145
-
2146
- Allows `mkdir` command execution. *Default:* `True`
2147
-
2148
- - `Tool: downloading files` *cmd.download_file*
2149
-
2150
- Allows `download_file` command execution. *Default:* `True`
2151
-
2152
- - `Tool: removing directories` *cmd.rmdir*
2153
-
2154
- Allows `rmdir` command execution. *Default:* `True`
2155
-
2156
- - `Tool: copying files` *cmd.copy_file*
2157
-
2158
- Allows `copy_file` command execution. *Default:* `True`
2159
-
2160
- - `Tool: copying directories (recursive)` *cmd.copy_dir*
2161
-
2162
- Allows `copy_dir` command execution. *Default:* `True`
2163
-
2164
- - `Tool: move files and directories (rename)` *cmd.move*
2165
-
2166
- Allows `move` command execution. *Default:* `True`
2167
-
2168
- - `Tool: check if path is directory` *cmd.is_dir*
2169
-
2170
- Allows `is_dir` command execution. *Default:* `True`
2171
-
2172
- - `Tool: check if path is file` *cmd.is_file*
2173
-
2174
- Allows `is_file` command execution. *Default:* `True`
2175
-
2176
- - `Tool: check if file or directory exists` *cmd.file_exists*
2177
-
2178
- Allows `file_exists` command execution. *Default:* `True`
2179
-
2180
- - `Tool: get file size` *cmd.file_size*
2181
-
2182
- Allows `file_size` command execution. *Default:* `True`
2183
-
2184
- - `Tool: get file info` *cmd.file_info*
2185
-
2186
- Allows `file_info` command execution. *Default:* `True`
2187
-
2188
- - `Tool: find file or directory` *cmd.find*
2189
-
2190
- Allows `find` command execution. *Default:* `True`
2191
-
2192
- - `Tool: get current working directory` *cmd.cwd*
2193
-
2194
- Allows `cwd` command execution. *Default:* `True`
2195
-
2196
- - `Use data loaders` *use_loaders*
2197
-
2198
- Use data loaders from LlamaIndex for file reading (`read_file` command). *Default:* `True`
2199
-
2200
- **Indexing**
2201
-
2202
- - `Tool: quick query the file with LlamaIndex` *cmd.query_file*
2203
-
2204
- 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`
2205
-
2206
- - `Model for query in-memory index` *model_tmp_query*
2207
-
2208
- Model used for query temporary index for `query_file` command (in-memory index). *Default:* `gpt-3.5-turbo`
2209
-
2210
- - `Tool: indexing files to persistent index` *cmd.file_index*
2211
-
2212
- Allows `file_index` command execution. If enabled, model will be able to index file or directory using LlamaIndex (persistent index). *Default:* `True`
2213
-
2214
- - `Index to use when indexing files` *idx*
2215
-
2216
- ID of index to use for indexing files (persistent index). *Default:* `base`
2217
-
2218
- - `Auto index reading files` *auto_index*
2219
-
2220
- If enabled, every time file is read, it will be automatically indexed (persistent index). *Default:* `False`
2221
-
2222
- - `Only index reading files` *only_index*
2223
-
2224
- If enabled, file will be indexed without return its content on file read (persistent index). *Default:* `False`
2225
-
2226
- ## System (OS)
2227
-
2228
- The plugin provides access to the operating system and executes system commands.
2229
-
2230
- **Options:**
2231
-
2232
- **General**
2233
-
2234
- - `Auto-append CWD to sys_exec` *auto_cwd*
2235
-
2236
- Automatically append current working directory to `sys_exec` command. *Default:* `True`
2237
-
2238
- - `Tool: sys_exec` *cmd.sys_exec*
2239
-
2240
- Allows `sys_exec` command execution. If enabled, provides system commands execution. *Default:* `True`
2241
-
2242
-
2243
- ## Mouse And Keyboard
2244
-
2245
- Introduced in version: `2.4.4` (2024-11-09)
2246
-
2247
- **WARNING: Use this plugin with caution - allowing all options gives the model full control over the mouse and keyboard**
2248
-
2249
- The plugin allows for controlling the mouse and keyboard by the model. With this plugin, you can send a task to the model, e.g., "open notepad, type something in it" or "open web browser, do search, find something."
2250
-
2251
- Plugin capabilities include:
2252
-
2253
- - Get mouse cursor position
2254
- - Control mouse cursor position
2255
- - Control mouse clicks
2256
- - Control mouse scroll
2257
- - Control the keyboard (pressing keys, typing text)
2258
- - Making screenshots
2259
-
2260
- The `+ Tools` option must be enabled to use this plugin.
2261
-
2262
- **Options:**
2263
-
2264
- **General**
2265
-
2266
- - `Prompt` *prompt*
2267
-
2268
- Prompt used to instruct how to control the mouse and keyboard.
2269
-
2270
- - `Enable: Allow mouse movement` *allow_mouse_move*
2271
-
2272
- Allows mouse movement. *Default:* `True`
2273
-
2274
- - `Enable: Allow mouse click` *allow_mouse_click*
2275
-
2276
- Allows mouse click. *Default:* `True`
2277
-
2278
- - `Enable: Allow mouse scroll` *allow_mouse_scroll*
2279
-
2280
- Allows mouse scroll. *Default:* `True`
2281
-
2282
- - `Enable: Allow keyboard key press` *allow_keyboard*
2283
-
2284
- Allows keyboard typing. *Default:* `True`
2285
-
2286
- - `Enable: Allow making screenshots` *allow_screenshot*
2287
-
2288
- Allows making screenshots. *Default:* `True`
2289
-
2290
- - `Tool: mouse_get_pos` *cmd.mouse_get_pos*
2291
-
2292
- Allows `mouse_get_pos` command execution. *Default:* `True`
2293
-
2294
- - `Tool: mouse_set_pos` *cmd.mouse_set_pos*
2295
-
2296
- Allows `mouse_set_pos` command execution. *Default:* `True`
2297
-
2298
- - `Tool: make_screenshot` *cmd.make_screenshot*
2299
-
2300
- Allows `make_screenshot` command execution. *Default:* `True`
2301
-
2302
- - `Tool: mouse_click` *cmd.mouse_click*
2303
-
2304
- Allows `mouse_click` command execution. *Default:* `True`
2305
-
2306
- - `Tool: mouse_move` *cmd.mouse_move*
2307
-
2308
- Allows `mouse_move` command execution. *Default:* `True`
2309
-
2310
- - `Tool: mouse_scroll` *cmd.mouse_scroll*
2311
-
2312
- Allows `mouse_scroll` command execution. *Default:* `True`
2313
-
2314
- - `Tool: keyboard_key` *cmd.keyboard_key*
2315
-
2316
- Allows `keyboard_key` command execution. *Default:* `True`
2317
-
2318
- - `Tool: keyboard_type` *cmd.keyboard_type*
2319
-
2320
- Allows `keyboard_type` command execution. *Default:* `True`
2321
-
2322
-
2323
- ## Web Search
2324
-
2325
- **PyGPT** lets you connect model to the internet and carry out web searches in real time as you make queries.
2326
-
2327
- To activate this feature, turn on the `Web Search` plugin found in the `Plugins` menu.
2328
-
2329
- Web searches are provided by `Google Custom Search Engine` and `Microsoft Bing` APIs and can be extended with other search engine providers.
2330
-
2331
- **Options**
2332
-
2333
- - `Provider` *provider*
2334
-
2335
- Choose the provider. *Default:* `Google`
2336
-
2337
- Available providers:
2338
-
2339
- - Google
2340
- - Microsoft Bing
2341
-
2342
- **Google**
2343
-
2344
- To use this provider, you need an API key, which you can obtain by registering an account at:
2345
-
2346
- https://developers.google.com/custom-search/v1/overview
2347
-
2348
- After registering an account, create a new project and select it from the list of available projects:
2349
-
2350
- https://programmablesearchengine.google.com/controlpanel/all
2351
-
2352
- After selecting your project, you need to enable the `Whole Internet Search` option in its settings.
2353
- Then, copy the following two items into **PyGPT**:
2354
-
2355
- - `Api Key`
2356
- - `CX ID`
2357
-
2358
- These data must be configured in the appropriate fields in the `Plugins / Settings...` menu:
2359
-
2360
- ![v2_plugin_google](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_plugin_google.png)
2361
-
2362
- - `Google Custom Search API KEY` *google_api_key*
2363
-
2364
- You can obtain your own API key at https://developers.google.com/custom-search/v1/overview
2365
-
2366
- - `Google Custom Search CX ID` *google_api_cx*
2367
-
2368
- You will find your CX ID at https://programmablesearchengine.google.com/controlpanel/all - remember to enable "Search on ALL internet pages" option in project settings.
2369
-
2370
- **Microsoft Bing**
2371
-
2372
- - `Bing Search API KEY` *bing_api_key*
2373
-
2374
- You can obtain your own API key at https://www.microsoft.com/en-us/bing/apis/bing-web-search-api
2375
-
2376
- - `Bing Search API endpoint` *bing_endpoint*
2377
-
2378
- API endpoint for Bing Search API, default: https://api.bing.microsoft.com/v7.0/search
2379
-
2380
- **General options**
2381
-
2382
- - `Number of pages to search` *num_pages*
2383
-
2384
- Number of max pages to search per query. *Default:* `10`
2385
-
2386
- - `Max content characters` *max_page_content_length*
2387
-
2388
- Max characters of page content to get (0 = unlimited). *Default:* `0`
2389
-
2390
- - `Per-page content chunk size` *chunk_size*
2391
-
2392
- Per-page content chunk size (max characters per chunk). *Default:* `20000`
2393
-
2394
- - `Disable SSL verify` *disable_ssl*
2395
-
2396
- Disables SSL verification when crawling web pages. *Default:* `False`
2397
-
2398
- - `Use raw content (without summarization)` *raw*
2399
-
2400
- Return raw content from web search instead of summarized content. Provides more data but consumes more tokens. *Default:* `True`
2401
-
2402
- - `Timeout` *timeout*
2403
-
2404
- Connection timeout (seconds). *Default:* `5`
2405
-
2406
- - `User agent` *user_agent*
2407
-
2408
- User agent to use when making requests. *Default:* `Mozilla/5.0`.
2409
-
2410
- - `Max result length` *max_result_length*
2411
-
2412
- Max length of the summarized or raw result (characters). *Default:* `50000`
2413
-
2414
- - `Max summary tokens` *summary_max_tokens*
2415
-
2416
- Max tokens in output when generating summary. *Default:* `1500`
2417
-
2418
- - `Tool: web_search` *cmd.web_search*
2419
-
2420
- Allows `web_search` command execution. If enabled, model will be able to search the Web. *Default:* `True`
2421
-
2422
- - `Tool: web_url_open` *cmd.web_url_open*
2423
-
2424
- Allows `web_url_open` command execution. If enabled, model will be able to open specified URL and summarize content. *Default:* `True`
2425
-
2426
- - `Tool: web_url_raw` *cmd.web_url_raw*
2427
-
2428
- Allows `web_url_raw` command execution. If enabled, model will be able to open specified URL and get the raw content. *Default:* `True`
2429
-
2430
- - `Tool: web_request` *cmd.web_request*
2431
-
2432
- Allows `web_request` command execution. If enabled, model will be able to send any HTTP request to specified URL or API endpoint. *Default:* `True`
2433
-
2434
- - `Tool: web_extract_links` *cmd.web_extract_links*
2435
-
2436
- 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`
2437
-
2438
- - `Tool: web_extract_images` *cmd.web_extract_images*
2439
-
2440
- 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`
2441
-
2442
- **Advanced**
2443
-
2444
- - `Model used for web page summarize` *summary_model*
2445
-
2446
- Model used for web page summarize. *Default:* `gpt-4o-mini`
2447
-
2448
- - `Summarize prompt` *prompt_summarize*
2449
-
2450
- Prompt used for web search results summarize, use {query} as a placeholder for search query.
2451
-
2452
- - `Summarize prompt (URL open)` *prompt_summarize_url*
2453
-
2454
- Prompt used for specified URL page summarize.
2455
-
2456
- **Indexing**
2457
-
2458
- - `Tool: web_index` *cmd.web_index*
2459
-
2460
- Allows `web_index` command execution. If enabled, model will be able to index pages and external content using LlamaIndex (persistent index). *Default:* `True`
2461
-
2462
- - `Tool: web_index_query` *cmd.web_index_query*
2463
-
2464
- 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`
2465
-
2466
- - `Auto-index all used URLs using LlamaIndex` *auto_index*
2467
-
2468
- If enabled, every URL used by the model will be automatically indexed using LlamaIndex (persistent index). *Default:* `False`
2469
-
2470
- - `Index to use` *idx*
2471
-
2472
- ID of index to use for web page indexing (persistent index). *Default:* `base`
2473
-
2474
- ## Serial port / USB
2475
-
2476
- Provides commands for reading and sending data to USB ports.
2477
-
2478
- **Tip:** in Snap version you must connect the interface first: https://snapcraft.io/docs/serial-port-interface
2479
-
2480
- You can send commands to, for example, an Arduino or any other controllers using the serial port for communication.
2481
-
2482
- ![v2_serial](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_serial.png)
2483
-
2484
- Above is an example of co-operation with the following code uploaded to `Arduino Uno` and connected via USB:
2485
-
2486
- ```cpp
2487
- // example.ino
2488
-
2489
- void setup() {
2490
- Serial.begin(9600);
2491
- }
2492
-
2493
- void loop() {
2494
- if (Serial.available() > 0) {
2495
- String input = Serial.readStringUntil('\n');
2496
- if (input.length() > 0) {
2497
- Serial.println("OK, response for: " + input);
2498
- }
2499
- }
2500
- }
2501
- ```
2502
-
2503
- **Options**
2504
-
2505
- - `USB port` *serial_port*
2506
-
2507
- USB port name, e.g. `/dev/ttyUSB0`, `/dev/ttyACM0`, `COM3`. *Default:* `/dev/ttyUSB0`
2508
-
2509
- - `Connection speed (baudrate, bps)` *serial_bps*
2510
-
2511
- Port connection speed, in bps. *Default:* `9600`
2512
-
2513
- - `Timeout` *timeout*
2514
-
2515
- Timeout in seconds. *Default:* `1`
2516
-
2517
- - `Sleep` *sleep*
2518
-
2519
- Sleep in seconds after connection *Default:* `2`
2520
-
2521
- - `Tool: Send text commands to USB port` *cmd.serial_send*
2522
-
2523
- Allows `serial_send` command execution. *Default:* `True`
2524
-
2525
- - `Tool: Send raw bytes to USB port` *cmd.serial_send_bytes*
2526
-
2527
- Allows `serial_send_bytes` command execution. *Default:* `True`
2528
-
2529
- - `Tool: Read data from USB port` *cmd.serial_read*
2530
-
2531
- Allows `serial_read` command execution. *Default:* `True`
2532
-
2533
- ## Context history (calendar, inline)
2534
-
2535
- Provides access to context history database.
2536
- Plugin also provides access to reading and creating day notes.
2537
-
2538
- Examples of use, you can ask e.g. for the following:
2539
-
2540
- ```Give me today day note```
2541
-
2542
- ```Save a new note for today```
2543
-
2544
- ```Update my today note with...```
2545
-
2546
- ```Get the list of yesterday conversations```
2547
-
2548
- ```Get contents of conversation ID 123```
2549
-
2550
- etc.
2551
-
2552
- You can also use `@` ID tags to automatically use summary of previous contexts in current discussion.
2553
- To use context from previous discussion with specified ID use following syntax in your query:
2554
-
2555
- ```@123```
2556
-
2557
- Where `123` is the ID of previous context (conversation) in database, example of use:
2558
-
2559
- ```Let's talk about discussion @123```
2560
-
2561
-
2562
- **Options**
2563
-
2564
- - `Enable: using context @ ID tags` *use_tags*
2565
-
2566
- 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`
2567
-
2568
- - `Tool: get date range context list` *cmd.get_ctx_list_in_date_range*
2569
-
2570
- Allows `get_ctx_list_in_date_range` command execution. If enabled, it allows getting the list of context history (previous conversations). *Default:* `True
2571
-
2572
- - `Tool: get context content by ID` *cmd.get_ctx_content_by_id*
2573
-
2574
- Allows `get_ctx_content_by_id` command execution. If enabled, it allows getting summarized content of context with defined ID. *Default:* `True`
2575
-
2576
- - `Tool: count contexts in date range` *cmd.count_ctx_in_date*
2577
-
2578
- Allows `count_ctx_in_date` command execution. If enabled, it allows counting contexts in date range. *Default:* `True`
2579
-
2580
- - `Tool: get day note` *cmd.get_day_note*
2581
-
2582
- Allows `get_day_note` command execution. If enabled, it allows retrieving day note for specific date. *Default:* `True`
2583
-
2584
- - `Tool: add day note` *cmd.add_day_note*
2585
-
2586
- Allows `add_day_note` command execution. If enabled, it allows adding day note for specific date. *Default:* `True`
2587
-
2588
- - `Tool: update day note` *cmd.update_day_note*
2589
-
2590
- Allows `update_day_note` command execution. If enabled, it allows updating day note for specific date. *Default:* `True`
2591
-
2592
- - `Tool: remove day note` *cmd.remove_day_note*
2593
-
2594
- Allows `remove_day_note` command execution. If enabled, it allows removing day note for specific date. *Default:* `True`
2595
-
2596
- - `Model` *model_summarize*
2597
-
2598
- Model used for summarize. *Default:* `gpt-3.5-turbo`
2599
-
2600
- - `Max summary tokens` *summary_max_tokens*
2601
-
2602
- Max tokens in output when generating summary. *Default:* `1500`
2603
-
2604
- - `Max contexts to retrieve` *ctx_items_limit*
2605
-
2606
- Max items in context history list to retrieve in one query. 0 = no limit. *Default:* `30`
2607
-
2608
- - `Per-context items content chunk size` *chunk_size*
2609
-
2610
- Per-context content chunk size (max characters per chunk). *Default:* `100000 chars`
2611
-
2612
- **Options (advanced)**
2613
-
2614
- - `Prompt: @ tags (system)` *prompt_tag_system*
2615
-
2616
- Prompt for use @ tag (system).
2617
-
2618
- - `Prompt: @ tags (summary)` *prompt_tag_summary*
2619
-
2620
- Prompt for use @ tag (summary).
2621
-
2622
-
2623
- ## Crontab / Task scheduler
2624
-
2625
- Plugin provides cron-based job scheduling - you can schedule tasks/prompts to be sent at any time using cron-based syntax for task setup.
2626
-
2627
- ![v2_crontab](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_crontab.png)
2628
-
2629
- - `Your tasks` *crontab*
2630
-
2631
- Add your cron-style tasks here.
2632
- They will be executed automatically at the times you specify in the cron-based job format.
2633
- If you are unfamiliar with Cron, consider visiting the Cron Guru page for assistance: https://crontab.guru
2634
-
2635
- Number of active tasks is always displayed in a tray dropdown menu:
2636
-
2637
- ![v2_crontab_tray](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_crontab_tray.png)
2638
-
2639
- - `Create a new context on job run` *new_ctx*
2640
-
2641
- If enabled, then a new context will be created on every run of the job. *Default:* `True`
2642
-
2643
- - `Show notification on job run` *show_notify*
2644
-
2645
- If enabled, then a tray notification will be shown on every run of the job. *Default:* `True`
2646
-
2647
-
2648
- ## Image Generation (inline)
2649
-
2650
- The plugin integrates `DALL-E 3` image generation with any chat mode. Simply enable it and request an image in Chat mode, using a standard model such as `GPT-4`. The plugin does not require the `+ Tools` option to be enabled.
2651
-
2652
- **Options**
2653
-
2654
- - `Prompt` *prompt*
2655
-
2656
- The prompt is used to generate a query for the `DALL-E` image generation model, which runs in the background.
2657
-
2658
- ## Experts (inline)
2659
-
2660
- The plugin allows calling experts in any chat mode. This is the inline Experts (co-op) mode.
1519
+ - Retrieve details about the authenticated user.
1520
+ - Get information about a specific user.
1521
+ - List available workspaces.
1522
+ - List repositories in a workspace.
1523
+ - Get details about a specific repository.
1524
+ - Create a new repository.
1525
+ - Delete an existing repository.
1526
+ - Retrieve contents of a file in a repository.
1527
+ - Upload a file to a repository.
1528
+ - Delete a file from a repository.
1529
+ - List issues in a repository.
1530
+ - Create a new issue.
1531
+ - Comment on an existing issue.
1532
+ - Update details of an issue.
1533
+ - List pull requests in a repository.
1534
+ - Create a new pull request.
1535
+ - Merge an existing pull request.
1536
+ - Search for repositories.
2661
1537
 
2662
- See the `Work modes -> Experts` section for more details.
1538
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#bitbucket
2663
1539
 
2664
- ## Vision (inline)
1540
+ ## Chat with Files (LlamaIndex, inline)
2665
1541
 
2666
- The plugin integrates vision capabilities across all chat modes, not just Vision mode. Once enabled, it allows the model to seamlessly switch to vision processing in the background whenever an image attachment or vision capture is detected.
1542
+ Plugin integrates `LlamaIndex` storage in any chat and provides additional knowledge into context.
2667
1543
 
2668
- **Tip:** When using `Vision (inline)` by utilizing a plugin in standard mode, such as `Chat` (not `Vision` mode), the `+ Vision` special checkbox will appear at the bottom of the Chat window. It will be automatically enabled any time you provide content for analysis (like an uploaded photo). When the checkbox is enabled, the vision model is used. If you wish to exit the vision model after image analysis, simply uncheck the checkbox. It will activate again automatically when the next image content for analysis is provided.
1544
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#chat-with-files-llamaindex-inline
2669
1545
 
2670
- **Options**
1546
+ ## Code Interpreter
2671
1547
 
2672
- - `Model` *model*
1548
+ ### Executing Code
2673
1549
 
2674
- The model used to temporarily provide vision capabilities. *Default:* `gpt-4-vision-preview`.
1550
+ From version `2.4.13` with built-in `IPython`.
2675
1551
 
2676
- - `Prompt` *prompt*
1552
+ The plugin operates similarly to the `Code Interpreter` in `ChatGPT`, with the key difference that it works locally on the user's system. It allows for the execution of any Python code on the computer that the model may generate. When combined with the `Files I/O` plugin, it facilitates running code from files saved in the `data` directory. You can also prepare your own code files and enable the model to use them or add your own plugin for this purpose. You can execute commands and code on the host machine or in Docker container.
2677
1553
 
2678
- The prompt used for vision mode. It will append or replace current system prompt when using vision model.
1554
+ **IPython:** Starting from version `2.4.13`, it is highly recommended to adopt the new option: `IPython`, which offers significant improvements over previous workflows. IPython provides a robust environment for executing code within a kernel, allowing you to maintain the state of your session by preserving the results of previous commands. This feature is particularly useful for iterative development and data analysis, as it enables you to build upon prior computations without starting from scratch. Moreover, IPython supports the use of magic commands, such as `!pip install <package_name>`, which facilitate the installation of new packages directly within the session. This capability streamlines the process of managing dependencies and enhances the flexibility of your development environment. Overall, IPython offers a more efficient and user-friendly experience for executing and managing code.
2679
1555
 
2680
- - `Replace prompt` *replace_prompt*
1556
+ To use IPython in sandbox mode, Docker must be installed on your system.
2681
1557
 
2682
- Replace whole system prompt with vision prompt against appending it to the current prompt. *Default:* `False`
1558
+ You can find the installation instructions here: https://docs.docker.com/engine/install/
2683
1559
 
2684
- - `Tool: capturing images from camera` *cmd.camera_capture*
1560
+ **Tip: connecting IPython in Docker in Snap version**:
2685
1561
 
2686
- Allows `capture` command execution. If enabled, model will be able to capture images from camera itself. The `+ Tools` option must be enabled. *Default:* `False`
1562
+ To use IPython in the Snap version, you must connect PyGPT to the Docker daemon:
2687
1563
 
2688
- - `Tool: making screenshots` *cmd.make_screenshot*
1564
+ ```commandline
1565
+ sudo snap connect pygpt:docker-executables docker:docker-executables
1566
+ ```
2689
1567
 
2690
- Allows `screenshot` command execution. If enabled, model will be able to making screenshots itself. The `+ Tools` option must be enabled. *Default:* `False`
1568
+ ````commandline
1569
+ sudo snap connect pygpt:docker docker:docker-daemon
1570
+ ````
2691
1571
 
2692
- ## Mailer
1572
+ **Code interpreter:** a real-time Python Code Interpreter is built-in. Click the `<>` icon to open the interpreter window. Both the input and output of the interpreter are connected to the plugin. Any output generated by the executed code will be displayed in the interpreter. Additionally, you can request the model to retrieve contents from the interpreter window output.
2693
1573
 
2694
- Enables the sending, receiving, and reading of emails from the inbox. Currently, only SMTP is supported. More options coming soon.
1574
+ ![v2_python](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_python.png)
2695
1575
 
2696
- **Options**
1576
+ **INFO:** Executing Python code using IPython in compiled versions requires an enabled sandbox (Docker container). You can connect the Docker container via `Plugins -> Settings`.
2697
1577
 
2698
- - `From (email)` *from_email*
2699
1578
 
2700
- From (email), e.g. me@domain.com
1579
+ **Tip:** always remember to enable the `+ Tools` option to allow execute commands from the plugins.
2701
1580
 
2702
- - `Tool: send_mail` *cmd.send_mail*
1581
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#code-interpreter
2703
1582
 
2704
- Allows `send_mail` command execution. If enabled, model will be able to sending emails.
1583
+ ## Context history (calendar, inline)
2705
1584
 
2706
- - `Tool: receive_emails` *cmd.receive_emails*
1585
+ Provides access to context history database.
1586
+ Plugin also provides access to reading and creating day notes.
2707
1587
 
2708
- Allows `receive_emails` command execution. If enabled, model will be able to receive emails from the server.
1588
+ Examples of use, you can ask e.g. for the following:
2709
1589
 
2710
- - `Tool: get_email_body` *cmd.get_email_body*
1590
+ ```Give me today day note```
2711
1591
 
2712
- Allows `get_email_body` command execution. If enabled, model will be able to receive message body from the server.
1592
+ ```Save a new note for today```
2713
1593
 
2714
- - `SMTP Host` *smtp_host*
1594
+ ```Update my today note with...```
2715
1595
 
2716
- SMTP Host, e.g. smtp.domain.com
1596
+ ```Get the list of yesterday conversations```
2717
1597
 
2718
- - `SMTP Port (Inbox)` *smtp_port_inbox*
1598
+ ```Get contents of conversation ID 123```
2719
1599
 
2720
- SMTP Port, default: 995
1600
+ etc.
2721
1601
 
2722
- - `SMTP Port (Outbox)` *smtp_port_outbox*
1602
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#context-history-calendar-inline
2723
1603
 
2724
- SMTP Port, default: 465
1604
+ ## Crontab / Task scheduler
2725
1605
 
2726
- - `SMTP User` *smtp_user*
1606
+ Plugin provides cron-based job scheduling - you can schedule tasks/prompts to be sent at any time using cron-based syntax for task setup.
2727
1607
 
2728
- SMTP User, e.g. user@domain.com
1608
+ ![v2_crontab](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_crontab.png)
2729
1609
 
2730
- - `SMTP Password` *smtp_password*
1610
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#crontab-task-scheduler
2731
1611
 
2732
- SMTP Password.
1612
+ ## Custom Commands
2733
1613
 
1614
+ With the `Custom Commands` plugin, you can integrate **PyGPT** with your operating system and scripts or applications. You can define an unlimited number of custom commands and instruct model on when and how to execute them. Configuration is straightforward, and **PyGPT** includes a simple tutorial command for testing and learning how it works:
2734
1615
 
2735
- ## Real Time
1616
+ ![v2_custom_cmd](https://github.com/szczyglis-dev/py-gpt/raw/master/docs/source/images/v2_custom_cmd.png)
2736
1617
 
2737
- This plugin automatically adds the current date and time to each system prompt you send.
2738
- You have the option to include just the date, just the time, or both.
1618
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#custom-commands
2739
1619
 
2740
- When enabled, it quietly enhances each system prompt with current time information before sending it to model.
1620
+ ## Experts (inline)
2741
1621
 
2742
- **Options**
1622
+ The plugin allows calling experts in any chat mode. This is the inline Experts (co-op) mode.
2743
1623
 
2744
- - `Append time` *hour*
1624
+ See the `Work modes -> Experts` section for more details.
2745
1625
 
2746
- If enabled, it appends the current time to the system prompt. *Default:* `True`
1626
+ ## Facebook
2747
1627
 
2748
- - `Append date` *date*
1628
+ The plugin integrates with Facebook's Graph API to enable various actions such as managing pages, posts, and media uploads. It uses OAuth2 for authentication and supports automatic token exchange processes.
2749
1629
 
2750
- If enabled, it appends the current date to the system prompt. *Default:* `True`
1630
+ - Retrieving basic information about the authenticated user.
1631
+ - Listing all Facebook pages the user has access to.
1632
+ - Setting a specified Facebook page as the default.
1633
+ - Retrieving a list of posts from a Facebook page.
1634
+ - Creating a new post on a Facebook page.
1635
+ - Deleting a post from a Facebook page.
1636
+ - Uploading a photo to a Facebook page.
2751
1637
 
2752
- - `Template` *tpl*
1638
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#facebook
2753
1639
 
2754
- Template to append to the system prompt. The placeholder `{time}` will be replaced with the
2755
- current date and time in real-time. *Default:* `Current time is {time}.`
1640
+ ## Files I/O
2756
1641
 
2757
- ## System Prompt Extra (append)
1642
+ The plugin allows for file management within the local filesystem. It enables the model to create, read, write and query files located in the `data` directory, which can be found in the user's work directory. With this plugin, the AI can also generate Python code files and thereafter execute that code within the user's system.
2758
1643
 
2759
- The plugin appends additional system prompts (extra data) from a list to every current system prompt.
2760
- You can enhance every system prompt with extra instructions that will be automatically appended to the system prompt.
1644
+ Plugin capabilities include:
2761
1645
 
2762
- **Options**
1646
+ - Sending files as attachments
1647
+ - Reading files
1648
+ - Appending to files
1649
+ - Writing files
1650
+ - Deleting files and directories
1651
+ - Listing files and directories
1652
+ - Creating directories
1653
+ - Downloading files
1654
+ - Copying files and directories
1655
+ - Moving (renaming) files and directories
1656
+ - Reading file info
1657
+ - Indexing files and directories using LlamaIndex
1658
+ - Querying files using LlamaIndex
1659
+ - Searching for files and directories
2763
1660
 
2764
- - `Prompts` *prompts*
1661
+ If a file being created (with the same name) already exists, a prefix including the date and time is added to the file name.
2765
1662
 
2766
- List of extra prompts - prompts that will be appended to system prompt.
2767
- All active extra prompts defined on list will be appended to the system prompt in the order they are listed here.
1663
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#files-i-o
2768
1664
 
1665
+ ## GitHub
2769
1666
 
2770
- ## Voice Control (inline)
1667
+ The plugin provides seamless integration with GitHub, allowing various operations such as repository management, issue tracking, pull requests, and more through GitHub's API. This plugin requires authentication, which can be configured using a Personal Access Token (PAT) or OAuth Device Flow.
2771
1668
 
2772
- The plugin provides voice control command execution within a conversation.
1669
+ - Retrieve details about your GitHub profile.
1670
+ - Get information about a specific GitHub user.
1671
+ - List repositories for a user or organization.
1672
+ - Retrieve details about a specific repository.
1673
+ - Create a new repository.
1674
+ - Delete an existing repository.
1675
+ - Retrieve the contents of a file in a repository.
1676
+ - Upload or update a file in a repository.
1677
+ - Delete a file from a repository.
1678
+ - List issues in a repository.
1679
+ - Create a new issue in a repository.
1680
+ - Add a comment to an existing issue.
1681
+ - Close an existing issue.
1682
+ - List pull requests in a repository.
1683
+ - Create a new pull request.
1684
+ - Merge an existing pull request.
1685
+ - Search for repositories based on a query.
1686
+ - Search for issues based on a query.
1687
+ - Search for code based on a query.
2773
1688
 
2774
- See the ``Accessibility`` section for more details.
1689
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#github
2775
1690
 
2776
1691
  ## Google (Gmail, Drive, Calendar, Contacts, YT, Keep, Docs, Maps, Colab)
2777
1692
 
1693
+ The plugin integrates with various Google services, enabling features such as email management, calendar events, contact handling, and document manipulation through Google APIs.
1694
+
2778
1695
  - **Gmail**
2779
1696
  - Listing recent emails from Gmail.
2780
1697
  - Listing all emails from Gmail.
@@ -2837,18 +1754,70 @@ See the ``Accessibility`` section for more details.
2837
1754
  - Renaming a notebook.
2838
1755
  - Duplicating a notebook.
2839
1756
 
2840
- ## Facebook
1757
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#google-gmail-drive-calendar-contacts-yt-keep-docs-maps-colab
2841
1758
 
2842
- - Retrieving basic information about the authenticated user.
2843
- - Listing all Facebook pages the user has access to.
2844
- - Setting a specified Facebook page as the default.
2845
- - Retrieving a list of posts from a Facebook page.
2846
- - Creating a new post on a Facebook page.
2847
- - Deleting a post from a Facebook page.
2848
- - Uploading a photo to a Facebook page.
1759
+ ## Image Generation (inline)
1760
+
1761
+ The plugin integrates `DALL-E 3` image generation with any chat mode. Simply enable it and request an image in Chat mode, using a standard model such as `GPT-4`. The plugin does not require the `+ Tools` option to be enabled.
1762
+
1763
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#image-generation-inline
1764
+
1765
+ ## Mailer
1766
+
1767
+ Enables the sending, receiving, and reading of emails from the inbox. Currently, only SMTP is supported. More options coming soon.
1768
+
1769
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#mailer
1770
+
1771
+ ## Mouse And Keyboard
1772
+
1773
+ Introduced in version: `2.4.4` (2024-11-09)
1774
+
1775
+ **WARNING: Use this plugin with caution - allowing all options gives the model full control over the mouse and keyboard**
1776
+
1777
+ The plugin allows for controlling the mouse and keyboard by the model. With this plugin, you can send a task to the model, e.g., "open notepad, type something in it" or "open web browser, do search, find something."
1778
+
1779
+ Plugin capabilities include:
1780
+
1781
+ - Get mouse cursor position
1782
+ - Control mouse cursor position
1783
+ - Control mouse clicks
1784
+ - Control mouse scroll
1785
+ - Control the keyboard (pressing keys, typing text)
1786
+ - Making screenshots
1787
+
1788
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#mouse-and-keyboard
1789
+
1790
+ ## Real Time
1791
+
1792
+ This plugin automatically adds the current date and time to each system prompt you send.
1793
+ You have the option to include just the date, just the time, or both.
1794
+
1795
+ When enabled, it quietly enhances each system prompt with current time information before sending it to model.
1796
+
1797
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#real-time
1798
+
1799
+ ## Serial port / USB
1800
+
1801
+ Provides commands for reading and sending data to USB ports.
1802
+
1803
+ **Tip:** in Snap version you must connect the interface first: https://snapcraft.io/docs/serial-port-interface
1804
+
1805
+ You can send commands to, for example, an Arduino or any other controllers using the serial port for communication.
1806
+
1807
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#serial-port-usb
1808
+
1809
+ ## Server (SSH/FTP)
1810
+
1811
+ The Server plugin provides integration for remote server management via SSH, SFTP, and FTP protocols. This plugin allows executing commands, transferring files, and managing directories on remote servers.
1812
+
1813
+ For security reasons, the model will not see any credentials, only the server name and port fields (see the docs)
1814
+
1815
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#server-ssh-ftp
2849
1816
 
2850
1817
  ## Slack
2851
1818
 
1819
+ The Slack plugin integrates with the Slack Web API, enabling interaction with Slack workspaces through the application. This plugin supports OAuth2 for authentication, which allows for seamless integration with Slack services, enabling actions such as posting messages, retrieving users, and managing conversations.
1820
+
2852
1821
  - Retrieving a list of users.
2853
1822
  - Listing all conversations.
2854
1823
  - Accessing conversation history.
@@ -2858,8 +1827,25 @@ See the ``Accessibility`` section for more details.
2858
1827
  - Deleting a chat message.
2859
1828
  - Uploading files to Slack.
2860
1829
 
1830
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#slack
1831
+
1832
+ ## System (OS)
1833
+
1834
+ The plugin provides access to the operating system and executes system commands.
1835
+
1836
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#system-os
1837
+
1838
+ ## System Prompt Extra (append)
1839
+
1840
+ The plugin appends additional system prompts (extra data) from a list to every current system prompt.
1841
+ You can enhance every system prompt with extra instructions that will be automatically appended to the system prompt.
1842
+
1843
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#system-prompt-extra-append
1844
+
2861
1845
  ## Telegram
2862
1846
 
1847
+ The plugin enables integration with Telegram for both bots and user accounts through the ``Bot API`` and the ``Telethon`` library respectively. It allows sending and receiving messages, managing chats, and handling updates.
1848
+
2863
1849
  - Sending text messages to a chat or channel.
2864
1850
  - Sending photos with an optional caption to a chat or channel.
2865
1851
  - Sending documents or files to a chat or channel.
@@ -2870,8 +1856,36 @@ See the ``Accessibility`` section for more details.
2870
1856
  - Listing recent dialogs or chats in user mode.
2871
1857
  - Retrieving recent messages from a specific chat or channel in user mode.
2872
1858
 
1859
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#telegram
1860
+
1861
+ ## Vision (inline)
1862
+
1863
+ The plugin integrates vision capabilities across all chat modes, not just Vision mode. Once enabled, it allows the model to seamlessly switch to vision processing in the background whenever an image attachment or vision capture is detected.
1864
+
1865
+ **Tip:** When using `Vision (inline)` by utilizing a plugin in standard mode, such as `Chat` (not `Vision` mode), the `+ Vision` special checkbox will appear at the bottom of the Chat window. It will be automatically enabled any time you provide content for analysis (like an uploaded photo). When the checkbox is enabled, the vision model is used. If you wish to exit the vision model after image analysis, simply uncheck the checkbox. It will activate again automatically when the next image content for analysis is provided.
1866
+
1867
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#vision-inline
1868
+
1869
+ ## Voice Control (inline)
1870
+
1871
+ The plugin provides voice control command execution within a conversation.
1872
+
1873
+ See the ``Accessibility`` section for more details.
1874
+
1875
+ ## Web Search
1876
+
1877
+ **PyGPT** lets you connect model to the internet and carry out web searches in real time as you make queries.
1878
+
1879
+ To activate this feature, turn on the `Web Search` plugin found in the `Plugins` menu.
1880
+
1881
+ Web searches are provided by `Google Custom Search Engine` and `Microsoft Bing` APIs and can be extended with other search engine providers.
1882
+
1883
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#web-search
1884
+
2873
1885
  ## X/Twitter
2874
1886
 
1887
+ The X/Twitter plugin integrates with the X platform, allowing for comprehensive interactions such as tweeting, retweeting, liking, media uploads, and more. This plugin requires OAuth2 authentication and offers various configuration options to manage API interactions effectively.
1888
+
2875
1889
  - Retrieve user details by providing their username.
2876
1890
  - Fetch user information using their unique ID.
2877
1891
  - Access recent tweets from a specific user.
@@ -2891,50 +1905,7 @@ See the ``Accessibility`` section for more details.
2891
1905
  - Upload media files such as images or videos for tweeting.
2892
1906
  - Set alternative text for uploaded media for accessibility.
2893
1907
 
2894
- ## GitHub
2895
-
2896
- - Retrieve details about your GitHub profile.
2897
- - Get information about a specific GitHub user.
2898
- - List repositories for a user or organization.
2899
- - Retrieve details about a specific repository.
2900
- - Create a new repository.
2901
- - Delete an existing repository.
2902
- - Retrieve the contents of a file in a repository.
2903
- - Upload or update a file in a repository.
2904
- - Delete a file from a repository.
2905
- - List issues in a repository.
2906
- - Create a new issue in a repository.
2907
- - Add a comment to an existing issue.
2908
- - Close an existing issue.
2909
- - List pull requests in a repository.
2910
- - Create a new pull request.
2911
- - Merge an existing pull request.
2912
- - Search for repositories based on a query.
2913
- - Search for issues based on a query.
2914
- - Search for code based on a query.
2915
-
2916
-
2917
- ## Bitbucket
2918
-
2919
- - Retrieve details about the authenticated user.
2920
- - Get information about a specific user.
2921
- - List available workspaces.
2922
- - List repositories in a workspace.
2923
- - Get details about a specific repository.
2924
- - Create a new repository.
2925
- - Delete an existing repository.
2926
- - Retrieve contents of a file in a repository.
2927
- - Upload a file to a repository.
2928
- - Delete a file from a repository.
2929
- - List issues in a repository.
2930
- - Create a new issue.
2931
- - Comment on an existing issue.
2932
- - Update details of an issue.
2933
- - List pull requests in a repository.
2934
- - Create a new pull request.
2935
- - Merge an existing pull request.
2936
- - Search for repositories.
2937
-
1908
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#x-twitter
2938
1909
 
2939
1910
  # Creating Your Own Plugins
2940
1911
 
@@ -4567,6 +3538,11 @@ may consume additional tokens that are not displayed in the main window.
4567
3538
 
4568
3539
  ## Recent changes:
4569
3540
 
3541
+ **2.6.20 (2025-08-22)**
3542
+
3543
+ - Added a new plugin: Server (FTP/SSH) - connect to remote servers using FTP, SFTP, and SSH. Execute remote commands, upload, download, and more (beta).
3544
+ - Added support for Wayland in Snap/compiled versions.
3545
+
4570
3546
  **2.6.19 (2025-08-22)**
4571
3547
 
4572
3548
  - Fixed: added prevention for summarizing an empty context.