diff --git a/c_webui.bat b/c_webui.bat index 6e463ff3..b4ff6c75 100644 --- a/c_webui.bat +++ b/c_webui.bat @@ -62,7 +62,7 @@ if %errorlevel% equ 0 ( REM Check if repository exists if exist .git ( echo Pulling latest changes - git pull origin main + git pull ) else ( if exist lollms-webui ( cd ./lollms-webui diff --git a/c_webui.sh b/c_webui.sh index 3c55e872..017d1180 100644 --- a/c_webui.sh +++ b/c_webui.sh @@ -58,7 +58,7 @@ if ping -q -c 1 google.com >/dev/null 2>&1; then # Check if repository exists if [[ -d .git ]] ;then echo "Pulling latest changes" - git pull origin main + git pull else if [[ -d lollms-webui ]] ;then cd lollms-webui diff --git a/web/src/components/ModelEntry.vue b/web/src/components/ModelEntry.vue index a02bc594..98df7d6b 100644 --- a/web/src/components/ModelEntry.vue +++ b/web/src/components/ModelEntry.vue @@ -2,7 +2,7 @@
- +
@@ -10,20 +10,35 @@ {{ title }}
- - + + +
+
+ +
+ + Custom model +
+
+ +
+ + + +
- +
@@ -51,8 +66,10 @@
- Download speed: {{ speed_computed }}/s - {{ downloaded_size_computed }}/{{ total_size_computed }} + Download speed: {{ speed_computed + }}/s + {{ downloaded_size_computed }}/{{ + total_size_computed }}
@@ -76,7 +93,7 @@
-
+
-
-
- - Link is not valid -
-
-
+
+ -
- + +
@@ -572,9 +574,14 @@ Loading... + {{ Math.floor(addModel.progress) }}% +
+ {{ addModel.url }} + +
@@ -1108,6 +1115,7 @@ export default { searchPersonalityInProgress: false, addModel: {}, modelDownlaodInProgress: false, + uploadData: [], } }, @@ -1354,10 +1362,10 @@ export default { const modelEntry = this.addModel - const keys = Object.keys(this.addModel) - if (keys.includes('url')) { - return - } + // const keys = Object.keys(this.addModel) + // if (keys.includes('url')) { + // return + // } this.modelDownlaodInProgress = false this.addModel = {} this.$refs.toast.showToast("Model installation aborted", 4, false) @@ -1446,6 +1454,7 @@ export default { if (response.status && response.progress <= 100) { console.log(`Progress`, response); this.addModel = response + this.addModel.url = path // this.addModel.progress = response.progress // this.addModel.speed = response.speed // this.addModel.total_size = response.total_size @@ -1454,13 +1463,13 @@ export default { this.modelDownlaodInProgress = true if (this.addModel.progress == 100) { - this.modelDownlaodInProgress = true + this.modelDownlaodInProgress = false console.log("Received succeeded") socket.off('install_progress', progressListener); console.log("Installed successfully") // Update the isInstalled property of the corresponding model - + this.addModel = {} this.$refs.toast.showToast("Model:\n" + this.addModel.model_name + "\ninstalled!", 4, true) this.api_get_req("disk_usage").then(response => { this.diskUsage = response @@ -1487,6 +1496,75 @@ export default { socket.emit('install_model', { path: path }); console.log("Started installation, please wait"); }, + uploadLocalModel() { + + + if (this.uploadData.length == 0) { + + this.$refs.toast.showToast("No files to upload", 4, false) + return + } + let path = this.addModel.url; + + this.addModel.progress = 0; + console.log("installing..."); + console.log("value ", this.addModel.url); + this.modelDownlaodInProgress = true + // Use an arrow function for progressListener + const progressListener = (response) => { + console.log("received something"); + if (response.status && response.progress <= 100) { + console.log(`Progress`, response); + this.addModel = response + this.addModel.url = path + // this.addModel.progress = response.progress + // this.addModel.speed = response.speed + // this.addModel.total_size = response.total_size + // this.addModel.downloaded_size = response.downloaded_size + // this.addModel.start_time = response.start_time + this.modelDownlaodInProgress = true + if (this.addModel.progress == 100) { + + this.modelDownlaodInProgress = false + + console.log("Received succeeded") + socket.off('progress', progressListener); + console.log("Installed successfully") + // Update the isInstalled property of the corresponding model + this.addModel = {} + this.$refs.toast.showToast("Model:\n" + this.addModel.model_name + "\ninstalled!", 4, true) + this.api_get_req("disk_usage").then(response => { + this.diskUsage = response + }) + } + } else { + socket.off('progress', progressListener); + console.log("Install failed") + // Installation failed or encountered an error + this.modelDownlaodInProgress = false; + + + console.error('Installation failed:', response.error); + this.$refs.toast.showToast("Model:\n" + this.addModel.model_name + "\nfailed to install!", 4, false) + this.api_get_req("disk_usage").then(response => { + this.diskUsage = response + }) + } + }; + + socket.on('progress', progressListener); + + + // socket.emit('send_file', { file: this.uploadData }); + console.log("Started installation, please wait"); + + + }, + setFileList(event) { + this.uploadData = event.target.files + console.log('set file list', this.uploadData) + + }, onUninstall(model_object) { this.$refs.yesNoDialog.askQuestion("Are you sure you want to delete this model?\n [" + model_object.title + "]", 'Yes', 'Cancel').then(yesRes => {