Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, Request | |
| import logging | |
| import gradio as gr | |
| from threading import Thread | |
| from pydantic import BaseModel | |
| app = FastAPI() | |
| # Shared state to store the IP address | |
| class SharedState(BaseModel): | |
| client_ip: str = "" | |
| shared_state = SharedState() | |
| async def read_root(request: Request): | |
| client_ip = request.client.host | |
| logging.info(f'Client IP Address: {client_ip}') | |
| shared_state.client_ip = client_ip | |
| return {"Client IP Address": client_ip} | |
| def gradio_interface(): | |
| def greet(name): | |
| # Debug print | |
| print(f"Shared state IP: {shared_state.client_ip}") | |
| return f"Hello {name}! Last client IP: {shared_state.client_ip}" | |
| iface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| iface.launch() | |
| if __name__ == "__main__": | |
| # Run FastAPI app | |
| from uvicorn import run | |
| Thread(target=lambda: run(app, host="0.0.0.0", port=8000)).start() | |
| # Run Gradio app | |
| gradio_interface() | |