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.
- pygpt_net/CHANGELOG.txt +8 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +8 -4
- pygpt_net/container.py +3 -3
- pygpt_net/controller/chat/command.py +4 -4
- pygpt_net/controller/chat/input.py +2 -2
- pygpt_net/controller/chat/stream.py +6 -2
- pygpt_net/controller/config/placeholder.py +28 -14
- pygpt_net/controller/lang/custom.py +2 -2
- pygpt_net/controller/mode/__init__.py +22 -1
- pygpt_net/controller/model/__init__.py +2 -2
- pygpt_net/controller/model/editor.py +6 -63
- pygpt_net/controller/model/importer.py +9 -7
- pygpt_net/controller/presets/editor.py +8 -8
- pygpt_net/core/agents/legacy.py +2 -2
- pygpt_net/core/bridge/__init__.py +5 -4
- pygpt_net/core/bridge/worker.py +5 -2
- pygpt_net/core/command/__init__.py +10 -8
- pygpt_net/core/debug/presets.py +2 -2
- pygpt_net/core/experts/__init__.py +2 -2
- pygpt_net/core/idx/chat.py +7 -20
- pygpt_net/core/idx/llm.py +27 -28
- pygpt_net/core/llm/__init__.py +25 -3
- pygpt_net/core/models/__init__.py +83 -9
- pygpt_net/core/modes/__init__.py +2 -2
- pygpt_net/core/presets/__init__.py +3 -3
- pygpt_net/core/prompt/__init__.py +5 -5
- pygpt_net/core/tokens/__init__.py +3 -3
- pygpt_net/core/updater/__init__.py +5 -3
- pygpt_net/data/config/config.json +5 -3
- pygpt_net/data/config/models.json +1302 -3088
- pygpt_net/data/config/modes.json +1 -7
- pygpt_net/data/config/settings.json +60 -0
- pygpt_net/data/locale/locale.en.ini +10 -2
- pygpt_net/item/model.py +49 -34
- pygpt_net/plugin/base/plugin.py +6 -5
- pygpt_net/provider/core/config/patch.py +12 -1
- pygpt_net/provider/core/model/json_file.py +7 -7
- pygpt_net/provider/core/model/patch.py +56 -7
- pygpt_net/provider/core/preset/json_file.py +4 -4
- pygpt_net/provider/gpt/__init__.py +9 -17
- pygpt_net/provider/gpt/chat.py +90 -20
- pygpt_net/provider/gpt/responses.py +58 -21
- pygpt_net/provider/llms/anthropic.py +2 -1
- pygpt_net/provider/llms/azure_openai.py +11 -7
- pygpt_net/provider/llms/base.py +3 -2
- pygpt_net/provider/llms/deepseek_api.py +3 -1
- pygpt_net/provider/llms/google.py +2 -1
- pygpt_net/provider/llms/hugging_face.py +8 -5
- pygpt_net/provider/llms/hugging_face_api.py +3 -1
- pygpt_net/provider/llms/local.py +2 -1
- pygpt_net/provider/llms/ollama.py +8 -6
- pygpt_net/provider/llms/openai.py +11 -7
- pygpt_net/provider/llms/perplexity.py +109 -0
- pygpt_net/provider/llms/x_ai.py +108 -0
- pygpt_net/ui/dialog/about.py +5 -5
- pygpt_net/ui/dialog/preset.py +5 -5
- {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/METADATA +52 -176
- {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/RECORD +62 -60
- {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/LICENSE +0 -0
- {pygpt_net-2.5.19.dist-info → pygpt_net-2.5.20.dist-info}/WHEEL +0 -0
- {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
|
pygpt_net/ui/dialog/about.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date:
|
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
|
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: {},
|
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
|
|
pygpt_net/ui/dialog/preset.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2025.
|
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.
|
4
|
-
Summary: Desktop AI Assistant powered by models: OpenAI o1,
|
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:
|
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.
|
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.
|
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.
|
56
|
-
Requires-Dist: llama-index-llms-openai (>=0.
|
57
|
-
Requires-Dist: llama-index-llms-openai-like (>=0.
|
58
|
-
Requires-Dist: llama-index-multi-modal-llms-openai (>=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
|
[](https://snapcraft.io/pygpt)
|
102
98
|
|
103
|
-
Release: **2.5.
|
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 `
|
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,
|
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
|
-
-
|
140
|
-
- Supports multiple models: `o1`, `GPT-4o`, `GPT-4`, `GPT-3.5`, and any model accessible through `
|
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
|
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
|

|
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 `
|
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`
|
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
|
-
-
|
1063
|
+
- Anthropic (anthropic)
|
1091
1064
|
- Azure OpenAI (azure_openai)
|
1065
|
+
- Deepseek API (deepseek_api)
|
1092
1066
|
- Google (google)
|
1093
1067
|
- HuggingFace (huggingface)
|
1094
|
-
-
|
1068
|
+
- Local models (OpenAI API compatible)
|
1095
1069
|
- Ollama (ollama)
|
1096
|
-
-
|
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
|
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 (
|
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
|
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
|
-
"
|
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
|
-
-
|
3730
|
-
-
|
3731
|
-
-
|
3732
|
-
-
|
3733
|
-
-
|
3734
|
-
-
|
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
|
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
|
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
|
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>
|