pygpt-net 2.4.41__py3-none-any.whl → 2.4.44__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- CHANGELOG.md +19 -0
- README.md +151 -71
- pygpt_net/CHANGELOG.txt +19 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +3 -1
- pygpt_net/controller/attachment.py +31 -3
- pygpt_net/controller/audio/__init__.py +2 -2
- pygpt_net/controller/camera.py +1 -10
- pygpt_net/controller/chat/attachment.py +37 -36
- pygpt_net/controller/chat/audio.py +2 -2
- pygpt_net/controller/config/placeholder.py +20 -4
- pygpt_net/controller/idx/common.py +7 -3
- pygpt_net/controller/ui/mode.py +16 -21
- pygpt_net/core/attachments/__init__.py +7 -2
- pygpt_net/core/attachments/context.py +52 -34
- pygpt_net/core/audio/__init__.py +4 -1
- pygpt_net/core/audio/whisper.py +37 -0
- pygpt_net/core/bridge/worker.py +2 -2
- pygpt_net/core/db/__init__.py +2 -1
- pygpt_net/core/debug/attachments.py +1 -0
- pygpt_net/core/debug/events.py +22 -10
- pygpt_net/core/debug/tabs.py +6 -3
- pygpt_net/core/history.py +3 -2
- pygpt_net/core/idx/__init__.py +23 -6
- pygpt_net/core/idx/chat.py +15 -5
- pygpt_net/core/idx/indexing.py +47 -14
- pygpt_net/core/idx/ui/__init__.py +22 -0
- pygpt_net/core/idx/ui/loaders.py +217 -0
- pygpt_net/core/installer.py +2 -4
- pygpt_net/core/models.py +62 -17
- pygpt_net/core/modes.py +11 -13
- pygpt_net/core/notepad.py +4 -4
- pygpt_net/core/plugins.py +27 -16
- pygpt_net/core/presets.py +20 -9
- pygpt_net/core/profile.py +11 -3
- pygpt_net/core/render/web/parser.py +3 -1
- pygpt_net/core/settings.py +5 -5
- pygpt_net/core/tabs/tab.py +10 -2
- pygpt_net/core/tokens.py +8 -6
- pygpt_net/core/web/__init__.py +105 -0
- pygpt_net/core/{web.py → web/helpers.py} +93 -67
- pygpt_net/data/config/config.json +4 -4
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/modes.json +3 -3
- pygpt_net/data/config/settings.json +5 -5
- pygpt_net/data/locale/locale.de.ini +3 -3
- pygpt_net/data/locale/locale.en.ini +12 -9
- pygpt_net/data/locale/locale.es.ini +3 -3
- pygpt_net/data/locale/locale.fr.ini +3 -3
- pygpt_net/data/locale/locale.it.ini +3 -3
- pygpt_net/data/locale/locale.pl.ini +3 -3
- pygpt_net/data/locale/locale.uk.ini +3 -3
- pygpt_net/data/locale/locale.zh.ini +3 -3
- pygpt_net/data/locale/plugin.cmd_web.en.ini +2 -0
- pygpt_net/data/locale/plugin.mailer.en.ini +21 -0
- pygpt_net/item/attachment.py +5 -1
- pygpt_net/item/ctx.py +111 -3
- pygpt_net/migrations/Version20241215110000.py +25 -0
- pygpt_net/migrations/__init__.py +3 -1
- pygpt_net/plugin/agent/__init__.py +7 -2
- pygpt_net/plugin/audio_output/__init__.py +6 -1
- pygpt_net/plugin/base/plugin.py +58 -26
- pygpt_net/plugin/base/worker.py +20 -17
- pygpt_net/plugin/cmd_files/__init__.py +3 -2
- pygpt_net/plugin/cmd_history/config.py +2 -2
- pygpt_net/plugin/cmd_web/__init__.py +3 -4
- pygpt_net/plugin/cmd_web/config.py +71 -3
- pygpt_net/plugin/cmd_web/websearch.py +20 -12
- pygpt_net/plugin/cmd_web/worker.py +67 -4
- pygpt_net/plugin/idx_llama_index/config.py +3 -3
- pygpt_net/plugin/mailer/__init__.py +123 -0
- pygpt_net/plugin/mailer/config.py +149 -0
- pygpt_net/plugin/mailer/runner.py +285 -0
- pygpt_net/plugin/mailer/worker.py +123 -0
- pygpt_net/provider/agents/base.py +5 -2
- pygpt_net/provider/agents/openai.py +4 -2
- pygpt_net/provider/agents/openai_assistant.py +4 -2
- pygpt_net/provider/agents/planner.py +4 -2
- pygpt_net/provider/agents/react.py +4 -2
- pygpt_net/provider/audio_output/openai_tts.py +5 -11
- pygpt_net/provider/core/assistant/base.py +5 -3
- pygpt_net/provider/core/assistant/json_file.py +8 -5
- pygpt_net/provider/core/assistant_file/base.py +4 -3
- pygpt_net/provider/core/assistant_file/db_sqlite/__init__.py +4 -3
- pygpt_net/provider/core/assistant_file/db_sqlite/storage.py +3 -2
- pygpt_net/provider/core/assistant_store/base.py +6 -4
- pygpt_net/provider/core/assistant_store/db_sqlite/__init__.py +5 -4
- pygpt_net/provider/core/assistant_store/db_sqlite/storage.py +5 -3
- pygpt_net/provider/core/attachment/base.py +5 -3
- pygpt_net/provider/core/attachment/json_file.py +7 -3
- pygpt_net/provider/core/calendar/base.py +5 -3
- pygpt_net/provider/core/calendar/db_sqlite/__init__.py +6 -5
- pygpt_net/provider/core/calendar/db_sqlite/storage.py +5 -4
- pygpt_net/provider/core/config/base.py +8 -6
- pygpt_net/provider/core/config/json_file.py +9 -7
- pygpt_net/provider/core/config/patch.py +6 -0
- pygpt_net/provider/core/ctx/base.py +27 -25
- pygpt_net/provider/core/ctx/db_sqlite/__init__.py +51 -35
- pygpt_net/provider/core/ctx/db_sqlite/storage.py +92 -38
- pygpt_net/provider/core/ctx/db_sqlite/utils.py +37 -11
- pygpt_net/provider/core/index/base.py +129 -23
- pygpt_net/provider/core/index/db_sqlite/__init__.py +130 -23
- pygpt_net/provider/core/index/db_sqlite/storage.py +130 -23
- pygpt_net/provider/core/index/db_sqlite/utils.py +4 -2
- pygpt_net/provider/core/mode/base.py +5 -3
- pygpt_net/provider/core/mode/json_file.py +7 -6
- pygpt_net/provider/core/model/base.py +6 -4
- pygpt_net/provider/core/model/json_file.py +9 -7
- pygpt_net/provider/core/notepad/base.py +5 -3
- pygpt_net/provider/core/notepad/db_sqlite/__init__.py +5 -4
- pygpt_net/provider/core/notepad/db_sqlite/storage.py +4 -3
- pygpt_net/provider/core/plugin_preset/base.py +4 -2
- pygpt_net/provider/core/plugin_preset/json_file.py +5 -3
- pygpt_net/provider/core/preset/base.py +6 -4
- pygpt_net/provider/core/preset/json_file.py +9 -9
- pygpt_net/provider/core/prompt/base.py +6 -3
- pygpt_net/provider/core/prompt/json_file.py +11 -6
- pygpt_net/provider/gpt/assistants.py +15 -6
- pygpt_net/provider/gpt/audio.py +5 -5
- pygpt_net/provider/gpt/chat.py +7 -5
- pygpt_net/provider/gpt/completion.py +8 -4
- pygpt_net/provider/gpt/image.py +3 -3
- pygpt_net/provider/gpt/store.py +46 -12
- pygpt_net/provider/gpt/vision.py +16 -11
- pygpt_net/provider/llms/anthropic.py +7 -2
- pygpt_net/provider/llms/azure_openai.py +26 -5
- pygpt_net/provider/llms/base.py +47 -9
- pygpt_net/provider/llms/google.py +7 -2
- pygpt_net/provider/llms/hugging_face.py +13 -3
- pygpt_net/provider/llms/hugging_face_api.py +18 -4
- pygpt_net/provider/llms/local.py +7 -2
- pygpt_net/provider/llms/ollama.py +30 -6
- pygpt_net/provider/llms/openai.py +32 -6
- pygpt_net/provider/loaders/base.py +14 -0
- pygpt_net/provider/loaders/hub/yt/base.py +5 -0
- pygpt_net/provider/loaders/web_database.py +13 -5
- pygpt_net/provider/loaders/web_github_issues.py +5 -1
- pygpt_net/provider/loaders/web_google_calendar.py +9 -1
- pygpt_net/provider/loaders/web_google_docs.py +6 -1
- pygpt_net/provider/loaders/web_google_drive.py +10 -1
- pygpt_net/provider/loaders/web_google_gmail.py +2 -1
- pygpt_net/provider/loaders/web_google_keep.py +5 -1
- pygpt_net/provider/loaders/web_google_sheets.py +5 -1
- pygpt_net/provider/loaders/web_microsoft_onedrive.py +15 -1
- pygpt_net/provider/loaders/web_page.py +4 -2
- pygpt_net/provider/loaders/web_rss.py +2 -1
- pygpt_net/provider/loaders/web_sitemap.py +2 -1
- pygpt_net/provider/loaders/web_twitter.py +4 -2
- pygpt_net/provider/loaders/web_yt.py +17 -2
- pygpt_net/provider/vector_stores/__init__.py +45 -14
- pygpt_net/provider/vector_stores/base.py +35 -8
- pygpt_net/provider/vector_stores/chroma.py +13 -3
- pygpt_net/provider/vector_stores/ctx_attachment.py +32 -13
- pygpt_net/provider/vector_stores/elasticsearch.py +12 -3
- pygpt_net/provider/vector_stores/pinecode.py +12 -3
- pygpt_net/provider/vector_stores/redis.py +12 -3
- pygpt_net/provider/vector_stores/simple.py +12 -3
- pygpt_net/provider/vector_stores/temp.py +16 -4
- pygpt_net/provider/web/base.py +10 -3
- pygpt_net/provider/web/google_custom_search.py +9 -3
- pygpt_net/provider/web/microsoft_bing.py +9 -3
- pygpt_net/tools/__init__.py +13 -5
- pygpt_net/tools/audio_transcriber/__init__.py +4 -3
- pygpt_net/tools/base.py +15 -8
- pygpt_net/tools/code_interpreter/__init__.py +4 -3
- pygpt_net/tools/html_canvas/__init__.py +4 -3
- pygpt_net/tools/image_viewer/__init__.py +10 -4
- pygpt_net/tools/indexer/__init__.py +15 -46
- pygpt_net/tools/indexer/ui/web.py +20 -78
- pygpt_net/tools/media_player/__init__.py +4 -3
- pygpt_net/tools/text_editor/__init__.py +36 -10
- pygpt_net/ui/layout/chat/output.py +2 -2
- pygpt_net/ui/layout/ctx/ctx_list.py +86 -18
- pygpt_net/ui/menu/audio.py +12 -1
- pygpt_net/ui/widget/dialog/url.py +151 -14
- pygpt_net/ui/widget/element/group.py +15 -2
- pygpt_net/ui/widget/lists/context.py +23 -9
- pygpt_net/utils.py +1 -1
- {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.44.dist-info}/METADATA +152 -72
- {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.44.dist-info}/RECORD +183 -173
- {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.44.dist-info}/LICENSE +0 -0
- {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.44.dist-info}/WHEEL +0 -0
- {pygpt_net-2.4.41.dist-info → pygpt_net-2.4.44.dist-info}/entry_points.txt +0 -0
@@ -6,90 +6,116 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.12.
|
9
|
+
# Updated Date: 2024.12.15 01:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
import os
|
13
13
|
import uuid
|
14
|
-
from typing import Optional, List, Dict
|
14
|
+
from typing import Optional, List, Dict, Tuple, Union
|
15
15
|
|
16
16
|
import requests
|
17
17
|
|
18
18
|
from bs4 import BeautifulSoup
|
19
19
|
from urllib.parse import urljoin
|
20
20
|
|
21
|
-
from pygpt_net.provider.web.base import BaseProvider
|
22
21
|
|
23
|
-
|
24
|
-
class Web:
|
22
|
+
class Helpers:
|
25
23
|
def __init__(self, window=None):
|
26
24
|
"""
|
27
|
-
Web
|
25
|
+
Web helpers core
|
28
26
|
|
29
27
|
:param window: Window instance
|
30
28
|
"""
|
31
29
|
self.window = window
|
32
|
-
self.providers = {
|
33
|
-
"search_engine": {},
|
34
|
-
}
|
35
|
-
|
36
|
-
def is_registered(self, id: str, type: str = "search_engine") -> bool:
|
37
|
-
"""
|
38
|
-
Check if provider is registered
|
39
|
-
|
40
|
-
:param id: provider id
|
41
|
-
:param type: provider type
|
42
|
-
:return: True if registered
|
43
|
-
"""
|
44
|
-
if type in self.providers:
|
45
|
-
return id in self.providers[type]
|
46
|
-
return False
|
47
|
-
|
48
|
-
def get_providers(self, type: str = "search_engine") -> dict:
|
49
|
-
"""
|
50
|
-
Get all providers
|
51
|
-
|
52
|
-
:param type: provider type
|
53
|
-
:return: providers dict
|
54
|
-
"""
|
55
|
-
if type in self.providers:
|
56
|
-
return self.providers[type]
|
57
|
-
return {}
|
58
|
-
|
59
|
-
def get_ids(self, type: str = "search_engine") -> list:
|
60
|
-
"""
|
61
|
-
Get all providers ids
|
62
30
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
:param
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
31
|
+
def request(
|
32
|
+
self,
|
33
|
+
url: str = "",
|
34
|
+
method: str = "GET",
|
35
|
+
headers: Optional[dict] = None,
|
36
|
+
params: Optional[dict] = None,
|
37
|
+
data: Optional[Union[str, dict]] = None,
|
38
|
+
json: Optional[dict] = None,
|
39
|
+
files: Optional[dict] = None,
|
40
|
+
cookies: Optional[dict] = None,
|
41
|
+
timeout: int = 10,
|
42
|
+
disable_ssl_verify: bool = False,
|
43
|
+
allow_redirects: bool = True,
|
44
|
+
stream: bool = False,
|
45
|
+
user_agent: Optional[str] = None,
|
46
|
+
) -> Tuple[Optional[int], Optional[str]]:
|
47
|
+
"""
|
48
|
+
Make HTTP request
|
49
|
+
|
50
|
+
:param url: URL
|
51
|
+
:param method: HTTP method
|
52
|
+
:param headers: Headers
|
53
|
+
:param params: GET parameters
|
54
|
+
:param data: POST data
|
55
|
+
:param json: JSON data
|
56
|
+
:param files: Files
|
57
|
+
:param cookies: Cookies
|
58
|
+
:param timeout: Timeout
|
59
|
+
:param disable_ssl_verify: Disable SSL verification
|
60
|
+
:param allow_redirects: Allow redirects
|
61
|
+
:param stream: Stream
|
62
|
+
:param user_agent: User agent
|
63
|
+
:return: status code, response text
|
64
|
+
"""
|
65
|
+
upload = {}
|
66
|
+
try:
|
67
|
+
method = method.upper()
|
68
|
+
session = requests.Session()
|
69
|
+
args = {}
|
70
|
+
|
71
|
+
if data:
|
72
|
+
args['data'] = data
|
73
|
+
if json:
|
74
|
+
args['json'] = json
|
75
|
+
if cookies:
|
76
|
+
args['cookies'] = cookies
|
77
|
+
if params:
|
78
|
+
args['params'] = params
|
79
|
+
if headers:
|
80
|
+
args['headers'] = headers
|
81
|
+
|
82
|
+
args['timeout'] = timeout
|
83
|
+
if disable_ssl_verify:
|
84
|
+
args['verify'] = False
|
85
|
+
if not allow_redirects:
|
86
|
+
args['allow_redirects'] = False
|
87
|
+
if stream:
|
88
|
+
args['stream'] = True
|
89
|
+
if user_agent:
|
90
|
+
if 'headers' not in args:
|
91
|
+
args['headers'] = {}
|
92
|
+
args['headers']['User-Agent'] = user_agent
|
93
|
+
|
94
|
+
if files:
|
95
|
+
for key, value in files.items():
|
96
|
+
if os.path.exists(value) and os.path.isfile(value):
|
97
|
+
upload[key] = open(value, 'rb')
|
98
|
+
args['files'] = upload
|
99
|
+
|
100
|
+
if method == 'GET':
|
101
|
+
response = session.get(url, **args)
|
102
|
+
elif method == 'POST':
|
103
|
+
response = session.post(url, **args)
|
104
|
+
elif method == 'PUT':
|
105
|
+
response = session.put(url, **args)
|
106
|
+
elif method == 'DELETE':
|
107
|
+
response = session.delete(url, **args)
|
108
|
+
elif method == 'PATCH':
|
109
|
+
response = session.patch(url, **args)
|
110
|
+
else:
|
111
|
+
return None, f'Invalid HTTP method: {method}'
|
112
|
+
for k in upload:
|
113
|
+
upload[k].close() # close files if opened
|
114
|
+
return response.status_code, response.text
|
115
|
+
except Exception as e:
|
116
|
+
for k in upload:
|
117
|
+
upload[k].close() # close files if opened
|
118
|
+
return None, f'Error: {e}'
|
93
119
|
|
94
120
|
def get_main_image(self, url: str) -> Optional[str]:
|
95
121
|
"""
|
@@ -208,4 +234,4 @@ class Web:
|
|
208
234
|
download_path = os.path.join(dir, name)
|
209
235
|
with open(download_path, 'wb', ) as f:
|
210
236
|
f.write(response.content)
|
211
|
-
return self.window.core.filesystem.make_local(download_path)
|
237
|
+
return self.window.core.filesystem.make_local(download_path)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"__meta__": {
|
3
|
-
"version": "2.4.
|
4
|
-
"app.version": "2.4.
|
5
|
-
"updated_at": "2024-12-
|
3
|
+
"version": "2.4.44",
|
4
|
+
"app.version": "2.4.44",
|
5
|
+
"updated_at": "2024-12-16T00:00:00"
|
6
6
|
},
|
7
7
|
"access.audio.event.speech": false,
|
8
8
|
"access.audio.event.speech.disabled": [],
|
@@ -100,7 +100,7 @@
|
|
100
100
|
6,
|
101
101
|
7
|
102
102
|
],
|
103
|
-
"ctx.records.folders.top":
|
103
|
+
"ctx.records.folders.top": true,
|
104
104
|
"ctx.records.limit": 0,
|
105
105
|
"ctx.records.separators": true,
|
106
106
|
"ctx.records.groups.separators": true,
|
pygpt_net/data/config/modes.json
CHANGED
@@ -1078,7 +1078,7 @@
|
|
1078
1078
|
},
|
1079
1079
|
"label": "settings.llama.idx.storage.args",
|
1080
1080
|
"description": "settings.llama.idx.storage.args.desc",
|
1081
|
-
"urls": "https://pygpt.readthedocs.io/en/latest/
|
1081
|
+
"urls": "https://pygpt.readthedocs.io/en/latest/configuration.html#vector-stores",
|
1082
1082
|
"value": [],
|
1083
1083
|
"advanced": false,
|
1084
1084
|
"tab": "store"
|
@@ -1261,7 +1261,7 @@
|
|
1261
1261
|
"use": "var_types"
|
1262
1262
|
}
|
1263
1263
|
},
|
1264
|
-
"urls": "https://pygpt.readthedocs.io/en/latest/
|
1264
|
+
"urls": "https://pygpt.readthedocs.io/en/latest/configuration.html#data-loaders",
|
1265
1265
|
"slider": false,
|
1266
1266
|
"label": "settings.llama.hub.loaders.args",
|
1267
1267
|
"description": "settings.llama.hub.loaders.args.desc",
|
@@ -1395,7 +1395,7 @@
|
|
1395
1395
|
"multiplier": null,
|
1396
1396
|
"step": null,
|
1397
1397
|
"advanced": false,
|
1398
|
-
"tab": "
|
1398
|
+
"tab": "autonomous"
|
1399
1399
|
},
|
1400
1400
|
"experts.mode": {
|
1401
1401
|
"section": "agent",
|
@@ -1410,7 +1410,7 @@
|
|
1410
1410
|
"multiplier": null,
|
1411
1411
|
"step": null,
|
1412
1412
|
"advanced": false,
|
1413
|
-
"tab": "
|
1413
|
+
"tab": "experts"
|
1414
1414
|
},
|
1415
1415
|
"agent.idx": {
|
1416
1416
|
"section": "agent",
|
@@ -1425,7 +1425,7 @@
|
|
1425
1425
|
"multiplier": null,
|
1426
1426
|
"step": null,
|
1427
1427
|
"advanced": false,
|
1428
|
-
"tab": "
|
1428
|
+
"tab": "autonomous"
|
1429
1429
|
},
|
1430
1430
|
"llama.idx.chat.mode": {
|
1431
1431
|
"section": "llama-index",
|
@@ -346,7 +346,7 @@ dialog.start.title = API-KEY ist noch nicht konfiguriert
|
|
346
346
|
dialog.start.title.text = Ihr API-Schlüssel ist noch nicht konfiguriert...\nSie erhalten einen API-Schlüssel, indem Sie ein Konto auf der OpenAI-Website registrieren:
|
347
347
|
dialog.url.dismiss = Abbrechen
|
348
348
|
dialog.url.tip = Geben Sie die URL der Webseite an, die Sie als zusätzlichen Kontext anfügen möchten, z.B. https://de.wikipedia.org/wiki/Elon_Musk, oder ein YouTube-Video zur Transkription, z.B. https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
349
|
-
dialog.url.title =
|
349
|
+
dialog.url.title = Web
|
350
350
|
dialog.url.update = Hinzufügen
|
351
351
|
dialog.workdir.change.confirm = Sind Sie sicher, dass Sie das Arbeitsverzeichnis zu folgendem ändern/verschieben möchten:\n{path}?
|
352
352
|
dialog.workdir.change.empty.alert = Verzeichnis ist nicht leer! Vorgang wird abgebrochen.
|
@@ -750,7 +750,7 @@ settings.agent.llama.steps = Maximale Schritte (pro Iteration)
|
|
750
750
|
settings.agent.llama.steps.desc = Maximale Schritte in einer Iteration, bevor das Ziel erreicht wird
|
751
751
|
settings.agent.llama.verbose = Ausführlich (Protokollausgabe in die Konsole)
|
752
752
|
settings.agent.mode = Interner Modus für Agenten
|
753
|
-
settings.agent.mode.desc = Interner Modus für die Verwendung im Agentenmodus
|
753
|
+
settings.agent.mode.desc = Interner Modus für die Verwendung im Agentenmodus
|
754
754
|
settings.api_endpoint = API-Endpunkt
|
755
755
|
settings.api_endpoint.desc = OpenAI API-Endpunkt-URL (oder kompatibel), standardmäßig: https://api.openai.com/v1
|
756
756
|
settings.api_key = OpenAI API-KEY
|
@@ -793,7 +793,7 @@ settings.dict.delete.confirm = Eintrag aus der Liste entfernen?
|
|
793
793
|
settings.download.dir = Verzeichnis für Dateidownloads
|
794
794
|
settings.download.dir.desc = Unterordner für heruntergeladene Dateien, z.B. im Assistentenmodus, innerhalb von "data"
|
795
795
|
settings.experts.mode = Untermodus für Experten
|
796
|
-
settings.experts.mode.desc = Untermodus, der für Experten verwendet wird
|
796
|
+
settings.experts.mode.desc = Untermodus, der für Experten verwendet wird
|
797
797
|
settings.font_size = Schriftgröße (Chat-Text, Notizblöcke)
|
798
798
|
settings.font_size.ctx = Schriftgröße (Kontextliste)
|
799
799
|
settings.font_size.input = Schriftgröße (Eingabe)
|
@@ -110,7 +110,7 @@ assistant.tool.retrieval = Retrieval
|
|
110
110
|
assistant.vector_store = Vector Store
|
111
111
|
attachments.auto_index = Auto-index on upload
|
112
112
|
attachments.btn.add = Add file
|
113
|
-
attachments.btn.add_url =
|
113
|
+
attachments.btn.add_url = Web
|
114
114
|
attachments.btn.clear = Clear
|
115
115
|
attachments.capture_clear = Clear on capture
|
116
116
|
attachments.clear.confirm = Clear list?
|
@@ -120,6 +120,7 @@ attachments.ctx.mode.full = Full context
|
|
120
120
|
attachments.ctx.mode.off = Off (disable)
|
121
121
|
attachments.ctx.mode.query = RAG
|
122
122
|
attachments.ctx.mode.summary = Summary
|
123
|
+
attachments.ctx.tooltip.list = {num} attachments
|
123
124
|
attachments.delete.confirm = Remove file from list?
|
124
125
|
attachments.header.ctx = Ctx
|
125
126
|
attachments.header.idx = Idx
|
@@ -377,7 +378,7 @@ dialog.start.title = Api Key is not configured yet
|
|
377
378
|
dialog.start.title.text = Your API key is not configured yet...\nYou will obtain an API key by registering an account on the OpenAI website:
|
378
379
|
dialog.url.dismiss = Cancel
|
379
380
|
dialog.url.tip = Provide the URL of the web page you want to attach as additional context, e.g., https://pl.wikipedia.org/wiki/Elon_Musk, or a YouTube video to transcribe, e.g., https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
380
|
-
dialog.url.title =
|
381
|
+
dialog.url.title = Web
|
381
382
|
dialog.url.update = Add
|
382
383
|
dialog.workdir.change.confirm = Are you sure you want to change/move workdir to:\n{path}?
|
383
384
|
dialog.workdir.change.empty.alert = Directory is not empty! Aborting.
|
@@ -683,6 +684,7 @@ menu.audio.control.global = Voice control (global)
|
|
683
684
|
menu.audio.control.plugin = Voice control (inline)
|
684
685
|
menu.audio.input = Input: Speech recognition
|
685
686
|
menu.audio.output = Output: Speech synthesis
|
687
|
+
menu.audio.stop = Stop audio playback
|
686
688
|
menu.config = Config
|
687
689
|
menu.config.access = Accessibility
|
688
690
|
menu.config.change_dir = Change working directory...
|
@@ -767,7 +769,7 @@ mode.agent = Agent (Autonomous)
|
|
767
769
|
mode.agent_llama = Agent (LlamaIndex)
|
768
770
|
mode.agent_llama.tooltip = Advanced agents (LlamaIndex)
|
769
771
|
mode.agent.tooltip = Simple agents (legacy)
|
770
|
-
mode.assistant =
|
772
|
+
mode.assistant = Assistants
|
771
773
|
mode.assistant.tooltip = Chat using Assistants API
|
772
774
|
mode.audio = Chat with Audio
|
773
775
|
mode.chat = Chat
|
@@ -906,7 +908,7 @@ settings.access.voice_control.model.desc = Model to use for command recognition
|
|
906
908
|
settings.advanced.collapse = Show/hide advanced options
|
907
909
|
settings.agent.goal.notify = Display a tray notification when the goal is achieved.
|
908
910
|
settings.agent.idx = Index to use
|
909
|
-
settings.agent.idx.desc = Only if sub-mode is
|
911
|
+
settings.agent.idx.desc = Only if sub-mode is Chat with Files, choose the index to use in Autonomous and Experts modes
|
910
912
|
settings.agent.llama.append_eval = Append and compare previous evaluation prompt in next evaluation
|
911
913
|
settings.agent.llama.append_eval.desc = If enabled, previous improvement prompt will be checked in next eval in loop
|
912
914
|
settings.agent.llama.iterations = Max run iterations
|
@@ -917,7 +919,7 @@ settings.agent.llama.steps = Max steps (per iteration)
|
|
917
919
|
settings.agent.llama.steps.desc = Max steps in one iteration before goal achieved
|
918
920
|
settings.agent.llama.verbose = Verbose (log output to console)
|
919
921
|
settings.agent.mode = Sub-mode for agents
|
920
|
-
settings.agent.mode.desc = Sub-mode to use in Agent
|
922
|
+
settings.agent.mode.desc = Sub-mode to use in Agent (Autonomous) mode
|
921
923
|
settings.api_endpoint = API Endpoint
|
922
924
|
settings.api_endpoint.desc = OpenAI API (or compatible) endpoint URL, default: https://api.openai.com/v1
|
923
925
|
settings.api_key = OpenAI API KEY
|
@@ -982,7 +984,7 @@ settings.dict.delete.confirm = Remove item from list?
|
|
982
984
|
settings.download.dir = Directory for file downloads
|
983
985
|
settings.download.dir.desc = Subdirectory for downloaded files, e.g. in Assistants mode, inside "data"
|
984
986
|
settings.experts.mode = Sub-mode for experts
|
985
|
-
settings.experts.mode.desc = Sub-mode to use for Experts
|
987
|
+
settings.experts.mode.desc = Sub-mode to use for Experts
|
986
988
|
settings.font_size = Font size (chat plain-text, notepads)
|
987
989
|
settings.font_size.ctx = Font size (ctx list)
|
988
990
|
settings.font_size.input = Font size (input)
|
@@ -1089,8 +1091,9 @@ settings.render.web.only.desc = WebEngine / Chromium rendering engine only
|
|
1089
1091
|
settings.restart.required = Restart of the application is required for this option to take effect.
|
1090
1092
|
settings.section.access = Accessibility
|
1091
1093
|
settings.section.agent = Agents and experts
|
1092
|
-
settings.section.agent.
|
1093
|
-
settings.section.agent.
|
1094
|
+
settings.section.agent.autonomous = Autonomous
|
1095
|
+
settings.section.agent.experts = Experts
|
1096
|
+
settings.section.agent.llama = Agents
|
1094
1097
|
settings.section.audio = Audio
|
1095
1098
|
settings.section.ctx = Context
|
1096
1099
|
settings.section.developer = Developer
|
@@ -1245,7 +1248,7 @@ tool.indexer.tab.files.tip = Select file(s) or directory to embed files into the
|
|
1245
1248
|
tool.indexer.tab.web = Web
|
1246
1249
|
tool.indexer.tab.web.cfg = Configuration (global settings) - Settings -> LlamaIndex -> Data loaders
|
1247
1250
|
tool.indexer.tab.web.help = Help
|
1248
|
-
tool.indexer.tab.web.loader =
|
1251
|
+
tool.indexer.tab.web.loader = Data type
|
1249
1252
|
tool.indexer.tab.web.source = Data source
|
1250
1253
|
tool.indexer.tab.web.tip = Select a data loader and define the loader parameters to embed external data from the web.
|
1251
1254
|
tool.indexer.title = Indexer
|
@@ -346,7 +346,7 @@ dialog.start.title = La API KEY aún no está configurada
|
|
346
346
|
dialog.start.title.text = Su clave de API aún no está configurada...\nObtendrá una clave de API registrando una cuenta en el sitio web de OpenAI:
|
347
347
|
dialog.url.dismiss = Cancelar
|
348
348
|
dialog.url.tip = Proporcione la URL de la página web que desea adjuntar como contexto adicional, por ejemplo, https://es.wikipedia.org/wiki/Elon_Musk, o un video de YouTube para transcribir, por ejemplo, https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
349
|
-
dialog.url.title =
|
349
|
+
dialog.url.title = Web
|
350
350
|
dialog.url.update = Agregar
|
351
351
|
dialog.workdir.change.confirm = ¿Está seguro de querer cambiar/mover el directorio de trabajo a:\n{path}?
|
352
352
|
dialog.workdir.change.empty.alert = ¡El directorio no está vacío! Cancelando la operación.
|
@@ -749,7 +749,7 @@ settings.agent.llama.steps = Pasos máximos (por iteración)
|
|
749
749
|
settings.agent.llama.steps.desc = Pasos máximos en una iteración antes de que se logre el objetivo
|
750
750
|
settings.agent.llama.verbose = Verboso (salida de registro a la consola)
|
751
751
|
settings.agent.mode = Modo interno para agentes
|
752
|
-
settings.agent.mode.desc = Modo interno para usar en modo Agente
|
752
|
+
settings.agent.mode.desc = Modo interno para usar en modo Agente
|
753
753
|
settings.api_endpoint = Punto final de la API
|
754
754
|
settings.api_endpoint.desc = URL del punto final de la API de OpenAI (o compatible), por defecto: https://api.openai.com/v1
|
755
755
|
settings.api_key = Clave API de OpenAI
|
@@ -792,7 +792,7 @@ settings.dict.delete.confirm = ¿Eliminar elemento de la lista?
|
|
792
792
|
settings.download.dir = Directorio para descargas de archivos
|
793
793
|
settings.download.dir.desc = Subdirectorio para archivos descargados, por ejemplo, en modo Asistentes, dentro de "data"
|
794
794
|
settings.experts.mode = Submodo para expertos
|
795
|
-
settings.experts.mode.desc = Submodo a utilizar para Expertos
|
795
|
+
settings.experts.mode.desc = Submodo a utilizar para Expertos
|
796
796
|
settings.font_size = Tamaño de fuente (texto plano de chat, bloc de notas)
|
797
797
|
settings.font_size.ctx = Tamaño de fuente (lista ctx)
|
798
798
|
settings.font_size.input = Tamaño de fuente (entrada)
|
@@ -346,7 +346,7 @@ dialog.start.title = La CLÉ API n’est pas encore configurée
|
|
346
346
|
dialog.start.title.text = Votre clé API n'est pas encore configurée...\nVous obtiendrez une clé API en vous inscrivant sur le site web d'OpenAI :
|
347
347
|
dialog.url.dismiss = Annuler
|
348
348
|
dialog.url.tip = Fournissez l'URL de la page Web que vous souhaitez joindre comme contexte supplémentaire, par exemple, https://fr.wikipedia.org/wiki/Elon_Musk, ou une vidéo YouTube à transcrire, par exemple, https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
349
|
-
dialog.url.title =
|
349
|
+
dialog.url.title = Web
|
350
350
|
dialog.url.update = Ajouter
|
351
351
|
dialog.workdir.change.confirm = Êtes-vous sûr de vouloir changer/déplacer le répertoire de travail vers :\n{path}?
|
352
352
|
dialog.workdir.change.empty.alert = Le répertoire n'est pas vide ! Opération annulée.
|
@@ -749,7 +749,7 @@ settings.agent.llama.steps = Étapes maximales (par itération)
|
|
749
749
|
settings.agent.llama.steps.desc = Étapes maximales dans une itération avant que l'objectif ne soit atteint
|
750
750
|
settings.agent.llama.verbose = Verbeux (sortie du journal vers la console)
|
751
751
|
settings.agent.mode = Mode interne pour les agents
|
752
|
-
settings.agent.mode.desc = Mode interne à utiliser en mode Agent
|
752
|
+
settings.agent.mode.desc = Mode interne à utiliser en mode Agent
|
753
753
|
settings.api_endpoint = Point de terminaison API
|
754
754
|
settings.api_endpoint.desc = URL du point de terminaison de l'API OpenAI (ou compatible), par défaut : https://api.openai.com/v1
|
755
755
|
settings.api_key = Clé API OpenAI
|
@@ -792,7 +792,7 @@ settings.dict.delete.confirm = Supprimer l'élément de la liste ?
|
|
792
792
|
settings.download.dir = Répertoire pour les téléchargements de fichiers
|
793
793
|
settings.download.dir.desc = Sous-répertoire pour les fichiers téléchargés, par exemple en mode Assistants, à l'intérieur de "data"
|
794
794
|
settings.experts.mode = Sous-mode pour les experts
|
795
|
-
settings.experts.mode.desc = Sous-mode utilisé pour les Experts
|
795
|
+
settings.experts.mode.desc = Sous-mode utilisé pour les Experts
|
796
796
|
settings.font_size = Taille de police (texte brut de chat, blocs-notes)
|
797
797
|
settings.font_size.ctx = Taille de police (liste ctx)
|
798
798
|
settings.font_size.input = Taille de police (entrée)
|
@@ -346,7 +346,7 @@ dialog.start.title = API KEY non ancora configurata
|
|
346
346
|
dialog.start.title.text = La tua API key non è ancora configurata...\nOtterrai una API key registrando un account sul sito web di OpenAI:
|
347
347
|
dialog.url.dismiss = Annulla
|
348
348
|
dialog.url.tip = Fornisci l'URL della pagina web che desideri allegare come contesto aggiuntivo, ad esempio, https://it.wikipedia.org/wiki/Elon_Musk, o un video YouTube da trascrivere, ad esempio, https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
349
|
-
dialog.url.title =
|
349
|
+
dialog.url.title = Web
|
350
350
|
dialog.url.update = Aggiungi
|
351
351
|
dialog.workdir.change.confirm = Sei sicuro di voler cambiare/spostare la workdir a:\n{path}?
|
352
352
|
dialog.workdir.change.empty.alert = La cartella non è vuota! Annullamento dell'operazione.
|
@@ -750,7 +750,7 @@ settings.agent.llama.steps = Passi massimi (per iterazione)
|
|
750
750
|
settings.agent.llama.steps.desc = Passi massimi in un'iterazione prima che l'obiettivo sia raggiunto
|
751
751
|
settings.agent.llama.verbose = Verboso (output del log sulla console)
|
752
752
|
settings.agent.mode = Modalità interna per agenti
|
753
|
-
settings.agent.mode.desc = Modalità interna da utilizzare in modalità Agente
|
753
|
+
settings.agent.mode.desc = Modalità interna da utilizzare in modalità Agente
|
754
754
|
settings.api_endpoint = Endpoint API
|
755
755
|
settings.api_endpoint.desc = URL del punto di terminazione API OpenAI (o compatibile), di default: https://api.openai.com/v1
|
756
756
|
settings.api_key = OpenAI API KEY
|
@@ -793,7 +793,7 @@ settings.dict.delete.confirm = Rimuovere l'elemento dall'elenco?
|
|
793
793
|
settings.download.dir = Directory per il download dei file
|
794
794
|
settings.download.dir.desc = Sottodirectory per i file scaricati, ad esempio in modalità Assistenti, all'interno di "data"
|
795
795
|
settings.experts.mode = Sottomodalità per esperti
|
796
|
-
settings.experts.mode.desc = Sottomodalità da utilizzare per gli Esperti
|
796
|
+
settings.experts.mode.desc = Sottomodalità da utilizzare per gli Esperti
|
797
797
|
settings.font_size = Dimensione del carattere (testo semplice della chat, blocchi appunti)
|
798
798
|
settings.font_size.ctx = Dimensione del carattere (lista dei contesti)
|
799
799
|
settings.font_size.input = Dimensione del carattere (input)
|
@@ -346,7 +346,7 @@ dialog.start.title = Klucz API nie jest zdefiniowany
|
|
346
346
|
dialog.start.title.text = Nie skonfigurowałeś jeszcze klucza API...\nKlucz API uzyskasz rejestrując konto na stronie internetowej OpenAI:
|
347
347
|
dialog.url.dismiss = Anuluj
|
348
348
|
dialog.url.tip = Podaj URL strony internetowej, którą chcesz dołączyć jako dodatkowy kontekst, np. https://pl.wikipedia.org/wiki/Elon_Musk, lub film na YouTube do transkrypcji, np. https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
349
|
-
dialog.url.title =
|
349
|
+
dialog.url.title = Web
|
350
350
|
dialog.url.update = Dodaj
|
351
351
|
dialog.workdir.change.confirm = Czy jesteś pewny, że chcesz zmienić/przenieść katalog roboczy do:\n{path}?
|
352
352
|
dialog.workdir.change.empty.alert = Katalog nie jest pusty! Anulowanie.
|
@@ -750,7 +750,7 @@ settings.agent.llama.steps = Maksymalna liczba kroków (na iterację)
|
|
750
750
|
settings.agent.llama.steps.desc = Maksymalna liczba kroków w jednej iteracji przed osiągnięciem celu
|
751
751
|
settings.agent.llama.verbose = Szczegółowy (logowanie do konsoli)
|
752
752
|
settings.agent.mode = Tryb wewnętrzny dla agentów
|
753
|
-
settings.agent.mode.desc = Tryb wewnętrzny do użycia w trybie Agenta
|
753
|
+
settings.agent.mode.desc = Tryb wewnętrzny do użycia w trybie Agenta
|
754
754
|
settings.api_endpoint = Punkt końcowy API
|
755
755
|
settings.api_endpoint.desc = Adres URL punktu końcowego API OpenAI (lub kompatybilnego), domyślnie: https://api.openai.com/v1
|
756
756
|
settings.api_key = Klucz API OpenAI
|
@@ -793,7 +793,7 @@ settings.dict.delete.confirm = Usunąć pozycję z listy?
|
|
793
793
|
settings.download.dir = Katalog na pliki do pobrania
|
794
794
|
settings.download.dir.desc = Podkatalog na pobrane pliki, np. w trybie Asystentów, wewnątrz "data"
|
795
795
|
settings.experts.mode = Podtryb dla ekspertów
|
796
|
-
settings.experts.mode.desc = Podtryb używany dla Ekspertów
|
796
|
+
settings.experts.mode.desc = Podtryb używany dla Ekspertów
|
797
797
|
settings.font_size = Rozmiar czcionki (czat plain-text, notatniki)
|
798
798
|
settings.font_size.ctx = Rozmiar czcionki (lista rozmów)
|
799
799
|
settings.font_size.input = Rozmiar czcionki (wejście)
|
@@ -346,7 +346,7 @@ dialog.start.title = API КЛЮЧ ще не налаштований
|
|
346
346
|
dialog.start.title.text = Ваш API ключ ще не налаштований...\nВи отримаєте API ключ, зареєструвавшись на сайті OpenAI:
|
347
347
|
dialog.url.dismiss = Скасувати
|
348
348
|
dialog.url.tip = Вкажіть URL веб-сторінки, яку ви хочете прикріпити як додатковий контекст, наприклад, https://uk.wikipedia.org/wiki/Ілон_Маск, або відео на YouTube для транскрипції, наприклад, https://www.youtube.com/watch?v=CRRlbK5w8AE.
|
349
|
-
dialog.url.title =
|
349
|
+
dialog.url.title = Web
|
350
350
|
dialog.url.update = Додати
|
351
351
|
dialog.workdir.change.confirm = Ви впевнені, що хочете змінити/перемістити робочий каталог до:\n{path}?
|
352
352
|
dialog.workdir.change.empty.alert = Каталог не порожній! Операцію скасовано.
|
@@ -749,7 +749,7 @@ settings.agent.llama.steps = Максимальна кількість крок
|
|
749
749
|
settings.agent.llama.steps.desc = Максимальна кількість кроків в одній ітерації перед досягненням мети
|
750
750
|
settings.agent.llama.verbose = Докладно (вивід журналу в консоль)
|
751
751
|
settings.agent.mode = Внутрішній режим для агентів
|
752
|
-
settings.agent.mode.desc = Внутрішній режим для використання в режимі Агента
|
752
|
+
settings.agent.mode.desc = Внутрішній режим для використання в режимі Агента
|
753
753
|
settings.api_endpoint = Кінцева точка API
|
754
754
|
settings.api_endpoint.desc = URL кінцевої точки API OpenAI (або сумісного), за замовчуванням: https://api.openai.com/v1
|
755
755
|
settings.api_key = OpenAI API КЛЮЧ
|
@@ -792,7 +792,7 @@ settings.dict.delete.confirm = Видалити елемент зі списку
|
|
792
792
|
settings.download.dir = Директорія для завантаження файлів
|
793
793
|
settings.download.dir.desc = Піддиректорія для завантажених файлів, наприклад, у режимі помічників, всередині "data"
|
794
794
|
settings.experts.mode = Підпрограма для експертів
|
795
|
-
settings.experts.mode.desc = Підпрограма для використання експертами
|
795
|
+
settings.experts.mode.desc = Підпрограма для використання експертами
|
796
796
|
settings.font_size = Розмір шрифту (звичайний текст чату, блокноти)
|
797
797
|
settings.font_size.ctx = Розмір шрифту (список ctx)
|
798
798
|
settings.font_size.input = Розмір шрифту (введення)
|
@@ -356,7 +356,7 @@ dialog.start.title = API KEY尚未配置
|
|
356
356
|
dialog.start.title.text = 您的API密鑰尚未配置...\n您將通過在OpenAI網站上註冊賬戶獲得API密鑰:
|
357
357
|
dialog.url.dismiss = 取消
|
358
358
|
dialog.url.tip = 提供您要附加为附加上下文的网页 URL,例如,https://zh.wikipedia.org/wiki/Elon_Musk,或一个要转录的 YouTube 视频,例如,https://www.youtube.com/watch?v=CRRlbK5w8AE。
|
359
|
-
dialog.url.title =
|
359
|
+
dialog.url.title = Web
|
360
360
|
dialog.url.update = 添加
|
361
361
|
dialog.workdir.change.confirm = 您确定要更改/移动工作目录到:\n{path}吗?
|
362
362
|
dialog.workdir.change.empty.alert = 目录不为空!操作取消。
|
@@ -851,7 +851,7 @@ settings.agent.llama.steps = 最大步骤数(每次迭代)
|
|
851
851
|
settings.agent.llama.steps.desc = 在达到目标前每次迭代的最大步骤数
|
852
852
|
settings.agent.llama.verbose = 详细(日志输出到控制台)
|
853
853
|
settings.agent.mode = 代理的内部模式
|
854
|
-
settings.agent.mode.desc =
|
854
|
+
settings.agent.mode.desc = 在代理模式下使用的子模式
|
855
855
|
settings.api_endpoint = API端点
|
856
856
|
settings.api_endpoint.desc = OpenAI API(或兼容)终端URL,默认为:https://api.openai.com/v1
|
857
857
|
settings.api_key = OpenAI API KEY
|
@@ -895,7 +895,7 @@ settings.dict.delete.confirm= 從列表中移除項目?
|
|
895
895
|
settings.download.dir= 文件下載目錄
|
896
896
|
settings.download.dir.desc= 下載文件的子目錄,例如在助手模式下,在"data"內部
|
897
897
|
settings.experts.mode = 专家子模式
|
898
|
-
settings.experts.mode.desc =
|
898
|
+
settings.experts.mode.desc = 用于专家的子模式
|
899
899
|
settings.font_size = 字号(聊天纯文本,记事本)
|
900
900
|
settings.font_size.ctx= 上下文列表字體大小
|
901
901
|
settings.font_size.input= 輸入字體大小
|
@@ -17,6 +17,8 @@ cmd.web_index_query.description = Enable `web_index_query` command execution.\nI
|
|
17
17
|
cmd.web_index_query.label = Enable: quick query the Web and external content
|
18
18
|
cmd.web_index_query.tooltip = Example prompt: Query the Website http://example.com about (question).
|
19
19
|
cmd.web_index.tooltip = Example prompt: Index the Website http://example.com.
|
20
|
+
cmd.web_request.description = Enable `web_request` command execution.\nIf enabled, model will be able to send any HTTP request to specified URL or API endpoint.
|
21
|
+
cmd.web_request.label = Enable: sending any HTTP requests
|
20
22
|
cmd.web_search.description = Enable `web_search` command execution.\nIf enabled, the model will be able to search the Web.
|
21
23
|
cmd.web_search.label = Enable: search the Web
|
22
24
|
cmd.web_search.tooltip = Example prompt: Search the Web for (question).
|
@@ -0,0 +1,21 @@
|
|
1
|
+
[LOCALE]
|
2
|
+
cmd.send_email.label = Enable: send email
|
3
|
+
cmd.send_email.description = Allows for sending emails.
|
4
|
+
cmd.get_emails.label = Enable: receive emails
|
5
|
+
cmd.get_emails.description = Allows for receiving emails.
|
6
|
+
cmd.get_email_body.label = Enable: get email body
|
7
|
+
cmd.get_email_body.description = Allows for receive email body.
|
8
|
+
plugin.description = Provides the ability to send, receive and read emails from SMTP server.
|
9
|
+
plugin.name = Mailer
|
10
|
+
smtp_host.description = SMTP Host, e.g. smtp.domain.com
|
11
|
+
smtp_host.label = Host
|
12
|
+
smtp_port_inbox.description = SMTP Port (Inbox), default: 995
|
13
|
+
smtp_port_inbox.label = Port (Inbox)
|
14
|
+
smtp_port_outbox.description = SMTP Port (Outbox), default: 465
|
15
|
+
smtp_port_outbox.label = Port (Outbox)
|
16
|
+
smtp_user.description = SMTP User, e.g. user@domain.com
|
17
|
+
smtp_user.label = User
|
18
|
+
smtp_password.description = SMTP Password
|
19
|
+
smtp_password.label = Password
|
20
|
+
from_email.description = From (email), e.g. me@domain.com
|
21
|
+
from_email.label = From (email)
|
pygpt_net/item/attachment.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
7
7
|
# MIT License #
|
8
8
|
# Created By : Marcin Szczygliński #
|
9
|
-
# Updated Date: 2024.
|
9
|
+
# Updated Date: 2024.12.16 01:00:00 #
|
10
10
|
# ================================================== #
|
11
11
|
|
12
12
|
import json
|
@@ -33,6 +33,7 @@ class AttachmentItem:
|
|
33
33
|
self.size = 0
|
34
34
|
self.send = False
|
35
35
|
self.type = self.TYPE_FILE
|
36
|
+
self.extra = {}
|
36
37
|
|
37
38
|
def serialize(self) -> dict:
|
38
39
|
"""
|
@@ -50,6 +51,7 @@ class AttachmentItem:
|
|
50
51
|
'ctx': self.ctx,
|
51
52
|
'vector_store_ids': self.vector_store_ids,
|
52
53
|
'type': self.type,
|
54
|
+
'extra': self.extra,
|
53
55
|
'meta_id': self.meta_id,
|
54
56
|
'send': self.send
|
55
57
|
}
|
@@ -78,6 +80,8 @@ class AttachmentItem:
|
|
78
80
|
self.vector_store_ids = data['vector_store_ids']
|
79
81
|
if 'type' in data:
|
80
82
|
self.type = data['type']
|
83
|
+
if 'extra' in data:
|
84
|
+
self.extra = data['extra']
|
81
85
|
if 'meta_id' in data:
|
82
86
|
self.meta_id = data['meta_id']
|
83
87
|
if 'send' in data:
|