Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3b2577084e | |||
| eaba29fc6f | |||
| a5d54c2cb6 |
+13
-16
@@ -6,16 +6,13 @@ from flask_cors import CORS, cross_origin # CORS stands for Cross-Origin Resourc
|
||||
import requests
|
||||
import json
|
||||
import logging
|
||||
import utils
|
||||
from utils import set_local_logger, run_flask
|
||||
from utils import set_local_logger
|
||||
|
||||
global log_level # Global variable to store the log level that is set in startservices.py
|
||||
logger = logging.getLogger(__name__) # Separate logger for this module
|
||||
set_local_logger(logger) # Set log level for logger based on log_level
|
||||
set_local_logger(logger) # Set log level for logger
|
||||
|
||||
# Initialize a Flask application
|
||||
app = Flask(__name__)
|
||||
# CORS(app, resources={r"/api/chat": {"origins": "*", "headers": ["Origin", "Content-Type", "Authorization"]}}) # Allow requests from any origin
|
||||
CORS(app, resources={
|
||||
r"/api/chat": {
|
||||
"origins": "*",
|
||||
@@ -89,20 +86,20 @@ def get_response(user_query):
|
||||
# Return the generated response
|
||||
return response
|
||||
|
||||
# def run_flask(fport=5005):
|
||||
# """
|
||||
# Starts the Flask server
|
||||
# """
|
||||
# # Flask endpoint for user interaction
|
||||
# logger.debug("Entering run_flask()")
|
||||
# # app.run(port = str(str(fport)), debug=False)
|
||||
# app.run(port = str(str(fport)), debug=True)
|
||||
# # app.run(port=5000, debug=True, use_reloader=False)
|
||||
# logger.debug("Exiting run_flask()")
|
||||
def run_flask(fport=5005):
|
||||
"""
|
||||
Starts the Flask server
|
||||
"""
|
||||
# Flask endpoint for user interaction
|
||||
logger.debug("Entering run_flask()")
|
||||
# app.run(port = str(str(fport)), debug=False)
|
||||
app.run(port = str(str(fport)), debug=True)
|
||||
# app.run(port=5000, debug=True, use_reloader=False)
|
||||
logger.debug("Exiting run_flask()")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Run the Flask application
|
||||
run_flask(app)
|
||||
run_flask()
|
||||
|
||||
|
||||
|
||||
@@ -3,30 +3,14 @@ import subprocess
|
||||
import os
|
||||
import yaml
|
||||
import json
|
||||
# from backend import run_flask
|
||||
import socket
|
||||
import urllib.parse
|
||||
import logging
|
||||
import utils
|
||||
from utils import set_local_logger, run_flask
|
||||
from utils import set_local_logger
|
||||
from backend import run_flask
|
||||
|
||||
# global log_level
|
||||
|
||||
# logger = logging.getLogger(__name__)
|
||||
|
||||
# def set_local_logger(log_instance):
|
||||
# """
|
||||
# Configure logging based on the global variable log_level
|
||||
# Logging is controlled by integer values, where DEBUG < INFO < WARNING < ERROR < CRITICAL.
|
||||
# To turn off logging completely, set numeric_log_level to at least CRITICAL + 1.
|
||||
# """
|
||||
# global log_level
|
||||
# numeric_log_level = getattr(logging, log_level, None)
|
||||
# if not isinstance(numeric_log_level, int):
|
||||
# raise ValueError('Invalid log level: %s' % log_level)
|
||||
|
||||
# logging.basicConfig(level=numeric_log_level) # Set the root logger level to the configured level
|
||||
# log_instance.info('Log level set to {}'.format(log_level)) # Example usage of the logger
|
||||
logger = logging.getLogger(__name__) # Logger for this module
|
||||
|
||||
def configure():
|
||||
"""
|
||||
@@ -61,14 +45,14 @@ def configure():
|
||||
# Extract global logging level
|
||||
##################
|
||||
# The log_level variable will be used by the logger module to set the log level
|
||||
global log_level # REALLY NECESSARY TO DEFINE THIS GLOBAL AGAIN???
|
||||
log_level = 'INFO' # Default value if not specified in the config file
|
||||
# global log_level # Must be defined within function if referencing the global variable log_level defined outside this function
|
||||
if isinstance(updated_config.get('logging'), dict): # Look for 'logging' key in config file
|
||||
logging_config = updated_config['logging']
|
||||
if isinstance(logging_config.get('level'), str): # Set to value of the yaml file if specified
|
||||
log_level = logging_config['level']
|
||||
utils.log_level = logging_config['level']
|
||||
|
||||
|
||||
set_local_logger(utils.logger) # Set log level for logger based on log_level
|
||||
set_local_logger(logger) # Set log level for logger based on log_level
|
||||
|
||||
return updated_config
|
||||
|
||||
@@ -83,16 +67,16 @@ def start_frontend(config):
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
try:
|
||||
s.bind((hostname, port))
|
||||
utils.logger.info("No server is running on %s -— starting one.", parsed_url.netloc)
|
||||
logger.info("No server is running on %s -— starting one.", parsed_url.netloc)
|
||||
# Start frontend (web server) as a separate process
|
||||
subprocess.Popen(["python", "-m", "http.server", str(port)])
|
||||
except socket.error as e:
|
||||
if e.errno == 48:
|
||||
utils.logger.error("A server is already running on %s -— will use this.", parsed_url.netloc)
|
||||
logger.error("A server is already running on %s -— will use this.", parsed_url.netloc)
|
||||
else:
|
||||
raise # Unexpected error, re-raise it so we can see the traceback
|
||||
except Exception as e:
|
||||
utils.logger.error("Failed to start frontend: %s", str(e)) # Corresponds to print(f"Failed to start frontend: {e}")
|
||||
logger.error("Failed to start frontend: %s", str(e)) # Corresponds to print(f"Failed to start frontend: {e}")
|
||||
|
||||
|
||||
|
||||
@@ -100,17 +84,17 @@ def start_backend(config):
|
||||
parsed_url = urllib.parse.urlparse(config['backend']['url'])
|
||||
# hostname = parsed_url.netloc.split(':')[0] # Split by ':' and take the first part, i.e., 'localhost', IP, or domain name
|
||||
port = parsed_url.port # This is the server port
|
||||
utils.logger.debug('Backend parsed url set to {}'.format(parsed_url))
|
||||
utils.logger.debug('Backend port set to {}'.format(port))
|
||||
logger.debug('Backend parsed url set to {}'.format(parsed_url))
|
||||
logger.debug('Backend port set to {}'.format(port))
|
||||
|
||||
try:
|
||||
run_flask(fport = port)
|
||||
except Exception as e:
|
||||
utils.logger.error("Failed to start backend: %s", str(e)) # Corresponds to print(f"Failed to start backend: {e}")
|
||||
logger.error("Failed to start backend: %s", str(e)) # Corresponds to print(f"Failed to start backend: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
conf = configure() # Read config from file and set up config dict
|
||||
utils.logger.debug('conf dictionary set to {}'.format(json.dumps(conf, indent=4)))
|
||||
logger.debug('conf dictionary set to {}'.format(json.dumps(conf, indent=4)))
|
||||
start_frontend(config=conf)
|
||||
start_backend(config=conf)
|
||||
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
# imported to more than one other module. The rational for defining these things here
|
||||
# is that it is easier to avoid circular imports when they are defined in a central location.
|
||||
import logging
|
||||
global log_level # Remember, in Python globals are only global in the module it is defined in
|
||||
log_level = 'INFO' # Default logging level
|
||||
|
||||
global log_level
|
||||
log_level = 'INFO'
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def set_local_logger(log_instance):
|
||||
"""
|
||||
@@ -22,14 +20,3 @@ def set_local_logger(log_instance):
|
||||
logging.basicConfig(level=numeric_log_level) # Set the root logger level to the configured level
|
||||
log_instance.info('Log level set to {}'.format(log_level)) # Example usage of the logger
|
||||
|
||||
|
||||
def run_flask(app, fport=5005):
|
||||
"""
|
||||
Starts the Flask server
|
||||
"""
|
||||
# Flask endpoint for user interaction
|
||||
logger.debug("Entering run_flask()")
|
||||
# app.run(port = str(str(fport)), debug=False)
|
||||
app.run(port = str(str(fport)), debug=True)
|
||||
# app.run(port=5000, debug=True, use_reloader=False)
|
||||
logger.debug("Exiting run_flask()")
|
||||
Reference in New Issue
Block a user