Flyttat ut kod för att hämta data från endpoints till utils.py

This commit is contained in:
2024-08-03 18:43:56 +02:00
parent 41c0c86d82
commit 2e24be1e44
+2 -29
View File
@@ -9,7 +9,7 @@ from backend import run_flask, tag
import logging import logging
import requests import requests
import utils 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 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 logger = global_state.getLogger(__name__) # Logger for this module, inherit properties of the root logger
@@ -70,34 +70,7 @@ def configure():
if isinstance(updated_config.get('endpoints'), list): # Extract info on endpoint, model, url, provider et cetera from list 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 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))) logger.debug("endpoints = \n{}".format(json.dumps(global_state.get_endpoints(), indent=4)))
for endpoint in global_state.get_endpoints(): fetch_models_from_endpoints(global_state.get_endpoints(), global_state) # Call the new function
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")
# TODO: Remove this section when not needed anymore # TODO: Remove this section when not needed anymore