summaryrefslogblamecommitdiffstats
path: root/g4f/gui/__init__.py
blob: d2dfbbc5f0659503e1b5472843ce811f37a4e1ef (plain) (tree)
1
2
3
4
5
6
7






                                                                                    














                                                                                
    









                                                              
                                           
try:
    from .server.app     import app
    from .server.website import Website
    from .server.backend import Backend_Api
except ImportError:
    from g4f.errors import MissingRequirementsError
    raise MissingRequirementsError('Install "flask" and "werkzeug" package for gui')

def run_gui(host: str = '0.0.0.0', port: int = 80, debug: bool = False) -> None:
    config = {
        'host' : host,
        'port' : port,
        'debug': debug
    }
    
    site = Website(app)
    for route in site.routes:
        app.add_url_rule(
            route,
            view_func = site.routes[route]['function'],
            methods   = site.routes[route]['methods'],
        )
    
    backend_api  = Backend_Api(app)
    for route in backend_api.routes:
        app.add_url_rule(
            route,
            view_func = backend_api.routes[route]['function'],
            methods   = backend_api.routes[route]['methods'],
        )
    
    print(f"Running on port {config['port']}")
    app.run(**config)
    print(f"Closing port {config['port']}")