From a4189360d173ead608c5ac1df10bad007faa7e57 Mon Sep 17 00:00:00 2001 From: Joakim Persson Date: Sun, 4 Aug 2024 15:26:46 +0200 Subject: [PATCH] =?UTF-8?q?Anpassat=20anrop=20f=C3=B6r=20att=20h=C3=A4mta?= =?UTF-8?q?=20lista=20av=20endpoints=20till=20den=20nya=20klassmetoden.=20?= =?UTF-8?q?S=C3=A4tter=20url=20och=20llm=20enligt=20f=C3=B6rsta=20modellen?= =?UTF-8?q?=20i=20f=C3=B6rsta=20endpoint=20i=20yaml-konfigurationen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- smartassist/src/startservices.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/smartassist/src/startservices.py b/smartassist/src/startservices.py index 39d6555..4f68c8b 100644 --- a/smartassist/src/startservices.py +++ b/smartassist/src/startservices.py @@ -5,11 +5,11 @@ import yaml import json import socket import urllib.parse -from backend import run_flask, tag +from backend import run_flask import logging import requests import utils -from utils import GlobalState, fetch_models_from_endpoints +from utils import GlobalState 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 @@ -44,7 +44,7 @@ def configure(): def update_dict_with_env_vars(d): # Check all keys in d for key in d: # Iterate over all keys in the dictionary. The keys seen are all at the top-level of d - logger.info(f"key investigated now: {key}") + # logger.info(f"key investigated now: {key}") d[key] = update_value(d[key]) return d @@ -70,19 +70,23 @@ def configure(): 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))) - fetch_models_from_endpoints(global_state.get_endpoints(), global_state) # Call the new function + global_state.fetch_models() endpoints = global_state.get_endpoints() for endpoint in endpoints: # Set default LLM for each endpoint available_llms = global_state.get_list_of_available_llms(endpoint=endpoint) llm = next(iter(available_llms),None) # First available LLM or None. Default for AUTODETECT and requests for non-existing LLMs logger.debug(f"url {endpoint['url']} = {available_llms}") - if endpoint["model"] in available_llms: # Check if specific LLM requested + if endpoint["model"] in available_llms: # Check if specific LLM requested, AUTODETECT evaluates to False llm = endpoint["model"] endpoint["default_llm"] = llm - - global_state.set_host_url(next(iter(endpoints),None)) # Set initial host to the first item in endpoints (or None) - global_state.set_llm(llm) # Set which server and llm to use + default_endpoint = next(iter(endpoints),None) # Set default_endpoint to first endpoint from list of endpoints + default_llm = default_endpoint["default_llm"] # Get default LLM for default_endpoint + default_ulr = default_endpoint["url"] # Get ulr of default_endpoint + global_state.set_host_url(default_ulr) # Set initial host to the first item in endpoints (or None) + global_state.set_llm(default_llm) # Set which llm to use + logger.debug(f"Desired default endpoint: {default_ulr},\tDesired default LLM: {default_llm}") + logger.debug(f"Returned default endpoint: {global_state.get_host_url()},\tReturned default LLM: {global_state.get_llm()}") return updated_config