pygpt-net 2.5.19__py3-none-any.whl → 2.5.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.
Files changed (62) hide show
  1. pygpt_net/CHANGELOG.txt +8 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/app.py +8 -4
  4. pygpt_net/container.py +3 -3
  5. pygpt_net/controller/chat/command.py +4 -4
  6. pygpt_net/controller/chat/input.py +2 -2
  7. pygpt_net/controller/chat/stream.py +6 -2
  8. pygpt_net/controller/config/placeholder.py +28 -14
  9. pygpt_net/controller/lang/custom.py +2 -2
  10. pygpt_net/controller/mode/__init__.py +22 -1
  11. pygpt_net/controller/model/__init__.py +2 -2
  12. pygpt_net/controller/model/editor.py +6 -63
  13. pygpt_net/controller/model/importer.py +9 -7
  14. pygpt_net/controller/presets/editor.py +8 -8
  15. pygpt_net/core/agents/legacy.py +2 -2
  16. pygpt_net/core/bridge/__init__.py +5 -4
  17. pygpt_net/core/bridge/worker.py +5 -2
  18. pygpt_net/core/command/__init__.py +10 -8
  19. pygpt_net/core/debug/presets.py +2 -2
  20. pygpt_net/core/experts/__init__.py +2 -2
  21. pygpt_net/core/idx/chat.py +7 -20
  22. pygpt_net/core/idx/llm.py +27 -28
  23. pygpt_net/core/llm/__init__.py +25 -3
  24. pygpt_net/core/models/__init__.py +83 -9
  25. pygpt_net/core/modes/__init__.py +2 -2
  26. pygpt_net/core/presets/__init__.py +3 -3
  27. pygpt_net/core/prompt/__init__.py +5 -5
  28. pygpt_net/core/tokens/__init__.py +3 -3
  29. pygpt_net/core/updater/__init__.py +5 -3
  30. pygpt_net/data/config/config.json +5 -3
  31. pygpt_net/data/config/models.json +1302 -3088
  32. pygpt_net/data/config/modes.json +1 -7
  33. pygpt_net/data/config/settings.json +60 -0
  34. pygpt_net/data/locale/locale.en.ini +10 -2
  35. pygpt_net/item/model.py +49 -34
  36. pygpt_net/plugin/base/plugin.py +6 -5
  37. pygpt_net/provider/core/config/patch.py +12 -1
  38. pygpt_net/provider/core/model/json_file.py +7 -7
  39. pygpt_net/provider/core/model/patch.py +56 -7
  40. pygpt_net/provider/core/preset/json_file.py +4 -4
  41. pygpt_net/provider/gpt/__init__.py +9 -17
  42. pygpt_net/provider/gpt/chat.py +90 -20
  43. pygpt_net/provider/gpt/responses.py +58 -21
  44. pygpt_net/provider/llms/anthropic.py +2 -1
  45. pygpt_net/provider/llms/azure_openai.py +11 -7
  46. pygpt_net/provider/llms/base.py +3 -2
  47. pygpt_net/provider/llms/deepseek_api.py +3 -1
  48. pygpt_net/provider/llms/google.py +2 -1
  49. pygpt_net/provider/llms/hugging_face.py +8 -5
  50. pygpt_net/provider/llms/hugging_face_api.py +3 -1
  51. pygpt_net/provider/llms/local.py +2 -1
  52. pygpt_net/provider/llms/ollama.py +8 -6
  53. pygpt_net/provider/llms/openai.py +11 -7
  54. pygpt_net/provider/llms/perplexity.py +109 -0
  55. pygpt_net/provider/llms/x_ai.py +108 -0
  56. pygpt_net/ui/dialog/about.py +5 -5
  57. pygpt_net/ui/dialog/preset.py +5 -5
  58. {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/METADATA +52 -176
  59. {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/RECORD +62 -60
  60. {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/LICENSE +0 -0
  61. {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/WHEEL +0 -0
  62. {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,109 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # ================================================== #
4
+ # This file is a part of PYGPT package #
5
+ # Website: https://pygpt.net #
6
+ # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
+ # MIT License #
8
+ # Created By : Marcin Szczygliński #
9
+ # Updated Date: 2025.06.28 16:00:00 #
10
+ # ================================================== #
11
+
12
+ from typing import Optional, List, Dict
13
+
14
+ from llama_index.core.llms.llm import BaseLLM as LlamaBaseLLM
15
+ from llama_index.core.multi_modal_llms import MultiModalLLM as LlamaMultiModalLLM
16
+ from llama_index.core.base.embeddings.base import BaseEmbedding
17
+
18
+ from pygpt_net.core.types import (
19
+ MODE_CHAT,
20
+ MODE_RESEARCH,
21
+ )
22
+ from pygpt_net.provider.llms.base import BaseLLM
23
+ from pygpt_net.item.model import ModelItem
24
+
25
+
26
+ class PerplexityLLM(BaseLLM):
27
+ def __init__(self, *args, **kwargs):
28
+ super(PerplexityLLM, self).__init__(*args, **kwargs)
29
+ self.id = "perplexity"
30
+ self.name = "Perplexity"
31
+ self.type = [MODE_CHAT, MODE_RESEARCH]
32
+
33
+ def completion(
34
+ self,
35
+ window,
36
+ model: ModelItem,
37
+ stream: bool = False
38
+ ):
39
+ """
40
+ Return LLM provider instance for completion
41
+
42
+ :param window: window instance
43
+ :param model: model instance
44
+ :param stream: stream mode
45
+ :return: LLM provider instance
46
+ """
47
+ pass
48
+
49
+ def chat(
50
+ self,
51
+ window,
52
+ model: ModelItem,
53
+ stream: bool = False
54
+ ):
55
+ """
56
+ Return LLM provider instance for chat
57
+
58
+ :param window: window instance
59
+ :param model: model instance
60
+ :param stream: stream mode
61
+ :return: LLM provider instance
62
+ """
63
+ pass
64
+
65
+ def llama(
66
+ self,
67
+ window,
68
+ model: ModelItem,
69
+ stream: bool = False
70
+ ) -> LlamaBaseLLM:
71
+ """
72
+ Return LLM provider instance for llama
73
+
74
+ :param window: window instance
75
+ :param model: model instance
76
+ :param stream: stream mode
77
+ :return: LLM provider instance
78
+ """
79
+ pass
80
+
81
+ def llama_multimodal(
82
+ self,
83
+ window,
84
+ model: ModelItem,
85
+ stream: bool = False
86
+ ) -> LlamaMultiModalLLM:
87
+ """
88
+ Return multimodal LLM provider instance for llama
89
+
90
+ :param window: window instance
91
+ :param model: model instance
92
+ :param stream: stream mode
93
+ :return: LLM provider instance
94
+ """
95
+ pass
96
+
97
+ def get_embeddings_model(
98
+ self,
99
+ window,
100
+ config: Optional[List[Dict]] = None
101
+ ) -> BaseEmbedding:
102
+ """
103
+ Return provider instance for embeddings
104
+
105
+ :param window: window instance
106
+ :param config: config keyword arguments list
107
+ :return: Embedding provider instance
108
+ """
109
+ pass
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # ================================================== #
4
+ # This file is a part of PYGPT package #
5
+ # Website: https://pygpt.net #
6
+ # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
+ # MIT License #
8
+ # Created By : Marcin Szczygliński #
9
+ # Updated Date: 2025.06.28 16:00:00 #
10
+ # ================================================== #
11
+
12
+ from typing import Optional, List, Dict
13
+
14
+ from llama_index.core.llms.llm import BaseLLM as LlamaBaseLLM
15
+ from llama_index.core.multi_modal_llms import MultiModalLLM as LlamaMultiModalLLM
16
+ from llama_index.core.base.embeddings.base import BaseEmbedding
17
+
18
+ from pygpt_net.core.types import (
19
+ MODE_CHAT,
20
+ )
21
+ from pygpt_net.provider.llms.base import BaseLLM
22
+ from pygpt_net.item.model import ModelItem
23
+
24
+
25
+ class xAILLM(BaseLLM):
26
+ def __init__(self, *args, **kwargs):
27
+ super(xAILLM, self).__init__(*args, **kwargs)
28
+ self.id = "x_ai"
29
+ self.name = "xAI"
30
+ self.type = [MODE_CHAT]
31
+
32
+ def completion(
33
+ self,
34
+ window,
35
+ model: ModelItem,
36
+ stream: bool = False
37
+ ):
38
+ """
39
+ Return LLM provider instance for completion
40
+
41
+ :param window: window instance
42
+ :param model: model instance
43
+ :param stream: stream mode
44
+ :return: LLM provider instance
45
+ """
46
+ pass
47
+
48
+ def chat(
49
+ self,
50
+ window,
51
+ model: ModelItem,
52
+ stream: bool = False
53
+ ):
54
+ """
55
+ Return LLM provider instance for chat
56
+
57
+ :param window: window instance
58
+ :param model: model instance
59
+ :param stream: stream mode
60
+ :return: LLM provider instance
61
+ """
62
+ pass
63
+
64
+ def llama(
65
+ self,
66
+ window,
67
+ model: ModelItem,
68
+ stream: bool = False
69
+ ) -> LlamaBaseLLM:
70
+ """
71
+ Return LLM provider instance for llama
72
+
73
+ :param window: window instance
74
+ :param model: model instance
75
+ :param stream: stream mode
76
+ :return: LLM provider instance
77
+ """
78
+ pass
79
+
80
+ def llama_multimodal(
81
+ self,
82
+ window,
83
+ model: ModelItem,
84
+ stream: bool = False
85
+ ) -> LlamaMultiModalLLM:
86
+ """
87
+ Return multimodal LLM provider instance for llama
88
+
89
+ :param window: window instance
90
+ :param model: model instance
91
+ :param stream: stream mode
92
+ :return: LLM provider instance
93
+ """
94
+ pass
95
+
96
+ def get_embeddings_model(
97
+ self,
98
+ window,
99
+ config: Optional[List[Dict]] = None
100
+ ) -> BaseEmbedding:
101
+ """
102
+ Return provider instance for embeddings
103
+
104
+ :param window: window instance
105
+ :param config: config keyword arguments list
106
+ :return: Embedding provider instance
107
+ """
108
+ pass
@@ -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.17 03:00:00 #
9
+ # Updated Date: 2025.06.28 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import os
@@ -49,19 +49,19 @@ class About:
49
49
 
50
50
  try:
51
51
  from llama_index.core import __version__ as llama_index_version
52
- from langchain import __version__ as langchain_version
52
+ # from langchain import __version__ as langchain_version
53
53
  from openai.version import VERSION as openai_version
54
54
  except ImportError:
55
55
  pass
56
56
 
57
57
  lib_versions = ""
58
- if llama_index_version is None or langchain_version is None or openai_version is None:
58
+ if llama_index_version is None or openai_version is None:
59
59
  versions = False
60
60
 
61
61
  if versions:
62
- lib_versions = "OpenAI API: {}, LangChain: {}, LlamaIndex: {}\n\n".format(
62
+ lib_versions = "OpenAI API: {}, LlamaIndex: {}\n\n".format(
63
63
  openai_version,
64
- langchain_version,
64
+ # langchain_version,
65
65
  llama_index_version,
66
66
  )
67
67
 
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.03.02 19:00:00 #
9
+ # Updated Date: 2025.06.28 16:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtCore import Qt
@@ -103,16 +103,16 @@ class Preset(BaseConfigDialog):
103
103
  # modes
104
104
  mode_keys = [
105
105
  MODE_CHAT,
106
- MODE_LLAMA_INDEX,
107
- MODE_AUDIO,
106
+ MODE_LLAMA_INDEX,
107
+ MODE_AUDIO,
108
+ MODE_RESEARCH,
108
109
  MODE_COMPLETION,
109
110
  MODE_IMAGE,
110
111
  MODE_VISION,
111
- MODE_LANGCHAIN,
112
+ # MODE_LANGCHAIN,
112
113
  MODE_AGENT_LLAMA,
113
114
  MODE_AGENT,
114
115
  MODE_EXPERT,
115
- MODE_RESEARCH,
116
116
  ]
117
117
  rows_mode = QVBoxLayout()
118
118
  rows_mode.addStretch()
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.5.19
4
- Summary: Desktop AI Assistant powered by models: OpenAI o1, GPT-4o, GPT-4, GPT-4 Vision, GPT-3.5, DALL-E 3, Llama 3, Mistral, Gemini, Claude, DeepSeek, Bielik, and other models supported by Langchain, Llama Index, and Ollama. Features include chatbot, text completion, image generation, vision analysis, speech-to-text, internet access, file handling, command execution and more.
3
+ Version: 2.5.20
4
+ Summary: Desktop AI Assistant powered by models: OpenAI o1, o3, GPT-4o, GPT-4 Vision, DALL-E 3, Llama 3, Mistral, Gemini, Claude, DeepSeek, Bielik, and other models supported by Llama Index, and Ollama. Features include chatbot, text completion, image generation, vision analysis, speech-to-text, internet access, file handling, command execution and more.
5
5
  License: MIT
6
6
  Keywords: py_gpt,py-gpt,pygpt,desktop,app,o1,gpt,gpt4,gpt-4o,gpt-4v,gpt3.5,gpt-4,gpt-4-vision,gpt-3.5,llama3,mistral,gemini,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
7
7
  Author: Marcin Szczyglinski
@@ -35,13 +35,9 @@ Requires-Dist: httpx (>=0.27.2,<0.28.0)
35
35
  Requires-Dist: httpx-socks (>=0.9.2,<0.10.0)
36
36
  Requires-Dist: ipykernel (>=6.29.5,<7.0.0)
37
37
  Requires-Dist: jupyter_client (>=8.6.3,<9.0.0)
38
- Requires-Dist: langchain (>=0.2.17,<0.3.0)
39
- Requires-Dist: langchain-community (>=0.2.19,<0.3.0)
40
- Requires-Dist: langchain-experimental (>=0.0.64,<0.0.65)
41
- Requires-Dist: langchain-openai (>=0.1.25,<0.2.0)
42
- Requires-Dist: llama-index (>=0.12.22,<0.13.0)
38
+ Requires-Dist: llama-index (>=0.12.44,<0.13.0)
43
39
  Requires-Dist: llama-index-agent-openai (>=0.4.8,<0.5.0)
44
- Requires-Dist: llama-index-core (==0.12.22)
40
+ Requires-Dist: llama-index-core (==0.12.44)
45
41
  Requires-Dist: llama-index-embeddings-azure-openai (>=0.3.8,<0.4.0)
46
42
  Requires-Dist: llama-index-embeddings-gemini (>=0.3.2,<0.4.0)
47
43
  Requires-Dist: llama-index-embeddings-huggingface-api (>=0.3.1,<0.4.0)
@@ -50,12 +46,12 @@ Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
50
46
  Requires-Dist: llama-index-llms-anthropic (>=0.6.12,<0.7.0)
51
47
  Requires-Dist: llama-index-llms-azure-openai (>=0.3.2,<0.4.0)
52
48
  Requires-Dist: llama-index-llms-deepseek (>=0.1.1,<0.2.0)
53
- Requires-Dist: llama-index-llms-gemini (>=0.4.14,<0.5.0)
49
+ Requires-Dist: llama-index-llms-gemini (>=0.5.0,<0.6.0)
54
50
  Requires-Dist: llama-index-llms-huggingface-api (>=0.3.1,<0.4.0)
55
- Requires-Dist: llama-index-llms-ollama (>=0.5.6,<0.6.0)
56
- Requires-Dist: llama-index-llms-openai (>=0.3.28,<0.4.0)
57
- Requires-Dist: llama-index-llms-openai-like (>=0.3.4,<0.4.0)
58
- Requires-Dist: llama-index-multi-modal-llms-openai (>=0.4.3,<0.5.0)
51
+ Requires-Dist: llama-index-llms-ollama (>=0.6.2,<0.7.0)
52
+ Requires-Dist: llama-index-llms-openai (>=0.4.7,<0.5.0)
53
+ Requires-Dist: llama-index-llms-openai-like (>=0.4.0,<0.5.0)
54
+ Requires-Dist: llama-index-multi-modal-llms-openai (>=0.5.1,<0.6.0)
59
55
  Requires-Dist: llama-index-readers-chatgpt-plugin (>=0.3.0,<0.4.0)
60
56
  Requires-Dist: llama-index-readers-database (>=0.3.0,<0.4.0)
61
57
  Requires-Dist: llama-index-readers-file (>=0.4.9,<0.5.0)
@@ -100,7 +96,7 @@ Description-Content-Type: text/markdown
100
96
 
101
97
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
102
98
 
103
- Release: **2.5.19** | build: **2025-06-27** | Python: **>=3.10, <3.13**
99
+ Release: **2.5.20** | build: **2025-06-28** | Python: **>=3.10, <3.13**
104
100
 
105
101
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
106
102
  >
@@ -112,7 +108,7 @@ Release: **2.5.19** | build: **2025-06-27** | Python: **>=3.10, <3.13**
112
108
 
113
109
  ## Overview
114
110
 
115
- **PyGPT** is **all-in-one** Desktop AI Assistant that provides direct interaction with OpenAI language models, including `o1`, `gpt-4o`, `gpt-4`, `gpt-4 Vision`, and `gpt-3.5`, through the `OpenAI API`. By utilizing `LangChain` and `LlamaIndex`, the application also supports alternative LLMs, like those available on `HuggingFace`, locally available models (like `Llama 3`,`Mistral`, `DeepSeek V3/R1` or `Bielik`), `Google Gemini` and `Anthropic Claude`.
111
+ **PyGPT** is **all-in-one** Desktop AI Assistant that provides direct interaction with OpenAI language models, including `o1`, `gpt-4o`, `gpt-4`, `gpt-4 Vision`, and `gpt-3.5`, through the `OpenAI API`. By utilizing `LlamaIndex`, the application also supports alternative LLMs, like those available on `HuggingFace`, locally available models (like `Llama 3`,`Mistral`, `DeepSeek V3/R1` or `Bielik`), `Google Gemini` and `Anthropic Claude`.
116
112
 
117
113
  This assistant offers multiple modes of operation such as chat, assistants, completions, and image-related tasks using `DALL-E 3` for generation and `gpt-4 Vision` for image analysis. **PyGPT** has filesystem capabilities for file I/O, can generate and run Python code, execute system commands, execute custom commands and manage file transfers. It also allows models to perform web searches with the `Google` and `Microsoft Bing`.
118
114
 
@@ -120,7 +116,7 @@ For audio interactions, **PyGPT** includes speech synthesis using the `Microsoft
120
116
 
121
117
  **PyGPT**'s functionality extends through plugin support, allowing for custom enhancements. Its multi-modal capabilities make it an adaptable tool for a range of AI-assisted operations, such as text-based interactions, system automation, daily assisting, vision applications, natural language processing, code generation and image creation.
122
118
 
123
- Multiple operation modes are included, such as chat, text completion, assistant, vision, LangChain, Chat with Files (via `LlamaIndex`), commands execution, external API calls and image generation, making **PyGPT** a multi-tool for many AI-driven tasks.
119
+ Multiple operation modes are included, such as chat, text completion, assistant, vision, Chat with Files (via `LlamaIndex`), commands execution, external API calls and image generation, making **PyGPT** a multi-tool for many AI-driven tasks.
124
120
 
125
121
  **Video** (mp4, version `2.4.35`, build `2024-11-28`):
126
122
 
@@ -136,8 +132,8 @@ You can download compiled 64-bit versions for Windows and Linux here: https://py
136
132
 
137
133
  - Desktop AI Assistant for `Linux`, `Windows` and `Mac`, written in Python.
138
134
  - Works similarly to `ChatGPT`, but locally (on a desktop computer).
139
- - 12 modes of operation: Chat, Vision, Completion, Assistant, Image generation, LangChain, Chat with Files, Chat with Audio, Research (Perplexity), Experts, Autonomous Mode and Agents.
140
- - Supports multiple models: `o1`, `GPT-4o`, `GPT-4`, `GPT-3.5`, and any model accessible through `LangChain`, `LlamaIndex` and `Ollama` such as `Llama 3`, `Mistral`, `Google Gemini`, `Anthropic Claude`, `DeepSeek V3/R1`, `Bielik`, etc.
135
+ - 11 modes of operation: Chat, Vision, Completion, Assistant, Image generation, Chat with Files, Chat with Audio, Research (Perplexity), Experts, Autonomous Mode and Agents.
136
+ - Supports multiple models: `o1`, `GPT-4o`, `GPT-4`, `GPT-3.5`, and any model accessible through `LlamaIndex` and `Ollama` such as `Llama 3`, `Mistral`, `Google Gemini`, `Anthropic Claude`, `DeepSeek V3/R1`, `Bielik`, etc.
141
137
  - Chat with your own Files: integrated `LlamaIndex` support: chat with data such as: `txt`, `pdf`, `csv`, `html`, `md`, `docx`, `json`, `epub`, `xlsx`, `xml`, webpages, `Google`, `GitHub`, video/audio, images and other data types, or use conversation history as additional context provided to the model.
142
138
  - Built-in vector databases support and automated files and data embedding.
143
139
  - Included support features for individuals with disabilities: customizable keyboard shortcuts, voice control, and translation of on-screen actions into audio via speech synthesis.
@@ -147,7 +143,6 @@ You can download compiled 64-bit versions for Windows and Linux here: https://py
147
143
  - Speech recognition via `OpenAI Whisper`, `Google` and `Microsoft Speech Recognition`.
148
144
  - Real-time video camera capture in Vision mode.
149
145
  - Image analysis via `GPT-4 Vision` and `GPT-4o`.
150
- - Integrated `LangChain` support (you can connect to any LLM, e.g., on `HuggingFace`).
151
146
  - Integrated calendar, day notes and search in contexts by selected date.
152
147
  - Tools and commands execution (via plugins: access to the local filesystem, Python Code Interpreter, system commands execution, and more).
153
148
  - Custom commands creation and execution.
@@ -177,7 +172,7 @@ Full Python source code is available on `GitHub`.
177
172
  **PyGPT uses the user's API key - to use the GPT models,
178
173
  you must have a registered OpenAI account and your own API key. Local models do not require any API keys.**
179
174
 
180
- You can also use built-it LangChain support to connect to other Large Language Models (LLMs),
175
+ You can also use built-it LlamaIndex support to connect to other Large Language Models (LLMs),
181
176
  such as those on HuggingFace. Additional API keys may be required.
182
177
 
183
178
  # Installation
@@ -622,28 +617,6 @@ The vector database in use will be displayed in the list of uploaded files, on t
622
617
 
623
618
  ![v2_assistant_stores_upload](https://github.com/szczyglis-dev/py-gpt/assets/61396542/8f13c2eb-f961-4eae-b08b-0b4937f06ca9)
624
619
 
625
- ## LangChain
626
-
627
- This mode enables you to work with models that are supported by `LangChain`. The LangChain support is integrated
628
- into the application, allowing you to interact with any LLM by simply supplying a configuration
629
- file for the specific model. You can add as many models as you like; just list them in the configuration
630
- file named `models.json`.
631
-
632
- Available LLMs providers supported by **PyGPT**, in `LangChain` and `Chat with Files (LlamaIndex)` modes:
633
-
634
- ```
635
- - OpenAI
636
- - Azure OpenAI
637
- - Google (Gemini, etc.)
638
- - HuggingFace
639
- - Anthropic
640
- - Ollama (Llama3, Mistral, etc.)
641
- ```
642
-
643
- You have the ability to add custom model wrappers for models that are not available by default in **PyGPT**.
644
- To integrate a new model, you can create your own wrapper and register it with the application.
645
- Detailed instructions for this process are provided in the section titled `Managing models / Adding models via LangChain`.
646
-
647
620
  ## Chat with Files (LlamaIndex)
648
621
 
649
622
  This mode enables chat interaction with your documents and entire context history through conversation.
@@ -973,7 +946,7 @@ To allow the model to manage files or python code execution, the `+ Tools` optio
973
946
 
974
947
  ## What is preset?
975
948
 
976
- Presets in **PyGPT** are essentially templates used to store and quickly apply different configurations. Each preset includes settings for the mode you want to use (such as chat, completion, or image generation), an initial system prompt, an assigned name for the AI, a username for the session, and the desired "temperature" for the conversation. A warmer "temperature" setting allows the AI to provide more creative responses, while a cooler setting encourages more predictable replies. These presets can be used across various modes and with models accessed via the `OpenAI API` or `LangChain`.
949
+ Presets in **PyGPT** are essentially templates used to store and quickly apply different configurations. Each preset includes settings for the mode you want to use (such as chat, completion, or image generation), an initial system prompt, an assigned name for the AI, a username for the session, and the desired "temperature" for the conversation. A warmer "temperature" setting allows the AI to provide more creative responses, while a cooler setting encourages more predictable replies. These presets can be used across various modes and with models accessed via the `OpenAI API` or `LlamaIndex`.
977
950
 
978
951
  The application lets you create as many presets as needed and easily switch among them. Additionally, you can clone an existing preset, which is useful for creating variations based on previously set configurations and experimentation.
979
952
 
@@ -1079,7 +1052,7 @@ PyGPT has built-in support for models (as of 2025-06-27):
1079
1052
 
1080
1053
  All models are specified in the configuration file `models.json`, which you can customize.
1081
1054
  This file is located in your working directory. You can add new models provided directly by `OpenAI API`
1082
- and those supported by `LlamaIndex` or `LangChain` to this file. Configuration for LangChain wrapper is placed in `langchain` key, configuration for LlamaIndex in `llama_index` key.
1055
+ and those supported by `LlamaIndex` to this file. Configuration for LlamaIndex is placed in `llama_index` key.
1083
1056
 
1084
1057
  ## Adding a custom model
1085
1058
 
@@ -1087,13 +1060,16 @@ You can add your own models. See the section `Extending PyGPT / Adding a new mod
1087
1060
 
1088
1061
  There is built-in support for those LLM providers:
1089
1062
 
1090
- - OpenAI (openai)
1063
+ - Anthropic (anthropic)
1091
1064
  - Azure OpenAI (azure_openai)
1065
+ - Deepseek API (deepseek_api)
1092
1066
  - Google (google)
1093
1067
  - HuggingFace (huggingface)
1094
- - Anthropic (anthropic)
1068
+ - Local models (OpenAI API compatible)
1095
1069
  - Ollama (ollama)
1096
- - Deepseek API (deepseek_api)
1070
+ - OpenAI (openai)
1071
+ - Perplexity (perplexity)
1072
+ - xAI (x_ai)
1097
1073
 
1098
1074
  ## How to use local or non-GPT models
1099
1075
 
@@ -1531,7 +1507,7 @@ If enabled, plugin will stop after goal is reached." *Default:* `True`
1531
1507
 
1532
1508
  - `Reverse roles between iterations` *reverse_roles*
1533
1509
 
1534
- Only for Completion/LangChain modes.
1510
+ Only for Completion modes.
1535
1511
  If enabled, this option reverses the roles (AI <> user) with each iteration. For example,
1536
1512
  if in the previous iteration the response was generated for "Batman," the next iteration will use that
1537
1513
  response to generate an input for "Joker." *Default:* `True`
@@ -3013,6 +2989,10 @@ Config -> Settings...
3013
2989
 
3014
2990
  - `Model used for auto-summary`: Model used for context auto-summary (default: *gpt-3.5-turbo-1106*).
3015
2991
 
2992
+ **Remote tools**
2993
+
2994
+ Enable/disable remote tools, like Web Search or Image generation to use in OpenAI Responses API (OpenAI models and Chat mode only).
2995
+
3016
2996
  **Models**
3017
2997
 
3018
2998
  - `Max Output Tokens`: Sets the maximum number of tokens the model can generate for a single response.
@@ -3609,7 +3589,7 @@ PyGPT can be extended with:
3609
3589
 
3610
3590
  **Examples (tutorial files)**
3611
3591
 
3612
- See the `examples` directory in this repository with examples of custom launcher, plugin, vector store, LLM (LangChain and LlamaIndex) provider and data loader:
3592
+ See the `examples` directory in this repository with examples of custom launcher, plugin, vector store, LLM (LlamaIndex) provider and data loader:
3613
3593
 
3614
3594
  - `examples/custom_launcher.py`
3615
3595
 
@@ -3665,7 +3645,7 @@ To register custom web providers:
3665
3645
 
3666
3646
  ## Adding a custom model
3667
3647
 
3668
- To add a new model using the OpenAI API, LangChain, or LlamaIndex wrapper, use the editor in `Config -> Models` or manually edit the `models.json` file by inserting the model's configuration details. If you are adding a model via LangChain or LlamaIndex, ensure to include the model's name, its supported modes (either `chat`, `completion`, or both), the LLM provider (such as `OpenAI` or `HuggingFace`), and, if you are using an external API-based model, an optional `API KEY` along with any other necessary environment settings.
3648
+ To add a new model using the OpenAI API or LlamaIndex wrapper, use the editor in `Config -> Models` or manually edit the `models.json` file by inserting the model's configuration details. If you are adding a model via LlamaIndex, ensure to include the model's name, its supported modes (either `chat`, `completion`, or both), the LLM provider (such as `OpenAI` or `HuggingFace`), and, if you are using an external API-based model, an optional `API KEY` along with any other necessary environment settings.
3669
3649
 
3670
3650
  Example of models configuration - `%WORKDIR%/models.json`:
3671
3651
 
@@ -3679,30 +3659,8 @@ Example of models configuration - `%WORKDIR%/models.json`:
3679
3659
  "langchain",
3680
3660
  "llama_index"
3681
3661
  ],
3682
- "langchain": {
3683
- "provider": "openai",
3684
- "mode": [
3685
- "chat"
3686
- ],
3687
- "args": [
3688
- {
3689
- "name": "model_name",
3690
- "value": "gpt-3.5-turbo",
3691
- "type": "str"
3692
- }
3693
- ],
3694
- "env": [
3695
- {
3696
- "name": "OPENAI_API_KEY",
3697
- "value": "{api_key}"
3698
- }
3699
- ]
3700
- },
3662
+ "provider": "openai"
3701
3663
  "llama_index": {
3702
- "provider": "openai",
3703
- "mode": [
3704
- "chat"
3705
- ],
3706
3664
  "args": [
3707
3665
  {
3708
3666
  "name": "model",
@@ -3725,14 +3683,16 @@ Example of models configuration - `%WORKDIR%/models.json`:
3725
3683
 
3726
3684
  There is built-in support for those LLM providers:
3727
3685
 
3728
- ```
3729
- - `OpenAI` (openai)
3730
- - `Azure OpenAI` (azure_openai)
3731
- - `Google` (google)
3732
- - `HuggingFace API` (huggingface_api)
3733
- - `Anthropic` (anthropic)
3734
- - `Ollama` (ollama)
3735
- ```
3686
+ - Anthropic (anthropic)
3687
+ - Azure OpenAI (azure_openai)
3688
+ - Deepseek API (deepseek_api)
3689
+ - Google (google)
3690
+ - HuggingFace (huggingface)
3691
+ - Local models (OpenAI API compatible)
3692
+ - Ollama (ollama)
3693
+ - OpenAI (openai)
3694
+ - Perplexity (perplexity)
3695
+ - xAI (x_ai)
3736
3696
 
3737
3697
  **Tip**: `{api_key}` in `models.json` is a placeholder for the main OpenAI API KEY from the settings. It will be replaced by the configured key value.
3738
3698
 
@@ -3911,7 +3871,7 @@ Events flow can be debugged by enabling the option `Config -> Settings -> Develo
3911
3871
 
3912
3872
  ## Adding a custom LLM provider
3913
3873
 
3914
- Handling LLMs with LangChain and LlamaIndex is implemented through separated wrappers. This allows for the addition of support for any provider and model available via LangChain or LlamaIndex. All built-in wrappers for the models and its providers are placed in the `pygpt_net.provider.llms`.
3874
+ Handling LLMs with LlamaIndex is implemented through separated wrappers. This allows for the addition of support for any provider and model available via LlamaIndex. All built-in wrappers for the models and its providers are placed in the `pygpt_net.provider.llms`.
3915
3875
 
3916
3876
  These wrappers are loaded into the application during startup using `launcher.add_llm()` method:
3917
3877
 
@@ -3985,7 +3945,7 @@ run(
3985
3945
 
3986
3946
  **Examples (tutorial files)**
3987
3947
 
3988
- See the `examples` directory in this repository with examples of custom launcher, plugin, vector store, LLM (LangChain and LlamaIndex) provider and data loader:
3948
+ See the `examples` directory in this repository with examples of custom launcher, plugin, vector store, LLM provider and data loader:
3989
3949
 
3990
3950
  - `examples/custom_launcher.py`
3991
3951
 
@@ -4007,7 +3967,7 @@ These example files can be used as a starting point for creating your own extens
4007
3967
 
4008
3968
  To integrate your own model or provider into **PyGPT**, you can also reference the classes located in the `pygpt_net.provider.llms`. These samples can act as an more complex example for your custom class. Ensure that your custom wrapper class includes two essential methods: `chat` and `completion`. These methods should return the respective objects required for the model to operate in `chat` and `completion` modes.
4009
3969
 
4010
- Every single LLM provider (wrapper) inherits from `BaseLLM` class and can provide 3 components: provider for LangChain, provider for LlamaIndex, and provider for Embeddings.
3970
+ Every single LLM provider (wrapper) inherits from `BaseLLM` class and can provide 2 components: provider for LlamaIndex, and provider for Embeddings.
4011
3971
 
4012
3972
 
4013
3973
  ## Adding a custom vector store provider
@@ -4130,6 +4090,14 @@ may consume additional tokens that are not displayed in the main window.
4130
4090
 
4131
4091
  ## Recent changes:
4132
4092
 
4093
+ **2.5.20 (2025-06-28)**
4094
+
4095
+ - LlamaIndex upgraded to 0.12.44.
4096
+ - Langchain removed from the list of modes and dependencies.
4097
+ - Improved tools execution.
4098
+ - Simplified model configuration.
4099
+ - Added endpoint configuration for non-OpenAI APIs.
4100
+
4133
4101
  **2.5.19 (2025-06-27)**
4134
4102
 
4135
4103
  - Added option to enable/disable `Responses API` in `Config -> Settings -> API Keys -> OpenAI`.
@@ -4159,98 +4127,6 @@ may consume additional tokens that are not displayed in the main window.
4159
4127
  - Fixed Ollama provider in the newest LlamaIndex.
4160
4128
  - Added the ability to set a custom base URL for Ollama -> ENV: OLLAMA_API_BASE.
4161
4129
 
4162
- **2.5.14 (2025-06-23)**
4163
-
4164
- - Fix: crash if empty shortcuts in config.
4165
- - Fix: UUID serialization.
4166
-
4167
- **2.5.13 (2025-06-22)**
4168
-
4169
- - Disabled auto-switch to vision mode in Painter.
4170
- - UI fixes.
4171
-
4172
- **2.5.12 (2025-06-22)**
4173
-
4174
- - Fixed send-mode radio buttons switch.
4175
- - Added a new models: qwen2.5-coder, OpenAI gpt-4.1-mini.
4176
-
4177
- **2.5.11 (2025-06-21)**
4178
-
4179
- - Added a new models: OpenAI o1-pro and o3-pro, Anthropic Claude 4.0 Opus and Claude 4.0 Sonnet, Alibaba Qwen and Qwen2.
4180
- - Bielik model upgraded to v2.3 / merged PR #101.
4181
- - Fixed HTML output formatting.
4182
- - Fixed empty index in chat mode.
4183
-
4184
- **2.5.10 (2025-03-06)**
4185
-
4186
- - Added a new model: Claude 3.7 Sonnet.
4187
- - Fixed the context switch issue when the column changed and the tab is not a chat tab.
4188
- - LlamaIndex upgraded to 0.12.22.
4189
- - LlamaIndex LLMs upgraded to recent versions.
4190
-
4191
- **2.5.9 (2025-03-05)**
4192
-
4193
- - Improved formatting of HTML code in the output.
4194
- - Disabled automatic indentation parsing as code blocks.
4195
- - Disabled automatic scrolling of the notepad when opening a tab.
4196
-
4197
- **2.5.8 (2025-03-02)**
4198
-
4199
- - Added a new mode: Research (Perplexity) powered by: https://perplexity.ai - beta.
4200
- - Added Perplexity models: sonar, sonar-pro, sonar-deep-research, sonar-reasoning, sonar-reasoning-pro, r1-1776.
4201
- - Added a new OpenAI model: gpt-4.5-preview.
4202
-
4203
- **2.5.7 (2025-02-26)**
4204
-
4205
- - Stream mode has been enabled in o1 models.
4206
- - CSS styling for <think> tags (reasoning models) has been added.
4207
- - The search input has been moved to the top.
4208
- - The ChatGPT-based style is now set as default.
4209
- - Fix: Display of max tokens in models with a context window greater than 128k.
4210
-
4211
- **2.5.6 (2025-02-03)**
4212
-
4213
- - Fix: disabled index initialization if embedding provider is OpenAI and no API KEY is provided.
4214
- - Fix: embedding provider initialization on empty index.
4215
-
4216
- **2.5.5 (2025-02-02)**
4217
-
4218
- - Fix: system prompt apply.
4219
- - Added calendar live update on tab change.
4220
- - Added API Key monit at launch displayed only once.
4221
-
4222
- **2.5.4 (2025-02-02)**
4223
-
4224
- - Added new models: `o3-mini` and `gpt-4o-mini-audio-preview`.
4225
- - Enabled tool calls in Chat with Audio mode.
4226
- - Added a check to verify if Ollama is running and if the model is available.
4227
-
4228
- **2.5.3 (2025-02-01)**
4229
-
4230
- - Fix: Snap permission denied bug.
4231
- - Fix: column focus on tab change.
4232
- - Datetime separators in groups moved to right side.
4233
-
4234
- **2.5.2 (2025-02-01)**
4235
-
4236
- - Fix: spinner update after inline image generation.
4237
- - Added Ollama suffix to Ollama-models in models list.
4238
-
4239
- **2.5.1 (2025-02-01)**
4240
-
4241
- - PySide6 upgraded to 6.6.2.
4242
- - Disabled Transformers startup warnings.
4243
-
4244
- **2.5.0 (2025-01-31)**
4245
-
4246
- - Added provider for DeepSeek (in Chat with Files mode, beta).
4247
- - Added new models: OpenAI o1, Llama 3.3, DeepSeek V3 and R1 (API + local, with Ollama).
4248
- - Added tool calls for OpenAI o1.
4249
- - Added native vision for OpenAI o1.
4250
- - Fix: tool calls in Ollama provider.
4251
- - Fix: error handling in stream mode.
4252
- - Fix: added check for active plugin tools before tool call.
4253
-
4254
4130
  # Credits and links
4255
4131
 
4256
4132
  **Official website:** <https://pygpt.net>