Fixed remote connection and added checker for Ollama missing

This commit is contained in:
jeffser 2024-09-03 21:52:14 -06:00
parent a591270d58
commit 19a8aade60
3 changed files with 17 additions and 8 deletions

View File

@ -49,10 +49,10 @@ class instance():
def request(self, connection_type:str, connection_url:str, data:dict=None, callback:callable=None) -> requests.models.Response:
self.busy += 1
if self.idle_timer:
if self.idle_timer and not self.remote:
self.idle_timer_stop_event.set()
self.idle_timer=None
if not self.instance:
if not self.instance and not self.remote:
self.start()
connection_url = '{}/{}'.format(self.remote_url if self.remote else 'http://127.0.0.1:{}'.format(self.local_port), connection_url)
logger.info('{} : {}'.format(connection_type, connection_url))
@ -72,7 +72,7 @@ class instance():
case "DELETE":
response = requests.delete(connection_url, headers=self.get_headers(False), data=data)
self.busy -= 1
if not self.idle_timer:
if not self.idle_timer and not self.remote:
self.start_timer()
return response

View File

@ -188,9 +188,10 @@ def remove_attached_file(self, name):
def reconnect_remote_response(self, dialog, task, url_entry, bearer_entry):
response = dialog.choose_finish(task)
if not task or response == "remote":
self.ollama_instance.remote_url = url_entry.get_text()
self.ollama_instance.bearer_token = bearer_entry.get_text()
self.ollama_instance.remote = True
self.remote_connection_entry.set_text(url_entry.get_text())
self.remote_connection_switch.set_sensitive(url_entry.get_text())
self.remote_bearer_token_entry.set_text(bearer_entry.get_text())
self.remote_connection_switch.set_active(True)
self.model_manager.update_local_list()
elif response == "local":
self.ollama_instance.remote = False

View File

@ -19,7 +19,7 @@
"""
Handles the main window
"""
import json, threading, os, re, base64, gettext, uuid, shutil, logging
import json, threading, os, re, base64, gettext, uuid, shutil, logging, time
from io import BytesIO
from PIL import Image
from pypdf import PdfReader
@ -777,6 +777,12 @@ Generate a title following these rules:
if show_launch_dialog:
GLib.idle_add(self.launch_dialog.present, self)
#Check if Ollama instance doesn't exists
if not shutil.which('ollama'):
remote = True
if not remote_url:
remote_url = 'http://0.0.0.0:11434'
#Instance
self.launch_level_bar.set_value(0)
self.launch_status.set_description(_('Loading instance'))
@ -816,6 +822,8 @@ Generate a title following these rules:
GLib.idle_add(self.load_history)
self.launch_level_bar.set_value(5)
if self.ollama_instance.remote:
time.sleep(.5) #This is to prevent errors with gtk creating the launch dialog and closing it too quickly
#Close launch dialog
if show_launch_dialog:
GLib.idle_add(self.launch_dialog.force_close)
@ -884,7 +892,7 @@ Generate a title following these rules:
self.background_switch.set_active(data['run_on_background'])
if 'idle_timer' not in data:
data['idle_timer'] = 0
threading.Thread(target=self.prepare_alpaca, args=(data['local_port'], data['remote_url'], data['run_remote'], data['model_tweaks'], data['ollama_overrides'], data['remote_bearer_token'], round(data['idle_timer']), False, not data['run_remote'])).start()
threading.Thread(target=self.prepare_alpaca, args=(data['local_port'], data['remote_url'], data['run_remote'], data['model_tweaks'], data['ollama_overrides'], data['remote_bearer_token'], round(data['idle_timer']), False, True)).start()
except Exception as e:
logger.error(e)
threading.Thread(target=self.prepare_alpaca, args=(11435, '', False, {'temperature': 0.7, 'seed': 0, 'keep_alive': 5}, {}, '', 0, True, True)).start()