mirror of
https://github.com/ParisNeo/lollms-webui.git
synced 2024-12-24 06:36:37 +00:00
fixed some bugs and added execution engines
This commit is contained in:
parent
448d90b25e
commit
de8adeb8d4
4
app.py
4
app.py
@ -649,8 +649,8 @@ try:
|
||||
pdf_file = tmp_file.with_suffix('.pdf')
|
||||
print(f"PDF file generated: {pdf_file}")
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
self.error(f"Error occurred while compiling LaTeX: {e}")
|
||||
except subprocess.CalledProcessError as ex:
|
||||
self.error(f"Error occurred while compiling LaTeX: {ex}")
|
||||
error_json = {"output": "<div class='text-red-500'>"+str(ex)+"\n"+get_trace_exception(ex)+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
|
62
endpoints/lollms_advanced.py
Normal file
62
endpoints/lollms_advanced.py
Normal file
@ -0,0 +1,62 @@
|
||||
"""
|
||||
project: lollms_user
|
||||
file: lollms_user.py
|
||||
author: ParisNeo
|
||||
description:
|
||||
This module contains a set of FastAPI routes that provide information about the Lord of Large Language and Multimodal Systems (LoLLMs) Web UI
|
||||
application. These routes allow users to do advanced stuff like executing code.
|
||||
|
||||
"""
|
||||
from fastapi import APIRouter, Request
|
||||
from lollms_webui import LOLLMSWebUI
|
||||
from pydantic import BaseModel
|
||||
from starlette.responses import StreamingResponse
|
||||
from lollms.types import MSG_TYPE
|
||||
from lollms.main_config import BaseConfig
|
||||
from lollms.utilities import detect_antiprompt, remove_text_from_string, trace_exception
|
||||
from ascii_colors import ASCIIColors
|
||||
from api.db import DiscussionsDB
|
||||
from pathlib import Path
|
||||
from safe_store.text_vectorizer import TextVectorizer, VectorizationMethod, VisualizationMethod
|
||||
import tqdm
|
||||
from fastapi import FastAPI, UploadFile, File
|
||||
import shutil
|
||||
|
||||
from utilities.execution_engines.python_execution_engine import execute_python
|
||||
from utilities.execution_engines.latex_execution_engine import execute_latex
|
||||
from utilities.execution_engines.shell_execution_engine import execute_bash
|
||||
|
||||
router = APIRouter()
|
||||
lollmsElfServer:LOLLMSWebUI = LOLLMSWebUI.get_instance()
|
||||
|
||||
@router.post("/execute_code")
|
||||
async def execute_code(request: Request):
|
||||
"""
|
||||
Executes Python code and returns the output.
|
||||
|
||||
:param request: The HTTP request object.
|
||||
:return: A JSON response with the status of the operation.
|
||||
"""
|
||||
|
||||
try:
|
||||
data = (await request.json())
|
||||
code = data["code"]
|
||||
discussion_id = data.get("discussion_id","unknown_discussion")
|
||||
message_id = data.get("message_id","unknown_message")
|
||||
language = data.get("language","python")
|
||||
|
||||
|
||||
ASCIIColors.info("Executing python code:")
|
||||
ASCIIColors.yellow(code)
|
||||
|
||||
if language=="python":
|
||||
return execute_python(code, discussion_id, message_id)
|
||||
elif language=="latex":
|
||||
return execute_latex(code, discussion_id, message_id)
|
||||
elif language in ["bash","shell","cmd","powershell"]:
|
||||
return execute_bash(code, discussion_id, message_id)
|
||||
return {"output": "Unsupported language", "execution_time": 0}
|
||||
except Exception as ex:
|
||||
trace_exception(ex)
|
||||
lollmsElfServer.error(ex)
|
||||
return {"status":False,"error":str(ex)}
|
@ -1 +1 @@
|
||||
Subproject commit fb402a5d3d043efbecd7199ea45927d6ad37af6c
|
||||
Subproject commit c7ebbb1228a1bc48da1d953629569d60c185a011
|
@ -74,6 +74,7 @@ if __name__ == "__main__":
|
||||
from endpoints.lollms_discussion import router as lollms_discussion_router
|
||||
from endpoints.lollms_message import router as lollms_message_router
|
||||
from endpoints.lollms_user import router as lollms_user_router
|
||||
from endpoints.lollms_advanced import router as lollms_advanced_router
|
||||
|
||||
|
||||
|
||||
@ -90,11 +91,13 @@ if __name__ == "__main__":
|
||||
app.include_router(lollms_extensions_infos_router)
|
||||
|
||||
|
||||
|
||||
app.include_router(lollms_webui_infos_router)
|
||||
app.include_router(lollms_generator_router)
|
||||
app.include_router(lollms_discussion_router)
|
||||
app.include_router(lollms_message_router)
|
||||
app.include_router(lollms_user_router)
|
||||
app.include_router(lollms_advanced_router)
|
||||
|
||||
app.include_router(lollms_configuration_infos_router)
|
||||
|
||||
@ -109,6 +112,8 @@ if __name__ == "__main__":
|
||||
app.mount("/", StaticFiles(directory=Path(__file__).parent/"web"/"dist", html=True), name="static")
|
||||
app = ASGIApp(socketio_server=sio, other_asgi_app=app)
|
||||
|
||||
lollmsElfServer.app = app
|
||||
|
||||
|
||||
# if autoshow
|
||||
if config.auto_show_browser:
|
||||
|
75
utilities/execution_engines/latex_execution_engine.py
Normal file
75
utilities/execution_engines/latex_execution_engine.py
Normal file
@ -0,0 +1,75 @@
|
||||
"""
|
||||
project: lollms_webui
|
||||
file: latex_execution_engine.py
|
||||
author: ParisNeo
|
||||
description:
|
||||
This is a utility for executing latex code
|
||||
|
||||
"""
|
||||
from fastapi import APIRouter, Request, routing
|
||||
from lollms_webui import LOLLMSWebUI
|
||||
from pydantic import BaseModel
|
||||
from starlette.responses import StreamingResponse
|
||||
from lollms.types import MSG_TYPE
|
||||
from lollms.main_config import BaseConfig
|
||||
from lollms.utilities import detect_antiprompt, remove_text_from_string, trace_exception, get_trace_exception
|
||||
from ascii_colors import ASCIIColors
|
||||
from api.db import DiscussionsDB
|
||||
from pathlib import Path
|
||||
from safe_store.text_vectorizer import TextVectorizer, VectorizationMethod, VisualizationMethod
|
||||
import tqdm
|
||||
from fastapi import FastAPI, UploadFile, File
|
||||
import shutil
|
||||
import time
|
||||
import subprocess
|
||||
import json
|
||||
|
||||
lollmsElfServer:LOLLMSWebUI = LOLLMSWebUI.get_instance()
|
||||
|
||||
def execute_latex(lollmsElfServer:LOLLMSWebUI, code, discussion_id, message_id):
|
||||
def spawn_process(code):
|
||||
"""Executes Python code and returns the output as JSON."""
|
||||
|
||||
# Start the timer.
|
||||
start_time = time.time()
|
||||
|
||||
# Create a temporary file.
|
||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{discussion_id}"
|
||||
root_folder.mkdir(parents=True,exist_ok=True)
|
||||
tmp_file = root_folder/f"latex_file_{message_id}.tex"
|
||||
with open(tmp_file,"w",encoding="utf8") as f:
|
||||
f.write(code)
|
||||
try:
|
||||
# Determine the pdflatex command based on the provided or default path
|
||||
if lollmsElfServer.config.pdf_latex_path:
|
||||
pdflatex_command = lollmsElfServer.config.pdf_latex_path
|
||||
else:
|
||||
pdflatex_command = 'pdflatex'
|
||||
# Set the execution path to the folder containing the tmp_file
|
||||
execution_path = tmp_file.parent
|
||||
# Run the pdflatex command with the file path
|
||||
result = subprocess.run([pdflatex_command, "-interaction=nonstopmode", tmp_file], check=True, capture_output=True, text=True, cwd=execution_path)
|
||||
# Check the return code of the pdflatex command
|
||||
if result.returncode != 0:
|
||||
error_message = result.stderr.strip()
|
||||
execution_time = time.time() - start_time
|
||||
error_json = {"output": f"Error occurred while compiling LaTeX: {error_message}", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
# If the compilation is successful, you will get a PDF file
|
||||
pdf_file = tmp_file.with_suffix('.pdf')
|
||||
print(f"PDF file generated: {pdf_file}")
|
||||
|
||||
except subprocess.CalledProcessError as ex:
|
||||
lollmsElfServer.error(f"Error occurred while compiling LaTeX: {ex}")
|
||||
error_json = {"output": "<div class='text-red-500'>"+str(ex)+"\n"+get_trace_exception(ex)+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
|
||||
# The child process was successful.
|
||||
pdf_file=str(pdf_file)
|
||||
url = f"{routing.get_url_path_for(lollmsElfServer.app.router, 'main')[:-4]}{pdf_file[pdf_file.index('outputs'):]}"
|
||||
output_json = {"output": f"Pdf file generated at: {pdf_file}\n<a href='{url}'>Click here to show</a>", "execution_time": execution_time}
|
||||
return json.dumps(output_json)
|
||||
return spawn_process(code)
|
165
utilities/execution_engines/python_execution_engine.py
Normal file
165
utilities/execution_engines/python_execution_engine.py
Normal file
@ -0,0 +1,165 @@
|
||||
"""
|
||||
project: lollms_webui
|
||||
file: python_execution_engine.py
|
||||
author: ParisNeo
|
||||
description:
|
||||
This is a utility for executing python code
|
||||
|
||||
"""
|
||||
from fastapi import APIRouter, Request, routing
|
||||
from lollms_webui import LOLLMSWebUI
|
||||
from pydantic import BaseModel
|
||||
from starlette.responses import StreamingResponse
|
||||
from lollms.types import MSG_TYPE
|
||||
from lollms.main_config import BaseConfig
|
||||
from lollms.utilities import detect_antiprompt, remove_text_from_string, trace_exception, get_trace_exception
|
||||
from ascii_colors import ASCIIColors
|
||||
from api.db import DiscussionsDB
|
||||
from pathlib import Path
|
||||
from safe_store.text_vectorizer import TextVectorizer, VectorizationMethod, VisualizationMethod
|
||||
import tqdm
|
||||
from fastapi import FastAPI, UploadFile, File
|
||||
import shutil
|
||||
import time
|
||||
import subprocess
|
||||
import json
|
||||
|
||||
lollmsElfServer:LOLLMSWebUI = LOLLMSWebUI.get_instance()
|
||||
|
||||
def execute_python(code, discussion_id, message_id):
|
||||
def spawn_process(code):
|
||||
"""Executes Python code and returns the output as JSON."""
|
||||
|
||||
# Start the timer.
|
||||
start_time = time.time()
|
||||
|
||||
# Create a temporary file.
|
||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{discussion_id}"
|
||||
root_folder.mkdir(parents=True,exist_ok=True)
|
||||
tmp_file = root_folder/f"ai_code_{message_id}.py"
|
||||
with open(tmp_file,"w",encoding="utf8") as f:
|
||||
f.write(code)
|
||||
|
||||
try:
|
||||
# Execute the Python code in a temporary file.
|
||||
process = subprocess.Popen(
|
||||
["python", str(tmp_file)],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
cwd=root_folder
|
||||
)
|
||||
|
||||
# Get the output and error from the process.
|
||||
output, error = process.communicate()
|
||||
except Exception as ex:
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
error_message = f"Error executing Python code: {ex}"
|
||||
error_json = {"output": "<div class='text-red-500'>"+ex+"\n"+get_trace_exception(ex)+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
|
||||
# Check if the process was successful.
|
||||
if process.returncode != 0:
|
||||
# The child process threw an exception.
|
||||
error_message = f"Error executing Python code: {error.decode('utf8')}"
|
||||
error_json = {"output": "<div class='text-red-500'>"+error_message+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# The child process was successful.
|
||||
output_json = {"output": output.decode("utf8"), "execution_time": execution_time}
|
||||
return json.dumps(output_json)
|
||||
return spawn_process(code)
|
||||
|
||||
def execute_latex(lollmsElfServer:LOLLMSWebUI, code, discussion_id, message_id):
|
||||
def spawn_process(code):
|
||||
"""Executes Python code and returns the output as JSON."""
|
||||
|
||||
# Start the timer.
|
||||
start_time = time.time()
|
||||
|
||||
# Create a temporary file.
|
||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{discussion_id}"
|
||||
root_folder.mkdir(parents=True,exist_ok=True)
|
||||
tmp_file = root_folder/f"latex_file_{message_id}.tex"
|
||||
with open(tmp_file,"w",encoding="utf8") as f:
|
||||
f.write(code)
|
||||
try:
|
||||
# Determine the pdflatex command based on the provided or default path
|
||||
if lollmsElfServer.config.pdf_latex_path:
|
||||
pdflatex_command = lollmsElfServer.config.pdf_latex_path
|
||||
else:
|
||||
pdflatex_command = 'pdflatex'
|
||||
# Set the execution path to the folder containing the tmp_file
|
||||
execution_path = tmp_file.parent
|
||||
# Run the pdflatex command with the file path
|
||||
result = subprocess.run([pdflatex_command, "-interaction=nonstopmode", tmp_file], check=True, capture_output=True, text=True, cwd=execution_path)
|
||||
# Check the return code of the pdflatex command
|
||||
if result.returncode != 0:
|
||||
error_message = result.stderr.strip()
|
||||
execution_time = time.time() - start_time
|
||||
error_json = {"output": f"Error occurred while compiling LaTeX: {error_message}", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
# If the compilation is successful, you will get a PDF file
|
||||
pdf_file = tmp_file.with_suffix('.pdf')
|
||||
print(f"PDF file generated: {pdf_file}")
|
||||
|
||||
except subprocess.CalledProcessError as ex:
|
||||
lollmsElfServer.error(f"Error occurred while compiling LaTeX: {ex}")
|
||||
error_json = {"output": "<div class='text-red-500'>"+str(ex)+"\n"+get_trace_exception(ex)+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
|
||||
# The child process was successful.
|
||||
pdf_file=str(pdf_file)
|
||||
url = f"{routing.get_url_path_for(lollmsElfServer.app.router, 'main')[:-4]}{pdf_file[pdf_file.index('outputs'):]}"
|
||||
output_json = {"output": f"Pdf file generated at: {pdf_file}\n<a href='{url}'>Click here to show</a>", "execution_time": execution_time}
|
||||
return json.dumps(output_json)
|
||||
return spawn_process(code)
|
||||
|
||||
def execute_bash(lollmsElfServer, code, discussion_id, message_id):
|
||||
def spawn_process(code):
|
||||
"""Executes Python code and returns the output as JSON."""
|
||||
|
||||
# Start the timer.
|
||||
start_time = time.time()
|
||||
|
||||
# Create a temporary file.
|
||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{discussion_id}"
|
||||
root_folder.mkdir(parents=True,exist_ok=True)
|
||||
try:
|
||||
# Execute the Python code in a temporary file.
|
||||
process = subprocess.Popen(
|
||||
code,
|
||||
shell=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
)
|
||||
|
||||
# Get the output and error from the process.
|
||||
output, error = process.communicate()
|
||||
except Exception as ex:
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
error_message = f"Error executing Python code: {ex}"
|
||||
error_json = {"output": "<div class='text-red-500'>"+str(ex)+"\n"+get_trace_exception(ex)+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
|
||||
# Check if the process was successful.
|
||||
if process.returncode != 0:
|
||||
# The child process threw an exception.
|
||||
error_message = f"Error executing Python code: {error.decode('utf8')}"
|
||||
error_json = {"output": "<div class='text-red-500'>"+error_message+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# The child process was successful.
|
||||
output_json = {"output": output.decode("utf8"), "execution_time": execution_time}
|
||||
return json.dumps(output_json)
|
||||
return spawn_process(code)
|
69
utilities/execution_engines/shell_execution_engine.py
Normal file
69
utilities/execution_engines/shell_execution_engine.py
Normal file
@ -0,0 +1,69 @@
|
||||
"""
|
||||
project: lollms_webui
|
||||
file: shell_execution_engine.py
|
||||
author: ParisNeo
|
||||
description:
|
||||
This is a utility for executing python code
|
||||
|
||||
"""
|
||||
from fastapi import APIRouter, Request, routing
|
||||
from lollms_webui import LOLLMSWebUI
|
||||
from pydantic import BaseModel
|
||||
from starlette.responses import StreamingResponse
|
||||
from lollms.types import MSG_TYPE
|
||||
from lollms.main_config import BaseConfig
|
||||
from lollms.utilities import detect_antiprompt, remove_text_from_string, trace_exception, get_trace_exception
|
||||
from ascii_colors import ASCIIColors
|
||||
from api.db import DiscussionsDB
|
||||
from pathlib import Path
|
||||
from safe_store.text_vectorizer import TextVectorizer, VectorizationMethod, VisualizationMethod
|
||||
import tqdm
|
||||
from fastapi import FastAPI, UploadFile, File
|
||||
import shutil
|
||||
import time
|
||||
import subprocess
|
||||
import json
|
||||
|
||||
lollmsElfServer:LOLLMSWebUI = LOLLMSWebUI.get_instance()
|
||||
def execute_bash(lollmsElfServer, code, discussion_id, message_id):
|
||||
def spawn_process(code):
|
||||
"""Executes Python code and returns the output as JSON."""
|
||||
|
||||
# Start the timer.
|
||||
start_time = time.time()
|
||||
|
||||
# Create a temporary file.
|
||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{discussion_id}"
|
||||
root_folder.mkdir(parents=True,exist_ok=True)
|
||||
try:
|
||||
# Execute the Python code in a temporary file.
|
||||
process = subprocess.Popen(
|
||||
code,
|
||||
shell=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
)
|
||||
|
||||
# Get the output and error from the process.
|
||||
output, error = process.communicate()
|
||||
except Exception as ex:
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
error_message = f"Error executing Python code: {ex}"
|
||||
error_json = {"output": "<div class='text-red-500'>"+str(ex)+"\n"+get_trace_exception(ex)+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# Stop the timer.
|
||||
execution_time = time.time() - start_time
|
||||
|
||||
# Check if the process was successful.
|
||||
if process.returncode != 0:
|
||||
# The child process threw an exception.
|
||||
error_message = f"Error executing Python code: {error.decode('utf8')}"
|
||||
error_json = {"output": "<div class='text-red-500'>"+error_message+"</div>", "execution_time": execution_time}
|
||||
return json.dumps(error_json)
|
||||
|
||||
# The child process was successful.
|
||||
output_json = {"output": output.decode("utf8"), "execution_time": execution_time}
|
||||
return json.dumps(output_json)
|
||||
return spawn_process(code)
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
web/dist/index.html
vendored
4
web/dist/index.html
vendored
@ -6,8 +6,8 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>LoLLMS WebUI - Welcome</title>
|
||||
<script type="module" crossorigin src="/assets/index-db831b95.js"></script>
|
||||
<link rel="stylesheet" href="/assets/index-d5a593e6.css">
|
||||
<script type="module" crossorigin src="/assets/index-a1f2945d.js"></script>
|
||||
<link rel="stylesheet" href="/assets/index-299ef7d5.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
@ -513,16 +513,16 @@ app.mixin({
|
||||
await this.$store.dispatch('refreshConfig');
|
||||
console.log("Config ready")
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
try{
|
||||
this.$store.state.loading_infos = "Loading Database"
|
||||
this.$store.state.loading_progress = 20
|
||||
await this.$store.dispatch('refreshDatabase');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
|
||||
try{
|
||||
@ -530,8 +530,8 @@ app.mixin({
|
||||
this.$store.state.loading_progress = 30
|
||||
await this.$store.dispatch('getVersion');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
|
||||
try{
|
||||
@ -539,31 +539,31 @@ app.mixin({
|
||||
this.$store.state.loading_progress = 40
|
||||
await this.$store.dispatch('refreshBindings');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
try{
|
||||
this.$store.state.loading_infos = "Getting Hardware usage"
|
||||
await refreshHardwareUsage(this.$store);
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
try{
|
||||
this.$store.state.loading_infos = "Getting extensions zoo"
|
||||
this.$store.state.loading_progress = 50
|
||||
await this.$store.dispatch('refreshExtensionsZoo');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
try{
|
||||
this.$store.state.loading_infos = "Getting mounted extensions"
|
||||
this.$store.state.loading_progress = 60
|
||||
await this.$store.dispatch('refreshmountedExtensions');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
|
||||
try{
|
||||
@ -571,16 +571,16 @@ app.mixin({
|
||||
this.$store.state.loading_progress = 70
|
||||
await this.$store.dispatch('refreshPersonalitiesZoo')
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
try{
|
||||
this.$store.state.loading_infos = "Getting mounted personalities"
|
||||
this.$store.state.loading_progress = 80
|
||||
await this.$store.dispatch('refreshMountedPersonalities');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
|
||||
try{
|
||||
@ -588,8 +588,8 @@ app.mixin({
|
||||
this.$store.state.loading_progress = 90
|
||||
await this.$store.dispatch('refreshModelsZoo');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
try{
|
||||
this.$store.state.loading_infos = "Getting active models"
|
||||
@ -597,8 +597,8 @@ app.mixin({
|
||||
await this.$store.dispatch('refreshModels');
|
||||
await this.$store.dispatch('refreshModelStatus');
|
||||
}
|
||||
catch{
|
||||
|
||||
catch (ex){
|
||||
console.log("Error cought:", ex)
|
||||
}
|
||||
|
||||
|
||||
|
@ -3835,6 +3835,7 @@ export default {
|
||||
async unmountAll(){
|
||||
await axios.get('/unmount_all_personalities');
|
||||
this.$store.dispatch('refreshMountedPersonalities');
|
||||
this.$store.dispatch('refreshConfig');
|
||||
this.$store.state.toast.showToast("All personas unmounted", 4, true)
|
||||
},
|
||||
async unmountPersonality(pers) {
|
||||
|
Loading…
Reference in New Issue
Block a user