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: def request(self, connection_type:str, connection_url:str, data:dict=None, callback:callable=None) -> requests.models.Response:
self.busy += 1 self.busy += 1
if self.idle_timer: if self.idle_timer and not self.remote:
self.idle_timer_stop_event.set() self.idle_timer_stop_event.set()
self.idle_timer=None self.idle_timer=None
if not self.instance: if not self.instance and not self.remote:
self.start() self.start()
connection_url = '{}/{}'.format(self.remote_url if self.remote else 'http://127.0.0.1:{}'.format(self.local_port), connection_url) 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)) logger.info('{} : {}'.format(connection_type, connection_url))
@ -72,7 +72,7 @@ class instance():
case "DELETE": case "DELETE":
response = requests.delete(connection_url, headers=self.get_headers(False), data=data) response = requests.delete(connection_url, headers=self.get_headers(False), data=data)
self.busy -= 1 self.busy -= 1
if not self.idle_timer: if not self.idle_timer and not self.remote:
self.start_timer() self.start_timer()
return response 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): def reconnect_remote_response(self, dialog, task, url_entry, bearer_entry):
response = dialog.choose_finish(task) response = dialog.choose_finish(task)
if not task or response == "remote": if not task or response == "remote":
self.ollama_instance.remote_url = url_entry.get_text() self.remote_connection_entry.set_text(url_entry.get_text())
self.ollama_instance.bearer_token = bearer_entry.get_text() self.remote_connection_switch.set_sensitive(url_entry.get_text())
self.ollama_instance.remote = True self.remote_bearer_token_entry.set_text(bearer_entry.get_text())
self.remote_connection_switch.set_active(True)
self.model_manager.update_local_list() self.model_manager.update_local_list()
elif response == "local": elif response == "local":
self.ollama_instance.remote = False self.ollama_instance.remote = False

View File

@ -19,7 +19,7 @@
""" """
Handles the main window 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 io import BytesIO
from PIL import Image from PIL import Image
from pypdf import PdfReader from pypdf import PdfReader
@ -777,6 +777,12 @@ Generate a title following these rules:
if show_launch_dialog: if show_launch_dialog:
GLib.idle_add(self.launch_dialog.present, self) 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 #Instance
self.launch_level_bar.set_value(0) self.launch_level_bar.set_value(0)
self.launch_status.set_description(_('Loading instance')) self.launch_status.set_description(_('Loading instance'))
@ -816,6 +822,8 @@ Generate a title following these rules:
GLib.idle_add(self.load_history) GLib.idle_add(self.load_history)
self.launch_level_bar.set_value(5) 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 #Close launch dialog
if show_launch_dialog: if show_launch_dialog:
GLib.idle_add(self.launch_dialog.force_close) 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']) self.background_switch.set_active(data['run_on_background'])
if 'idle_timer' not in data: if 'idle_timer' not in data:
data['idle_timer'] = 0 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: except Exception as e:
logger.error(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() threading.Thread(target=self.prepare_alpaca, args=(11435, '', False, {'temperature': 0.7, 'seed': 0, 'keep_alive': 5}, {}, '', 0, True, True)).start()