Merge pull request #136 from chongy076/chong-app_patch1

Chong app patch1 - Improve socket serving and prevent session timeout
This commit is contained in:
Saifeddine ALOUI 2023-05-01 23:44:36 +02:00 committed by GitHub
commit 49bc2ef95b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

19
app.py
View File

@ -40,7 +40,7 @@ from geventwebsocket.handler import WebSocketHandler
from gevent.pywsgi import WSGIServer
app = Flask("GPT4All-WebUI", static_url_path="/static", static_folder="static")
socketio = SocketIO(app, async_mode='gevent')
socketio = SocketIO(app, async_mode='gevent', ping_timeout=30, ping_interval=15)
app.config['SECRET_KEY'] = 'secret!'
# Set the logging level to WARNING or higher
logging.getLogger('socketio').setLevel(logging.WARNING)
@ -610,27 +610,26 @@ if __name__ == "__main__":
# app.config['executor'] = executor
bot = Gpt4AllWebUI(app, socketio, config, personality, config_file_path)
# chong Define custom WebSocketHandler with error handling
class CustomWebSocketHandler(WebSocketHandler):
def handle_error(self, environ, start_response, e):
# Handle the error here
print("WebSocket error:", e)
super().handle_error(environ, start_response, e)
# chong -add socket server
http_server = WSGIServer((config["host"], config["port"]), app, handler_class=CustomWebSocketHandler)
http_server = WSGIServer((config["host"], config["port"]), app, handler_class=WebSocketHandler)
url = f'http://{config["host"]}:{config["port"]}'
print(f"Please open your browser and go to {url} to view the ui")
# chong -add socket server
app.config['debug'] = config["debug"]
if config["debug"]:
socketio.run(app,debug=True, host=config["host"], port=config["port"])
print("debug mode:true")
else:
socketio.run(app, host=config["host"], port=config["port"])
print("debug mode:false")
http_server = WSGIServer((config["host"], config["port"]), app, handler_class=WebSocketHandler)
# if config["debug"]:
# app.run(debug=True, host=config["host"], port=config["port"])