Tran Dang Khoa commited on
Commit
6aaa6d2
·
1 Parent(s): 86efd20

Add application file

Browse files
Files changed (1) hide show
  1. webui.py +35 -0
webui.py CHANGED
@@ -175,6 +175,41 @@ else:
175
  default_batch_size = 1
176
  gpus = "-".join(str(i) for i in gpu_indices)
177
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
 
179
  class ToolButton(gr.Button, gr.components.FormComponent):
180
  """Small button with single emoji as text, fits inside gradio forms"""
 
175
  default_batch_size = 1
176
  gpus = "-".join(str(i) for i in gpu_indices)
177
 
178
+ # Simple HTTP health-check endpoint when Gradio is running as a server.
179
+ try:
180
+ # Import only when available to avoid hard dependency at module import time.
181
+ from http.server import BaseHTTPRequestHandler, HTTPServer
182
+
183
+ class _HealthHandler(BaseHTTPRequestHandler):
184
+ def do_GET(self):
185
+ if self.path == "/healthz":
186
+ self.send_response(200)
187
+ self.send_header("Content-Type", "text/plain; charset=utf-8")
188
+ self.end_headers()
189
+ self.wfile.write(b"ok")
190
+ else:
191
+ self.send_response(404)
192
+ self.end_headers()
193
+
194
+ # Expose a function to start the health server on demand.
195
+ def start_health_server(port):
196
+ try:
197
+ server = HTTPServer(("0.0.0.0", port), _HealthHandler)
198
+ except Exception:
199
+ return None
200
+
201
+ def _serve():
202
+ try:
203
+ server.serve_forever()
204
+ except Exception:
205
+ pass
206
+
207
+ t = threading.Thread(target=_serve, daemon=True)
208
+ t.start()
209
+ return server
210
+ except Exception:
211
+ start_health_server = None
212
+
213
 
214
  class ToolButton(gr.Button, gr.components.FormComponent):
215
  """Small button with single emoji as text, fits inside gradio forms"""