diff --git a/smartassist/src/startservices.py b/smartassist/src/startservices.py index 38fe5da..0394968 100644 --- a/smartassist/src/startservices.py +++ b/smartassist/src/startservices.py @@ -9,7 +9,7 @@ from backend import run_flask, tag import logging import requests import utils -from utils import GlobalState +from utils import GlobalState, fetch_models_from_endpoints global_state = GlobalState() # Configure root logger. The level will be adjusted later based on config file logger = global_state.getLogger(__name__) # Logger for this module, inherit properties of the root logger @@ -67,37 +67,10 @@ def configure(): logger.debug("backend = \n{}".format(json.dumps(global_state.get_backend(), indent=4))) logger.debug(f"Backend API endpoint is set to: {global_state.get_backend_api_ep()}") - if isinstance(updated_config.get('endpoints'),list): # Extract info on endpoint, model, url, provider et cetera from list - global_state.set_endpoints(endpoints=updated_config.get('endpoints')) # Extract and set list of endpoints + if isinstance(updated_config.get('endpoints'), list): # Extract info on endpoint, model, url, provider et cetera from list + global_state.set_endpoints(endpoints=updated_config.get('endpoints')) # Extract and set list of endpoints logger.debug("endpoints = \n{}".format(json.dumps(global_state.get_endpoints(), indent=4))) - for endpoint in global_state.get_endpoints(): - if endpoint["provider"] == "ollama": - if "requestOptions" in endpoint: # Check if authentication is needed - headers = { - "Content-Type": "application/json", - "Authorization": endpoint["requestOptions"]["headers"]["Authorization"] - } - # headers = { - # "Authorization": endpoint["requestOptions"]["headers"]["Authorization"] - # } - else: # otherwise proceed without authentication - headers = {"Content-Type": "application/json"} - # headers = None - # models = tag(url = endpoint["url"], headers = headers) # Ask for models (LLMs) available at endpoint - try: - models = requests.get(endpoint["url"] + "/api/tags", headers=headers).json() - # models = requests.get(endpoint["url"] + "/api/tags", headers=headers) - except requests.exceptions.RequestException as e: - print(f"Error: {e}") - - if isinstance(models, dict) and 'error' in models: - logger.error('Error fetching models from backend: %s', models['error']) - else: - endpoint["models"] = models.get("models", []) # get the list of models directly - logger.debug("models = \n{}".format(json.dumps(models, indent=4))) - if endpoint["model"] is not "AUTODETECT": # Check if specified model is available - # do something - logger.debug("Asking for specific model") + fetch_models_from_endpoints(global_state.get_endpoints(), global_state) # Call the new function # TODO: Remove this section when not needed anymore