Download main.py from stalkerrr/g4f: direct link, hf CLI and curl.
- Browser
- Download file 953 Bytes
-
https://huggingface.co/spaces/stalkerrr/g4f/resolve/main/main.py
- Command line
-
hf download hf://spaces/stalkerrr/g4f/main.py
-
curl -L -o main.py https://huggingface.co/spaces/stalkerrr/g4f/resolve/main/main.py
953 Bytes
| import threading | |
| import uvicorn | |
| import g4f.gui.server.app as gui_module | |
| from g4f.mcp.server import main as mcp_app | |
| from fastapi import FastAPI | |
| from starlette.middleware.wsgi import WSGIMiddleware | |
| # 1. Setup the MCP Wrapper | |
| mcp_wrapper = FastAPI() | |
| mcp_wrapper.mount("/mcp", mcp_app(http=True)) | |
| def run_mcp(): | |
| # Run MCP internally on a different port | |
| uvicorn.run(mcp_wrapper, host="127.0.0.1", port=8765) | |
| # 2. Setup the GUI | |
| gui_flask_app = getattr(gui_module, 'app', None) | |
| if gui_flask_app is None: | |
| gui_flask_app = gui_module.create_app() | |
| # 3. Execution Logic | |
| if __name__ == "__main__": | |
| # Start MCP in a background thread so it doesn't block | |
| threading.Thread(target=run_mcp, daemon=True).start() | |
| print("🚀 G4F GUI starting on 7860 (Hugging Face heartbeat)...") | |
| # Run the Flask app directly. This is what HF expects to see. | |
| # This prevents the 'Starting...' hang. | |
| gui_flask_app.run(host="0.0.0.0", port=7860) | |