This commit is contained in:
Saifeddine ALOUI 2023-12-17 21:19:46 +01:00
parent bd56719618
commit b910d254e7
14 changed files with 80 additions and 33 deletions

View File

@ -2012,16 +2012,23 @@ class LoLLMsAPI(LollmsApplication):
self.prepare_reception(client_id)
self.generating = True
self.connections[client_id]["processing"]=True
self.generate(
self.discussion_messages,
self.current_message,
n_predict = self.config.ctx_size-len(tokens)-1,
client_id=client_id,
callback=partial(self.process_chunk,client_id = client_id)
)
print()
print("## Done Generation ##")
print()
try:
self.generate(
self.discussion_messages,
self.current_message,
n_predict = self.config.ctx_size-len(tokens)-1,
client_id=client_id,
callback=partial(self.process_chunk,client_id = client_id)
)
print()
ASCIIColors.success("## Done Generation ##")
print()
except Exception as ex:
trace_exception(ex)
print()
ASCIIColors.error("## Generation Error ##")
print()
self.cancel_gen = False
# Send final message

6
app.py
View File

@ -1011,7 +1011,8 @@ try:
try:
self.model = None
for per in self.mounted_personalities:
per.model = None
if per is not None:
per.model = None
self.model = self.binding.build_model()
if self.model is not None:
ASCIIColors.yellow("New model OK")
@ -1638,7 +1639,6 @@ try:
self.config.binding_name = data['name']
self.binding = BindingBuilder().build_binding(self.config, self.lollms_paths, InstallOption.FORCE_INSTALL, lollmsCom=self)
self.success("Binding installed successfully")
self.InfoMessage("Please reboot the application so that the binding installation can be taken into consideration")
del self.binding
self.binding = None
self.config.binding_name = old_bn
@ -1671,12 +1671,12 @@ try:
self.config.binding_name = data['name']
self.binding = BindingBuilder().build_binding(self.config, self.lollms_paths, InstallOption.FORCE_INSTALL, lollmsCom=self)
self.success("Binding reinstalled successfully")
self.InfoMessage("Please reboot the application so that the binding installation can be taken into consideration")
self.config.binding_name = old_bn
self.binding = BindingBuilder().build_binding(self.config, self.lollms_paths, lollmsCom=self)
self.model = self.binding.build_model()
for per in self.mounted_personalities:
per.model = self.model
return jsonify({"status": True})
except Exception as ex:
ASCIIColors.error(f"Couldn't build binding: [{ex}]")

View File

@ -9,11 +9,31 @@ select the install mode (Cuda, rocm or cpu)
wait
Run the app
Choose the personal data folder
Install a binding
Reboot the app
Install a binding then Reboot the app
Select the binding
Install a model
Select a model
And now you are ready to rock
Let me show you how I do it:
Start by opening the lollms web user interface link that you can find in the description. Then go to the latest release page and download the installer suited for your platform. Make sure you put it into a path with no spaces and inside an empty folder as it will fill out the folder with the install files.
Now execute the installer. As it says, make sure the path you are using is not very long and without spaces as conda may have bugs with paths that contains spaces.
Now press enter to continue.
Select the right configuration. if you have an nvisia gpu, select option a. if you have a Rocm compatible GPU like AMD GPUs press B. If you have no GPU or want to use remote generation, then select C.
Now just wait
Once the installation is done, close the installation script and go back to the install folder.
run the win_run.bat file and wait for the program to run for the first time.
Some additional libraries may need to be installed the first time you run it.
The first time you run the app, you will need to specify a folder where to put your personal data. Make sure the disk containing this folder is big enough as it will hold your models as well as the personas outputs and your discussion databases. The default folder is a folder called lollms under your documents folder. Just press enter if it is ok or type another path then press enter.
Now lollms is installed, but there is no binding installed nor a model. To do this, go to settings tab, select binding s zoo and install a binding depending on your preferences. Here I am using a GPU and want local generation, so I will select Hugging face to use full sized models, GPTQ quantized models or AWQ quantized models. The installation may take some while, you can look at the install details in the console window.
Start by opening the lollms web user interface link that you can find in the description. Then go to the latest release page and download the

@ -1 +1 @@
Subproject commit 62a8af9c3b22d2a1b70d7657164e70ced86d16c8
Subproject commit 9acdc3e9cd7880451b57e290d08c2957347766bb

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
web/dist/disconnected.mp3 vendored Normal file

Binary file not shown.

4
web/dist/index.html vendored
View File

@ -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-24f00053.js"></script>
<link rel="stylesheet" href="/assets/index-80a485ca.css">
<script type="module" crossorigin src="/assets/index-3aea4c30.js"></script>
<link rel="stylesheet" href="/assets/index-a331d591.css">
</head>
<body>
<div id="app"></div>

BIN
web/dist/rebooting.mp3 vendored Normal file

Binary file not shown.

BIN
web/public/disconnected.mp3 Normal file

Binary file not shown.

BIN
web/public/rebooting.mp3 Normal file

Binary file not shown.

View File

@ -35,8 +35,8 @@
<div v-if="!isConnected" title="Connection status: Not connected" class="text-red-500 cursor-pointer">
<i data-feather="zap-off"></i>
</div>
<a href="#" @click="refreshPage">
<div class="text-2xl hover:text-primary duration-150" title="refresh page">
<a href="#" @click="restartProgram">
<div class="text-2xl hover:text-primary duration-150" title="restart program">
<i data-feather="refresh-ccw"></i>
</div>
</a>
@ -135,6 +135,7 @@ export default {
watch:{
isConnected(){
if (!this.isConnected){
this.disconnected_audio.play()
this.$store.state.toast.showToast("Server suddenly disconnected. Please reboot the server", 410, false)
}
nextTick(() => {
@ -145,6 +146,8 @@ export default {
},
data() {
return {
rebooting_the_tool_audio: new Audio("rebooting.mp3"),
disconnected_audio: new Audio("disconnected.mp3"),
database_selectorDialogVisible:false,
progress_visibility:false,
progress_value:0,
@ -176,11 +179,16 @@ export default {
this.systemTheme = window.matchMedia("prefers-color-scheme: dark").matches;
},
methods: {
async refreshPage(event) {
restartProgram(event) {
event.preventDefault();
this.$store.state.api_get_req('restart_program')
this.rebooting_the_tool_audio.play()
this.$store.state.toast.showToast("Rebooting the app. Please wait...", 410, false)
//self.$store.state.toast.showToast("Rebooting the app. Please wait...", 50, true);
console.log("this.$store.state.api_get_req",this.$store.state.api_get_req)
await this.$store.state.api_get_req('restart_program')
window.close();
setTimeout(()=>{
window.close();
},2000)
},
handleOk(inputText) {
console.log("Input text:", inputText);

View File

@ -2615,8 +2615,14 @@ export default {
this.isLoading = false
console.log('install_binding', res)
if (res.data.status) {
this.$store.state.toast.showToast("Installed binding successfully!", 4, true)
this.$store.state.toast.showToast("Binding installed successfully!", 4, true)
this.update_binding(binding_object.binding.folder);
this.$store.state.api_get_req('restart_program')
this.$store.state.toast.showToast("Rebooting the app. Please wait...", 410, false)
console.log("this.$store.state.api_get_req",this.$store.state.api_get_req)
setTimeout(()=>{
window.close();
},2000)
} else {
this.$store.state.toast.showToast("Could not reinstall binding", 4, false)
}
@ -2684,7 +2690,13 @@ export default {
this.isLoading = false
console.log('reinstall_binding', res)
if (res.data.status) {
this.$store.state.toast.showToast("Reinstalled binding successfully!", 4, true)
this.$store.state.toast.showToast("Binding reinstalled successfully!", 4, true)
this.$store.state.api_get_req('restart_program')
this.$store.state.toast.showToast("Rebooting the app. Please wait...", 410, false)
console.log("this.$store.state.api_get_req",this.$store.state.api_get_req)
setTimeout(()=>{
window.close();
},2000)
} else {
this.$store.state.toast.showToast("Could not reinstall binding", 4, false)
}

@ -1 +1 @@
Subproject commit aba4e0d739f02cbce2569da19b6a1f7714d3807c
Subproject commit d1d90b57585ec74647de8e5e4ed6a62282a46032