pygpt-net 2.7.2__py3-none-any.whl → 2.7.4__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 +12 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +382 -350
- pygpt_net/controller/chat/attachment.py +5 -1
- pygpt_net/controller/chat/image.py +40 -5
- pygpt_net/controller/files/files.py +3 -1
- pygpt_net/controller/layout/layout.py +2 -2
- pygpt_net/controller/media/media.py +70 -1
- pygpt_net/controller/theme/nodes.py +2 -1
- pygpt_net/controller/ui/mode.py +5 -1
- pygpt_net/controller/ui/ui.py +17 -2
- pygpt_net/core/filesystem/url.py +4 -1
- pygpt_net/core/render/web/helpers.py +5 -0
- pygpt_net/data/config/config.json +5 -4
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/settings.json +0 -14
- pygpt_net/data/css/web-blocks.css +3 -0
- pygpt_net/data/css/web-chatgpt.css +3 -0
- pygpt_net/data/locale/locale.de.ini +6 -0
- pygpt_net/data/locale/locale.en.ini +7 -1
- pygpt_net/data/locale/locale.es.ini +6 -0
- pygpt_net/data/locale/locale.fr.ini +6 -0
- pygpt_net/data/locale/locale.it.ini +6 -0
- pygpt_net/data/locale/locale.pl.ini +7 -1
- pygpt_net/data/locale/locale.uk.ini +6 -0
- pygpt_net/data/locale/locale.zh.ini +6 -0
- pygpt_net/launcher.py +115 -55
- pygpt_net/preload.py +243 -0
- pygpt_net/provider/api/google/image.py +317 -10
- pygpt_net/provider/api/google/video.py +160 -4
- pygpt_net/provider/api/openai/image.py +201 -93
- pygpt_net/provider/api/openai/video.py +99 -24
- pygpt_net/provider/api/x_ai/image.py +25 -2
- pygpt_net/provider/core/config/patch.py +17 -1
- pygpt_net/ui/layout/chat/input.py +20 -2
- pygpt_net/ui/layout/chat/painter.py +6 -4
- pygpt_net/ui/layout/toolbox/image.py +21 -11
- pygpt_net/ui/layout/toolbox/raw.py +2 -2
- pygpt_net/ui/layout/toolbox/video.py +22 -9
- pygpt_net/ui/main.py +84 -3
- pygpt_net/ui/widget/dialog/base.py +3 -10
- pygpt_net/ui/widget/option/combo.py +119 -1
- pygpt_net/ui/widget/textarea/input_extra.py +664 -0
- {pygpt_net-2.7.2.dist-info → pygpt_net-2.7.4.dist-info}/METADATA +27 -20
- {pygpt_net-2.7.2.dist-info → pygpt_net-2.7.4.dist-info}/RECORD +48 -46
- {pygpt_net-2.7.2.dist-info → pygpt_net-2.7.4.dist-info}/LICENSE +0 -0
- {pygpt_net-2.7.2.dist-info → pygpt_net-2.7.4.dist-info}/WHEEL +0 -0
- {pygpt_net-2.7.2.dist-info → pygpt_net-2.7.4.dist-info}/entry_points.txt +0 -0
pygpt_net/app.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date: 2025.
|
|
9
|
+
# Updated Date: 2025.12.31 17:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import os
|
|
@@ -19,7 +19,7 @@ import pygpt_net.icons_rc
|
|
|
19
19
|
from pygpt_net.utils import set_env
|
|
20
20
|
|
|
21
21
|
# app env
|
|
22
|
-
set_env("PYGPT_APP_ENV", "prod", allow_overwrite=True)
|
|
22
|
+
set_env("PYGPT_APP_ENV", "prod", allow_overwrite=True) # dev | prod
|
|
23
23
|
# IF dev, JS will be loaded from `data/js/app/*` [js_rc.py], not from `data/js/app.min.js`
|
|
24
24
|
# recompile js_rc.py with: bin/resources.sh, minify to app.min.js with: bin/minify.sh
|
|
25
25
|
|
|
@@ -64,152 +64,11 @@ def open_wrapper(file, mode='r', *args, **kwargs):
|
|
|
64
64
|
return io.StringIO("")
|
|
65
65
|
return _original_open(file, mode, *args, **kwargs)
|
|
66
66
|
|
|
67
|
+
|
|
67
68
|
builtins.open = open_wrapper
|
|
68
69
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# plugins
|
|
72
|
-
from pygpt_net.plugin.voice_control import Plugin as VoiceControlPlugin
|
|
73
|
-
from pygpt_net.plugin.audio_output import Plugin as AudioOutputPlugin
|
|
74
|
-
from pygpt_net.plugin.audio_input import Plugin as AudioInputPlugin
|
|
75
|
-
from pygpt_net.plugin.cmd_api import Plugin as CmdApiPlugin
|
|
76
|
-
from pygpt_net.plugin.cmd_code_interpreter import Plugin as CmdCodeInterpreterPlugin
|
|
77
|
-
from pygpt_net.plugin.cmd_custom import Plugin as CmdCustomCommandPlugin
|
|
78
|
-
from pygpt_net.plugin.cmd_files import Plugin as CmdFilesPlugin
|
|
79
|
-
from pygpt_net.plugin.cmd_history import Plugin as CtxHistoryPlugin
|
|
80
|
-
from pygpt_net.plugin.cmd_mouse_control import Plugin as CmdMousePlugin
|
|
81
|
-
from pygpt_net.plugin.cmd_serial import Plugin as CmdSerialPlugin
|
|
82
|
-
from pygpt_net.plugin.cmd_system import Plugin as CmdSystemPlugin
|
|
83
|
-
from pygpt_net.plugin.cmd_web import Plugin as CmdWebPlugin
|
|
84
|
-
from pygpt_net.plugin.crontab import Plugin as CrontabPlugin
|
|
85
|
-
from pygpt_net.plugin.extra_prompt import Plugin as ExtraPromptPlugin
|
|
86
|
-
from pygpt_net.plugin.experts import Plugin as ExpertsPlugin
|
|
87
|
-
from pygpt_net.plugin.idx_llama_index import Plugin as IdxLlamaIndexPlugin
|
|
88
|
-
from pygpt_net.plugin.openai_dalle import Plugin as OpenAIDallePlugin
|
|
89
|
-
from pygpt_net.plugin.openai_vision import Plugin as OpenAIVisionPlugin
|
|
90
|
-
from pygpt_net.plugin.real_time import Plugin as RealTimePlugin
|
|
91
|
-
from pygpt_net.plugin.agent import Plugin as AgentPlugin
|
|
92
|
-
from pygpt_net.plugin.mailer import Plugin as MailerPlugin
|
|
93
|
-
from pygpt_net.plugin.google import Plugin as GooglePlugin
|
|
94
|
-
from pygpt_net.plugin.twitter import Plugin as TwitterPlugin
|
|
95
|
-
from pygpt_net.plugin.facebook import Plugin as FacebookPlugin
|
|
96
|
-
from pygpt_net.plugin.telegram import Plugin as TelegramPlugin
|
|
97
|
-
from pygpt_net.plugin.slack import Plugin as SlackPlugin
|
|
98
|
-
from pygpt_net.plugin.github import Plugin as GithubPlugin
|
|
99
|
-
from pygpt_net.plugin.bitbucket import Plugin as BitbucketPlugin
|
|
100
|
-
from pygpt_net.plugin.server import Plugin as ServerPlugin
|
|
101
|
-
from pygpt_net.plugin.tuya import Plugin as TuyaPlugin
|
|
102
|
-
from pygpt_net.plugin.wikipedia import Plugin as WikipediaPlugin
|
|
103
|
-
from pygpt_net.plugin.mcp import Plugin as MCPPlugin
|
|
104
|
-
from pygpt_net.plugin.wolfram import Plugin as WolframPlugin
|
|
105
|
-
from pygpt_net.plugin.osm import Plugin as OSMPlugin
|
|
106
|
-
|
|
107
|
-
# agents (Llama-index)
|
|
108
|
-
from pygpt_net.provider.agents.llama_index.legacy.openai_assistant import OpenAIAssistantAgent
|
|
109
|
-
from pygpt_net.provider.agents.llama_index.planner_workflow import PlannerAgent as PlannerWorkflowAgent
|
|
110
|
-
from pygpt_net.provider.agents.llama_index.openai_workflow import OpenAIAgent as OpenAIWorkflowAgent
|
|
111
|
-
from pygpt_net.provider.agents.llama_index.react_workflow import ReactWorkflowAgent
|
|
112
|
-
from pygpt_net.provider.agents.llama_index.codeact_workflow import CodeActAgent
|
|
113
|
-
from pygpt_net.provider.agents.llama_index.supervisor_workflow import SupervisorAgent as LlamaSupervisorAgent
|
|
114
|
-
from pygpt_net.provider.agents.llama_index.flow_from_schema import Agent as LlamaCustomAgent # builder schema
|
|
115
|
-
|
|
116
|
-
# agents (OpenAI-Agents)
|
|
117
|
-
from pygpt_net.provider.agents.openai.agent import Agent as OpenAIAgentsBase
|
|
118
|
-
from pygpt_net.provider.agents.openai.agent_with_experts import Agent as OpenAIAgentsExperts
|
|
119
|
-
from pygpt_net.provider.agents.openai.agent_with_experts_feedback import Agent as OpenAIAgentsExpertsFeedback
|
|
120
|
-
from pygpt_net.provider.agents.openai.agent_with_feedback import Agent as OpenAIAgentFeedback
|
|
121
|
-
from pygpt_net.provider.agents.openai.bot_researcher import Agent as OpenAIAgentBotResearcher
|
|
122
|
-
from pygpt_net.provider.agents.openai.agent_planner import Agent as OpenAIAgentPlanner
|
|
123
|
-
from pygpt_net.provider.agents.openai.evolve import Agent as OpenAIAgentsEvolve
|
|
124
|
-
from pygpt_net.provider.agents.openai.agent_b2b import Agent as OpenAIAgentsB2B
|
|
125
|
-
from pygpt_net.provider.agents.openai.supervisor import Agent as OpenAIAgentSupervisor
|
|
126
|
-
from pygpt_net.provider.agents.openai.flow_from_schema import Agent as OpenAICustomAgent # builder schema
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
# LLM wrapper providers (langchain, llama-index, embeddings)
|
|
130
|
-
from pygpt_net.provider.llms.anthropic import AnthropicLLM
|
|
131
|
-
from pygpt_net.provider.llms.azure_openai import AzureOpenAILLM
|
|
132
|
-
from pygpt_net.provider.llms.deepseek_api import DeepseekApiLLM
|
|
133
|
-
from pygpt_net.provider.llms.google import GoogleLLM
|
|
134
|
-
# from pygpt_net.provider.llms.hugging_face import HuggingFaceLLM
|
|
135
|
-
from pygpt_net.provider.llms.hugging_face_api import HuggingFaceApiLLM
|
|
136
|
-
from pygpt_net.provider.llms.hugging_face_router import HuggingFaceRouterLLM
|
|
137
|
-
from pygpt_net.provider.llms.local import LocalLLM
|
|
138
|
-
from pygpt_net.provider.llms.mistral import MistralAILLM
|
|
139
|
-
from pygpt_net.provider.llms.ollama import OllamaLLM
|
|
140
|
-
from pygpt_net.provider.llms.openai import OpenAILLM
|
|
141
|
-
from pygpt_net.provider.llms.perplexity import PerplexityLLM
|
|
142
|
-
from pygpt_net.provider.llms.x_ai import xAILLM
|
|
143
|
-
from pygpt_net.provider.llms.open_router import OpenRouterLLM
|
|
144
|
-
|
|
145
|
-
# vector store providers (llama-index)
|
|
146
|
-
from pygpt_net.provider.vector_stores.chroma import ChromaProvider
|
|
147
|
-
from pygpt_net.provider.vector_stores.elasticsearch import ElasticsearchProvider
|
|
148
|
-
from pygpt_net.provider.vector_stores.pinecode import PinecodeProvider
|
|
149
|
-
from pygpt_net.provider.vector_stores.qdrant import QdrantProvider
|
|
150
|
-
from pygpt_net.provider.vector_stores.redis import RedisProvider
|
|
151
|
-
from pygpt_net.provider.vector_stores.simple import SimpleProvider
|
|
152
|
-
|
|
153
|
-
# data loader providers (llama-index)
|
|
154
|
-
from pygpt_net.provider.loaders.file_csv import Loader as CsvLoader
|
|
155
|
-
from pygpt_net.provider.loaders.file_docx import Loader as DocxLoader
|
|
156
|
-
from pygpt_net.provider.loaders.file_epub import Loader as EpubLoader
|
|
157
|
-
from pygpt_net.provider.loaders.file_excel import Loader as ExcelLoader
|
|
158
|
-
from pygpt_net.provider.loaders.file_html import Loader as HtmlLoader
|
|
159
|
-
from pygpt_net.provider.loaders.file_image_vision import Loader as ImageVisionLoader
|
|
160
|
-
from pygpt_net.provider.loaders.file_ipynb import Loader as IPYNBLoader
|
|
161
|
-
from pygpt_net.provider.loaders.file_json import Loader as JsonLoader
|
|
162
|
-
from pygpt_net.provider.loaders.file_markdown import Loader as MarkdownLoader
|
|
163
|
-
from pygpt_net.provider.loaders.file_pdf import Loader as PdfLoader
|
|
164
|
-
from pygpt_net.provider.loaders.file_video_audio import Loader as VideoAudioLoader
|
|
165
|
-
from pygpt_net.provider.loaders.file_xml import Loader as XmlLoader
|
|
166
|
-
from pygpt_net.provider.loaders.web_bitbucket import Loader as BitbucketRepoLoader
|
|
167
|
-
from pygpt_net.provider.loaders.web_chatgpt_retrieval import Loader as ChatGptRetrievalLoader
|
|
168
|
-
from pygpt_net.provider.loaders.web_database import Loader as DatabaseLoader
|
|
169
|
-
from pygpt_net.provider.loaders.web_github_issues import Loader as GithubIssuesLoader
|
|
170
|
-
from pygpt_net.provider.loaders.web_github_repo import Loader as GithubRepoLoader
|
|
171
|
-
from pygpt_net.provider.loaders.web_google_calendar import Loader as GoogleCalendarLoader
|
|
172
|
-
from pygpt_net.provider.loaders.web_google_docs import Loader as GoogleDocsLoader
|
|
173
|
-
from pygpt_net.provider.loaders.web_google_drive import Loader as GoogleDriveLoader
|
|
174
|
-
from pygpt_net.provider.loaders.web_google_gmail import Loader as GoogleGmailLoader
|
|
175
|
-
from pygpt_net.provider.loaders.web_google_keep import Loader as GoogleKeepLoader
|
|
176
|
-
from pygpt_net.provider.loaders.web_google_sheets import Loader as GoogleSheetsLoader
|
|
177
|
-
from pygpt_net.provider.loaders.web_microsoft_onedrive import Loader as MicrosoftOneDriveLoader
|
|
178
|
-
from pygpt_net.provider.loaders.web_rss import Loader as RssLoader
|
|
179
|
-
from pygpt_net.provider.loaders.web_sitemap import Loader as SitemapLoader
|
|
180
|
-
from pygpt_net.provider.loaders.web_twitter import Loader as TwitterLoader
|
|
181
|
-
from pygpt_net.provider.loaders.web_page import Loader as WebPageLoader
|
|
182
|
-
from pygpt_net.provider.loaders.web_yt import Loader as YouTubeLoader
|
|
183
|
-
|
|
184
|
-
# audio providers (input, output)
|
|
185
|
-
from pygpt_net.provider.audio_input.openai_whisper import OpenAIWhisper
|
|
186
|
-
from pygpt_net.provider.audio_input.openai_whisper_local import OpenAIWhisperLocal
|
|
187
|
-
from pygpt_net.provider.audio_input.google_speech_recognition import GoogleSpeechRecognition
|
|
188
|
-
from pygpt_net.provider.audio_input.google_cloud_speech_recognition import GoogleCloudSpeechRecognition
|
|
189
|
-
from pygpt_net.provider.audio_input.google_genai import GoogleGenAIAudioInput
|
|
190
|
-
from pygpt_net.provider.audio_input.bing_speech_recognition import BingSpeechRecognition
|
|
191
|
-
from pygpt_net.provider.audio_output.openai_tts import OpenAITextToSpeech
|
|
192
|
-
from pygpt_net.provider.audio_output.ms_azure_tts import MSAzureTextToSpeech
|
|
193
|
-
from pygpt_net.provider.audio_output.google_tts import GoogleTextToSpeech
|
|
194
|
-
from pygpt_net.provider.audio_output.google_genai_tts import GoogleGenAITextToSpeech
|
|
195
|
-
from pygpt_net.provider.audio_output.eleven_labs import ElevenLabsTextToSpeech
|
|
196
|
-
|
|
197
|
-
# web search engine providers
|
|
198
|
-
from pygpt_net.provider.web.google_custom_search import GoogleCustomSearch
|
|
199
|
-
from pygpt_net.provider.web.microsoft_bing import MicrosoftBingSearch
|
|
200
|
-
from pygpt_net.provider.web.duckduck_search import DuckDuckGoSearch
|
|
201
|
-
|
|
202
|
-
# tools
|
|
203
|
-
from pygpt_net.tools.indexer import IndexerTool
|
|
204
|
-
from pygpt_net.tools.audio_transcriber import AudioTranscriber as AudioTranscriberTool
|
|
205
|
-
from pygpt_net.tools.code_interpreter import CodeInterpreter as CodeInterpreterTool
|
|
206
|
-
from pygpt_net.tools.image_viewer import ImageViewer as ImageViewerTool
|
|
207
|
-
from pygpt_net.tools.media_player import MediaPlayer as MediaPlayerTool
|
|
208
|
-
from pygpt_net.tools.text_editor import TextEditor as TextEditorTool
|
|
209
|
-
from pygpt_net.tools.html_canvas import HtmlCanvas as HtmlCanvasTool
|
|
210
|
-
from pygpt_net.tools.translator import Translator as TranslatorTool
|
|
211
|
-
from pygpt_net.tools.web_browser import WebBrowser as WebBrowserTool
|
|
212
|
-
from pygpt_net.tools.agent_builder import AgentBuilder as AgentBuilderTool
|
|
70
|
+
# -------------------------------------------------- #
|
|
71
|
+
|
|
213
72
|
|
|
214
73
|
def run(**kwargs):
|
|
215
74
|
"""
|
|
@@ -332,209 +191,382 @@ def run(**kwargs):
|
|
|
332
191
|
)
|
|
333
192
|
|
|
334
193
|
"""
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
#
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
launcher
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
194
|
+
import multiprocessing as mp
|
|
195
|
+
|
|
196
|
+
mp.freeze_support() # required for PyInstaller
|
|
197
|
+
|
|
198
|
+
# Start lightweight splash in a separate process (no interference with the main Qt app)
|
|
199
|
+
from pygpt_net.__init__ import __version__
|
|
200
|
+
from pygpt_net.preload import _start_preloader
|
|
201
|
+
_preloader = _start_preloader(title="PyGPT", message=f"v{__version__}")
|
|
202
|
+
|
|
203
|
+
from pygpt_net.launcher import Launcher
|
|
204
|
+
|
|
205
|
+
try:
|
|
206
|
+
# initialize app launcher
|
|
207
|
+
launcher = Launcher()
|
|
208
|
+
|
|
209
|
+
# Attach preloader to the launcher so it can be closed when the main window is actually ready
|
|
210
|
+
if _preloader:
|
|
211
|
+
launcher.attach_preloader(_preloader)
|
|
212
|
+
|
|
213
|
+
# plugins
|
|
214
|
+
from pygpt_net.plugin.voice_control import Plugin as VoiceControlPlugin
|
|
215
|
+
from pygpt_net.plugin.audio_output import Plugin as AudioOutputPlugin
|
|
216
|
+
from pygpt_net.plugin.audio_input import Plugin as AudioInputPlugin
|
|
217
|
+
from pygpt_net.plugin.cmd_api import Plugin as CmdApiPlugin
|
|
218
|
+
from pygpt_net.plugin.cmd_code_interpreter import Plugin as CmdCodeInterpreterPlugin
|
|
219
|
+
from pygpt_net.plugin.cmd_custom import Plugin as CmdCustomCommandPlugin
|
|
220
|
+
from pygpt_net.plugin.cmd_files import Plugin as CmdFilesPlugin
|
|
221
|
+
from pygpt_net.plugin.cmd_history import Plugin as CtxHistoryPlugin
|
|
222
|
+
from pygpt_net.plugin.cmd_mouse_control import Plugin as CmdMousePlugin
|
|
223
|
+
from pygpt_net.plugin.cmd_serial import Plugin as CmdSerialPlugin
|
|
224
|
+
from pygpt_net.plugin.cmd_system import Plugin as CmdSystemPlugin
|
|
225
|
+
from pygpt_net.plugin.cmd_web import Plugin as CmdWebPlugin
|
|
226
|
+
from pygpt_net.plugin.crontab import Plugin as CrontabPlugin
|
|
227
|
+
from pygpt_net.plugin.extra_prompt import Plugin as ExtraPromptPlugin
|
|
228
|
+
from pygpt_net.plugin.experts import Plugin as ExpertsPlugin
|
|
229
|
+
from pygpt_net.plugin.idx_llama_index import Plugin as IdxLlamaIndexPlugin
|
|
230
|
+
from pygpt_net.plugin.openai_dalle import Plugin as OpenAIDallePlugin
|
|
231
|
+
from pygpt_net.plugin.openai_vision import Plugin as OpenAIVisionPlugin
|
|
232
|
+
from pygpt_net.plugin.real_time import Plugin as RealTimePlugin
|
|
233
|
+
from pygpt_net.plugin.agent import Plugin as AgentPlugin
|
|
234
|
+
from pygpt_net.plugin.mailer import Plugin as MailerPlugin
|
|
235
|
+
from pygpt_net.plugin.google import Plugin as GooglePlugin
|
|
236
|
+
from pygpt_net.plugin.twitter import Plugin as TwitterPlugin
|
|
237
|
+
from pygpt_net.plugin.facebook import Plugin as FacebookPlugin
|
|
238
|
+
from pygpt_net.plugin.telegram import Plugin as TelegramPlugin
|
|
239
|
+
from pygpt_net.plugin.slack import Plugin as SlackPlugin
|
|
240
|
+
from pygpt_net.plugin.github import Plugin as GithubPlugin
|
|
241
|
+
from pygpt_net.plugin.bitbucket import Plugin as BitbucketPlugin
|
|
242
|
+
from pygpt_net.plugin.server import Plugin as ServerPlugin
|
|
243
|
+
from pygpt_net.plugin.tuya import Plugin as TuyaPlugin
|
|
244
|
+
from pygpt_net.plugin.wikipedia import Plugin as WikipediaPlugin
|
|
245
|
+
from pygpt_net.plugin.mcp import Plugin as MCPPlugin
|
|
246
|
+
from pygpt_net.plugin.wolfram import Plugin as WolframPlugin
|
|
247
|
+
from pygpt_net.plugin.osm import Plugin as OSMPlugin
|
|
248
|
+
|
|
249
|
+
# agents (Llama-index)
|
|
250
|
+
from pygpt_net.provider.agents.llama_index.legacy.openai_assistant import OpenAIAssistantAgent
|
|
251
|
+
from pygpt_net.provider.agents.llama_index.planner_workflow import PlannerAgent as PlannerWorkflowAgent
|
|
252
|
+
from pygpt_net.provider.agents.llama_index.openai_workflow import OpenAIAgent as OpenAIWorkflowAgent
|
|
253
|
+
from pygpt_net.provider.agents.llama_index.react_workflow import ReactWorkflowAgent
|
|
254
|
+
from pygpt_net.provider.agents.llama_index.codeact_workflow import CodeActAgent
|
|
255
|
+
from pygpt_net.provider.agents.llama_index.supervisor_workflow import SupervisorAgent as LlamaSupervisorAgent
|
|
256
|
+
from pygpt_net.provider.agents.llama_index.flow_from_schema import Agent as LlamaCustomAgent # builder schema
|
|
257
|
+
|
|
258
|
+
# agents (OpenAI-Agents)
|
|
259
|
+
from pygpt_net.provider.agents.openai.agent import Agent as OpenAIAgentsBase
|
|
260
|
+
from pygpt_net.provider.agents.openai.agent_with_experts import Agent as OpenAIAgentsExperts
|
|
261
|
+
from pygpt_net.provider.agents.openai.agent_with_experts_feedback import Agent as OpenAIAgentsExpertsFeedback
|
|
262
|
+
from pygpt_net.provider.agents.openai.agent_with_feedback import Agent as OpenAIAgentFeedback
|
|
263
|
+
from pygpt_net.provider.agents.openai.bot_researcher import Agent as OpenAIAgentBotResearcher
|
|
264
|
+
from pygpt_net.provider.agents.openai.agent_planner import Agent as OpenAIAgentPlanner
|
|
265
|
+
from pygpt_net.provider.agents.openai.evolve import Agent as OpenAIAgentsEvolve
|
|
266
|
+
from pygpt_net.provider.agents.openai.agent_b2b import Agent as OpenAIAgentsB2B
|
|
267
|
+
from pygpt_net.provider.agents.openai.supervisor import Agent as OpenAIAgentSupervisor
|
|
268
|
+
from pygpt_net.provider.agents.openai.flow_from_schema import Agent as OpenAICustomAgent # builder schema
|
|
269
|
+
|
|
270
|
+
# LLM wrapper providers (langchain, llama-index, embeddings)
|
|
271
|
+
from pygpt_net.provider.llms.anthropic import AnthropicLLM
|
|
272
|
+
from pygpt_net.provider.llms.azure_openai import AzureOpenAILLM
|
|
273
|
+
from pygpt_net.provider.llms.deepseek_api import DeepseekApiLLM
|
|
274
|
+
from pygpt_net.provider.llms.google import GoogleLLM
|
|
275
|
+
# from pygpt_net.provider.llms.hugging_face import HuggingFaceLLM
|
|
276
|
+
from pygpt_net.provider.llms.hugging_face_api import HuggingFaceApiLLM
|
|
277
|
+
from pygpt_net.provider.llms.hugging_face_router import HuggingFaceRouterLLM
|
|
278
|
+
from pygpt_net.provider.llms.local import LocalLLM
|
|
279
|
+
from pygpt_net.provider.llms.mistral import MistralAILLM
|
|
280
|
+
from pygpt_net.provider.llms.ollama import OllamaLLM
|
|
281
|
+
from pygpt_net.provider.llms.openai import OpenAILLM
|
|
282
|
+
from pygpt_net.provider.llms.perplexity import PerplexityLLM
|
|
283
|
+
from pygpt_net.provider.llms.x_ai import xAILLM
|
|
284
|
+
from pygpt_net.provider.llms.open_router import OpenRouterLLM
|
|
285
|
+
|
|
286
|
+
# vector store providers (llama-index)
|
|
287
|
+
from pygpt_net.provider.vector_stores.chroma import ChromaProvider
|
|
288
|
+
from pygpt_net.provider.vector_stores.elasticsearch import ElasticsearchProvider
|
|
289
|
+
from pygpt_net.provider.vector_stores.pinecode import PinecodeProvider
|
|
290
|
+
from pygpt_net.provider.vector_stores.qdrant import QdrantProvider
|
|
291
|
+
from pygpt_net.provider.vector_stores.redis import RedisProvider
|
|
292
|
+
from pygpt_net.provider.vector_stores.simple import SimpleProvider
|
|
293
|
+
|
|
294
|
+
# data loader providers (llama-index)
|
|
295
|
+
from pygpt_net.provider.loaders.file_csv import Loader as CsvLoader
|
|
296
|
+
from pygpt_net.provider.loaders.file_docx import Loader as DocxLoader
|
|
297
|
+
from pygpt_net.provider.loaders.file_epub import Loader as EpubLoader
|
|
298
|
+
from pygpt_net.provider.loaders.file_excel import Loader as ExcelLoader
|
|
299
|
+
from pygpt_net.provider.loaders.file_html import Loader as HtmlLoader
|
|
300
|
+
from pygpt_net.provider.loaders.file_image_vision import Loader as ImageVisionLoader
|
|
301
|
+
from pygpt_net.provider.loaders.file_ipynb import Loader as IPYNBLoader
|
|
302
|
+
from pygpt_net.provider.loaders.file_json import Loader as JsonLoader
|
|
303
|
+
from pygpt_net.provider.loaders.file_markdown import Loader as MarkdownLoader
|
|
304
|
+
from pygpt_net.provider.loaders.file_pdf import Loader as PdfLoader
|
|
305
|
+
from pygpt_net.provider.loaders.file_video_audio import Loader as VideoAudioLoader
|
|
306
|
+
from pygpt_net.provider.loaders.file_xml import Loader as XmlLoader
|
|
307
|
+
from pygpt_net.provider.loaders.web_bitbucket import Loader as BitbucketRepoLoader
|
|
308
|
+
from pygpt_net.provider.loaders.web_chatgpt_retrieval import Loader as ChatGptRetrievalLoader
|
|
309
|
+
from pygpt_net.provider.loaders.web_database import Loader as DatabaseLoader
|
|
310
|
+
from pygpt_net.provider.loaders.web_github_issues import Loader as GithubIssuesLoader
|
|
311
|
+
from pygpt_net.provider.loaders.web_github_repo import Loader as GithubRepoLoader
|
|
312
|
+
from pygpt_net.provider.loaders.web_google_calendar import Loader as GoogleCalendarLoader
|
|
313
|
+
from pygpt_net.provider.loaders.web_google_docs import Loader as GoogleDocsLoader
|
|
314
|
+
from pygpt_net.provider.loaders.web_google_drive import Loader as GoogleDriveLoader
|
|
315
|
+
from pygpt_net.provider.loaders.web_google_gmail import Loader as GoogleGmailLoader
|
|
316
|
+
from pygpt_net.provider.loaders.web_google_keep import Loader as GoogleKeepLoader
|
|
317
|
+
from pygpt_net.provider.loaders.web_google_sheets import Loader as GoogleSheetsLoader
|
|
318
|
+
from pygpt_net.provider.loaders.web_microsoft_onedrive import Loader as MicrosoftOneDriveLoader
|
|
319
|
+
from pygpt_net.provider.loaders.web_rss import Loader as RssLoader
|
|
320
|
+
from pygpt_net.provider.loaders.web_sitemap import Loader as SitemapLoader
|
|
321
|
+
from pygpt_net.provider.loaders.web_twitter import Loader as TwitterLoader
|
|
322
|
+
from pygpt_net.provider.loaders.web_page import Loader as WebPageLoader
|
|
323
|
+
from pygpt_net.provider.loaders.web_yt import Loader as YouTubeLoader
|
|
324
|
+
|
|
325
|
+
# audio providers (input, output)
|
|
326
|
+
from pygpt_net.provider.audio_input.openai_whisper import OpenAIWhisper
|
|
327
|
+
from pygpt_net.provider.audio_input.openai_whisper_local import OpenAIWhisperLocal
|
|
328
|
+
from pygpt_net.provider.audio_input.google_speech_recognition import GoogleSpeechRecognition
|
|
329
|
+
from pygpt_net.provider.audio_input.google_cloud_speech_recognition import GoogleCloudSpeechRecognition
|
|
330
|
+
from pygpt_net.provider.audio_input.google_genai import GoogleGenAIAudioInput
|
|
331
|
+
from pygpt_net.provider.audio_input.bing_speech_recognition import BingSpeechRecognition
|
|
332
|
+
from pygpt_net.provider.audio_output.openai_tts import OpenAITextToSpeech
|
|
333
|
+
from pygpt_net.provider.audio_output.ms_azure_tts import MSAzureTextToSpeech
|
|
334
|
+
from pygpt_net.provider.audio_output.google_tts import GoogleTextToSpeech
|
|
335
|
+
from pygpt_net.provider.audio_output.google_genai_tts import GoogleGenAITextToSpeech
|
|
336
|
+
from pygpt_net.provider.audio_output.eleven_labs import ElevenLabsTextToSpeech
|
|
337
|
+
|
|
338
|
+
# web search engine providers
|
|
339
|
+
from pygpt_net.provider.web.google_custom_search import GoogleCustomSearch
|
|
340
|
+
from pygpt_net.provider.web.microsoft_bing import MicrosoftBingSearch
|
|
341
|
+
from pygpt_net.provider.web.duckduck_search import DuckDuckGoSearch
|
|
342
|
+
|
|
343
|
+
# tools
|
|
344
|
+
from pygpt_net.tools.indexer import IndexerTool
|
|
345
|
+
from pygpt_net.tools.audio_transcriber import AudioTranscriber as AudioTranscriberTool
|
|
346
|
+
from pygpt_net.tools.code_interpreter import CodeInterpreter as CodeInterpreterTool
|
|
347
|
+
from pygpt_net.tools.image_viewer import ImageViewer as ImageViewerTool
|
|
348
|
+
from pygpt_net.tools.media_player import MediaPlayer as MediaPlayerTool
|
|
349
|
+
from pygpt_net.tools.text_editor import TextEditor as TextEditorTool
|
|
350
|
+
from pygpt_net.tools.html_canvas import HtmlCanvas as HtmlCanvasTool
|
|
351
|
+
from pygpt_net.tools.translator import Translator as TranslatorTool
|
|
352
|
+
from pygpt_net.tools.web_browser import WebBrowser as WebBrowserTool
|
|
353
|
+
from pygpt_net.tools.agent_builder import AgentBuilder as AgentBuilderTool
|
|
354
|
+
|
|
355
|
+
launcher.init()
|
|
356
|
+
|
|
357
|
+
# register audio providers
|
|
358
|
+
launcher.add_audio_input(OpenAIWhisper())
|
|
359
|
+
launcher.add_audio_input(OpenAIWhisperLocal())
|
|
360
|
+
launcher.add_audio_input(GoogleSpeechRecognition())
|
|
361
|
+
launcher.add_audio_input(GoogleCloudSpeechRecognition())
|
|
362
|
+
launcher.add_audio_input(GoogleGenAIAudioInput())
|
|
363
|
+
launcher.add_audio_input(BingSpeechRecognition())
|
|
364
|
+
launcher.add_audio_output(OpenAITextToSpeech())
|
|
365
|
+
launcher.add_audio_output(MSAzureTextToSpeech())
|
|
366
|
+
launcher.add_audio_output(GoogleTextToSpeech())
|
|
367
|
+
launcher.add_audio_output(GoogleGenAITextToSpeech())
|
|
368
|
+
launcher.add_audio_output(ElevenLabsTextToSpeech())
|
|
369
|
+
|
|
370
|
+
# register custom audio providers
|
|
371
|
+
providers = kwargs.get('audio_input', None)
|
|
372
|
+
if isinstance(providers, list):
|
|
373
|
+
for provider in providers:
|
|
374
|
+
launcher.add_audio_input(provider)
|
|
375
|
+
|
|
376
|
+
providers = kwargs.get('audio_output', None)
|
|
377
|
+
if isinstance(providers, list):
|
|
378
|
+
for provider in providers:
|
|
379
|
+
launcher.add_audio_output(provider)
|
|
380
|
+
|
|
381
|
+
# register web providers
|
|
382
|
+
launcher.add_web(GoogleCustomSearch())
|
|
383
|
+
launcher.add_web(MicrosoftBingSearch())
|
|
384
|
+
launcher.add_web(DuckDuckGoSearch())
|
|
385
|
+
|
|
386
|
+
# register custom web providers
|
|
387
|
+
providers = kwargs.get('web', None)
|
|
388
|
+
if isinstance(providers, list):
|
|
389
|
+
for provider in providers:
|
|
390
|
+
launcher.add_web(provider)
|
|
391
|
+
|
|
392
|
+
# register base data loaders (llama-index)
|
|
393
|
+
launcher.add_loader(CsvLoader())
|
|
394
|
+
launcher.add_loader(DocxLoader())
|
|
395
|
+
launcher.add_loader(EpubLoader())
|
|
396
|
+
launcher.add_loader(ExcelLoader())
|
|
397
|
+
launcher.add_loader(HtmlLoader())
|
|
398
|
+
launcher.add_loader(ImageVisionLoader())
|
|
399
|
+
launcher.add_loader(IPYNBLoader())
|
|
400
|
+
launcher.add_loader(JsonLoader())
|
|
401
|
+
launcher.add_loader(MarkdownLoader())
|
|
402
|
+
launcher.add_loader(PdfLoader())
|
|
403
|
+
launcher.add_loader(VideoAudioLoader())
|
|
404
|
+
launcher.add_loader(XmlLoader())
|
|
405
|
+
launcher.add_loader(RssLoader())
|
|
406
|
+
launcher.add_loader(SitemapLoader())
|
|
407
|
+
launcher.add_loader(BitbucketRepoLoader())
|
|
408
|
+
launcher.add_loader(ChatGptRetrievalLoader())
|
|
409
|
+
launcher.add_loader(DatabaseLoader())
|
|
410
|
+
launcher.add_loader(GithubIssuesLoader())
|
|
411
|
+
launcher.add_loader(GithubRepoLoader())
|
|
412
|
+
launcher.add_loader(GoogleCalendarLoader())
|
|
413
|
+
launcher.add_loader(GoogleDocsLoader())
|
|
414
|
+
launcher.add_loader(GoogleDriveLoader())
|
|
415
|
+
launcher.add_loader(GoogleGmailLoader())
|
|
416
|
+
launcher.add_loader(GoogleKeepLoader())
|
|
417
|
+
launcher.add_loader(GoogleSheetsLoader())
|
|
418
|
+
launcher.add_loader(MicrosoftOneDriveLoader())
|
|
419
|
+
launcher.add_loader(TwitterLoader())
|
|
420
|
+
launcher.add_loader(WebPageLoader())
|
|
421
|
+
launcher.add_loader(YouTubeLoader())
|
|
422
|
+
|
|
423
|
+
# register custom data loaders (llama-index)
|
|
424
|
+
loaders = kwargs.get('loaders', None)
|
|
425
|
+
if isinstance(loaders, list):
|
|
426
|
+
for loader in loaders:
|
|
427
|
+
launcher.add_loader(loader)
|
|
428
|
+
|
|
429
|
+
# register base plugins
|
|
430
|
+
launcher.add_plugin(VoiceControlPlugin())
|
|
431
|
+
launcher.add_plugin(AgentPlugin())
|
|
432
|
+
launcher.add_plugin(RealTimePlugin())
|
|
433
|
+
launcher.add_plugin(ExpertsPlugin())
|
|
434
|
+
launcher.add_plugin(ExtraPromptPlugin())
|
|
435
|
+
launcher.add_plugin(AudioInputPlugin())
|
|
436
|
+
launcher.add_plugin(AudioOutputPlugin())
|
|
437
|
+
launcher.add_plugin(CmdWebPlugin())
|
|
438
|
+
launcher.add_plugin(CmdFilesPlugin())
|
|
439
|
+
launcher.add_plugin(CmdCodeInterpreterPlugin())
|
|
440
|
+
launcher.add_plugin(CmdSystemPlugin())
|
|
441
|
+
launcher.add_plugin(CmdCustomCommandPlugin())
|
|
442
|
+
launcher.add_plugin(CmdApiPlugin())
|
|
443
|
+
launcher.add_plugin(CmdSerialPlugin())
|
|
444
|
+
launcher.add_plugin(CmdMousePlugin())
|
|
445
|
+
launcher.add_plugin(CtxHistoryPlugin())
|
|
446
|
+
launcher.add_plugin(OpenAIDallePlugin())
|
|
447
|
+
launcher.add_plugin(OpenAIVisionPlugin())
|
|
448
|
+
launcher.add_plugin(IdxLlamaIndexPlugin())
|
|
449
|
+
launcher.add_plugin(MailerPlugin())
|
|
450
|
+
launcher.add_plugin(CrontabPlugin())
|
|
451
|
+
launcher.add_plugin(GooglePlugin())
|
|
452
|
+
launcher.add_plugin(TwitterPlugin())
|
|
453
|
+
launcher.add_plugin(FacebookPlugin())
|
|
454
|
+
launcher.add_plugin(TelegramPlugin())
|
|
455
|
+
launcher.add_plugin(SlackPlugin())
|
|
456
|
+
launcher.add_plugin(GithubPlugin())
|
|
457
|
+
launcher.add_plugin(BitbucketPlugin())
|
|
458
|
+
launcher.add_plugin(ServerPlugin())
|
|
459
|
+
launcher.add_plugin(TuyaPlugin())
|
|
460
|
+
launcher.add_plugin(WikipediaPlugin())
|
|
461
|
+
launcher.add_plugin(MCPPlugin())
|
|
462
|
+
launcher.add_plugin(WolframPlugin())
|
|
463
|
+
launcher.add_plugin(OSMPlugin())
|
|
464
|
+
|
|
465
|
+
# register custom plugins
|
|
466
|
+
plugins = kwargs.get('plugins', None)
|
|
467
|
+
if isinstance(plugins, list):
|
|
468
|
+
for plugin in plugins:
|
|
469
|
+
launcher.add_plugin(plugin)
|
|
470
|
+
|
|
471
|
+
# register LLMs
|
|
472
|
+
launcher.add_llm(OpenAILLM())
|
|
473
|
+
launcher.add_llm(AzureOpenAILLM())
|
|
474
|
+
launcher.add_llm(AnthropicLLM())
|
|
475
|
+
launcher.add_llm(GoogleLLM())
|
|
476
|
+
# launcher.add_llm(HuggingFaceLLM())
|
|
477
|
+
launcher.add_llm(HuggingFaceApiLLM())
|
|
478
|
+
launcher.add_llm(HuggingFaceRouterLLM())
|
|
479
|
+
launcher.add_llm(LocalLLM())
|
|
480
|
+
launcher.add_llm(MistralAILLM())
|
|
481
|
+
launcher.add_llm(OllamaLLM())
|
|
482
|
+
launcher.add_llm(DeepseekApiLLM())
|
|
483
|
+
launcher.add_llm(PerplexityLLM())
|
|
484
|
+
launcher.add_llm(xAILLM())
|
|
485
|
+
launcher.add_llm(OpenRouterLLM())
|
|
486
|
+
|
|
487
|
+
# register LLMs
|
|
488
|
+
llms = kwargs.get('llms', None)
|
|
489
|
+
if isinstance(llms, list):
|
|
490
|
+
for llm in llms:
|
|
491
|
+
launcher.add_llm(llm)
|
|
492
|
+
|
|
493
|
+
# register base vector store providers (llama-index)
|
|
494
|
+
launcher.add_vector_store(ChromaProvider())
|
|
495
|
+
launcher.add_vector_store(ElasticsearchProvider())
|
|
496
|
+
launcher.add_vector_store(PinecodeProvider())
|
|
497
|
+
launcher.add_vector_store(QdrantProvider())
|
|
498
|
+
launcher.add_vector_store(RedisProvider())
|
|
499
|
+
launcher.add_vector_store(SimpleProvider())
|
|
500
|
+
|
|
501
|
+
# register custom vector store providers (llama-index)
|
|
502
|
+
vector_stores = kwargs.get('vector_stores', None)
|
|
503
|
+
if isinstance(vector_stores, list):
|
|
504
|
+
for store in vector_stores:
|
|
505
|
+
launcher.add_vector_store(store)
|
|
506
|
+
|
|
507
|
+
# register base agents
|
|
508
|
+
# launcher.add_agent(OpenAIAgent()) # llama-index
|
|
509
|
+
launcher.add_agent(OpenAIWorkflowAgent()) # llama-index
|
|
510
|
+
launcher.add_agent(OpenAIAssistantAgent()) # llama-index
|
|
511
|
+
# launcher.add_agent(PlannerAgent()) # llama-index
|
|
512
|
+
launcher.add_agent(PlannerWorkflowAgent()) # llama-index
|
|
513
|
+
# launcher.add_agent(ReactAgent()) # llama-index
|
|
514
|
+
launcher.add_agent(ReactWorkflowAgent()) # llama-index
|
|
515
|
+
launcher.add_agent(CodeActAgent()) # llama-index
|
|
516
|
+
launcher.add_agent(LlamaSupervisorAgent()) # llama-index
|
|
517
|
+
launcher.add_agent(LlamaCustomAgent()) # llama-index
|
|
518
|
+
launcher.add_agent(OpenAIAgentsBase()) # openai-agents
|
|
519
|
+
launcher.add_agent(OpenAIAgentsExperts()) # openai-agents
|
|
520
|
+
launcher.add_agent(OpenAIAgentFeedback()) # openai-agents
|
|
521
|
+
launcher.add_agent(OpenAIAgentPlanner()) # openai-agents
|
|
522
|
+
launcher.add_agent(OpenAIAgentBotResearcher()) # openai-agents
|
|
523
|
+
launcher.add_agent(OpenAIAgentsExpertsFeedback()) # openai-agents
|
|
524
|
+
launcher.add_agent(OpenAIAgentsEvolve()) # openai-agents
|
|
525
|
+
launcher.add_agent(OpenAIAgentsB2B()) # openai-agents
|
|
526
|
+
launcher.add_agent(OpenAIAgentSupervisor()) # openai-agents
|
|
527
|
+
launcher.add_agent(OpenAICustomAgent()) # openai-agents
|
|
528
|
+
|
|
529
|
+
# register custom agents
|
|
530
|
+
agents = kwargs.get('agents', None)
|
|
531
|
+
if isinstance(agents, list):
|
|
532
|
+
for agent in agents:
|
|
533
|
+
launcher.add_agent(agent)
|
|
534
|
+
|
|
535
|
+
# register base tools
|
|
536
|
+
launcher.add_tool(IndexerTool())
|
|
537
|
+
launcher.add_tool(MediaPlayerTool())
|
|
538
|
+
launcher.add_tool(ImageViewerTool())
|
|
539
|
+
launcher.add_tool(TextEditorTool())
|
|
540
|
+
launcher.add_tool(AudioTranscriberTool())
|
|
541
|
+
launcher.add_tool(CodeInterpreterTool())
|
|
542
|
+
launcher.add_tool(HtmlCanvasTool())
|
|
543
|
+
launcher.add_tool(TranslatorTool())
|
|
544
|
+
launcher.add_tool(WebBrowserTool())
|
|
545
|
+
launcher.add_tool(AgentBuilderTool())
|
|
546
|
+
|
|
547
|
+
# register custom tools
|
|
548
|
+
tools = kwargs.get('tools', None)
|
|
549
|
+
if isinstance(tools, list):
|
|
550
|
+
for tool in tools:
|
|
551
|
+
launcher.add_tool(tool)
|
|
552
|
+
|
|
553
|
+
# run the app
|
|
554
|
+
launcher.run()
|
|
555
|
+
|
|
556
|
+
except Exception as e:
|
|
557
|
+
#import traceback
|
|
558
|
+
print("Fatal error during application startup:")
|
|
559
|
+
print(e)
|
|
560
|
+
#traceback.print_exc()
|
|
561
|
+
|
|
562
|
+
finally:
|
|
563
|
+
# Ensure splash is closed on normal exit or any startup failure
|
|
564
|
+
if _preloader:
|
|
565
|
+
try:
|
|
566
|
+
_preloader.close(wait=False)
|
|
567
|
+
except Exception:
|
|
568
|
+
pass
|
|
569
|
+
|
|
538
570
|
|
|
539
571
|
if __name__ == '__main__':
|
|
540
|
-
run()
|
|
572
|
+
run()
|