RFTSystems commited on
Commit
5563105
·
verified ·
1 Parent(s): 6eea3ca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -13
app.py CHANGED
@@ -1,25 +1,36 @@
 
 
1
  import gradio as gr
2
  import numpy as np
3
- from fastapi import FastAPI
4
 
5
  # ============================================================
6
- # RFT-Ω Harmonic Demo — Public API + Gradio Interface
7
  # ============================================================
8
 
9
- # --- FastAPI endpoints ---
10
- api = FastAPI(title="RFT-Ω Kernel Demo")
11
 
12
- @api.get("/rft/ping")
 
 
 
 
 
 
 
 
 
13
  def ping():
14
  return {"ok": True, "message": "RFT-Ω API online"}
15
 
16
- @api.get("/rft/metrics")
17
  def metrics():
18
  q_omega = float(np.random.uniform(0.82, 0.89))
19
  z_sync = float(np.random.uniform(0.75, 0.88))
20
  return {"QΩ": q_omega, "ζ_sync": z_sync}
21
 
22
- # --- Gradio interface ---
23
  def ui_fn():
24
  q = float(np.random.uniform(0.82, 0.89))
25
  z = float(np.random.uniform(0.75, 0.88))
@@ -30,11 +41,12 @@ demo = gr.Interface(
30
  inputs=[],
31
  outputs="text",
32
  title="RFT-Ω Harmonic Demo",
33
- description="Endpoints live at /rft/ping and /rft/metrics for JSON access."
34
  )
35
 
36
- # --- Launch section ---
37
- # Hugging Face runs Gradio natively, so we start the demo first,
38
- # and attach FastAPI for direct endpoint access.
39
- demo.app = api
40
- demo.launch()
 
 
1
+ from fastapi import FastAPI
2
+ from fastapi.middleware.cors import CORSMiddleware
3
  import gradio as gr
4
  import numpy as np
5
+ import uvicorn
6
 
7
  # ============================================================
8
+ # RFT-Ω Harmonic Demo — Unified FastAPI + Gradio
9
  # ============================================================
10
 
11
+ # --- Core FastAPI ---
12
+ app = FastAPI(title="RFT-Ω Kernel Demo")
13
 
14
+ app.add_middleware(
15
+ CORSMiddleware,
16
+ allow_origins=["*"],
17
+ allow_credentials=True,
18
+ allow_methods=["*"],
19
+ allow_headers=["*"],
20
+ )
21
+
22
+ # --- API endpoints ---
23
+ @app.get("/rft/ping")
24
  def ping():
25
  return {"ok": True, "message": "RFT-Ω API online"}
26
 
27
+ @app.get("/rft/metrics")
28
  def metrics():
29
  q_omega = float(np.random.uniform(0.82, 0.89))
30
  z_sync = float(np.random.uniform(0.75, 0.88))
31
  return {"QΩ": q_omega, "ζ_sync": z_sync}
32
 
33
+ # --- Gradio UI ---
34
  def ui_fn():
35
  q = float(np.random.uniform(0.82, 0.89))
36
  z = float(np.random.uniform(0.75, 0.88))
 
41
  inputs=[],
42
  outputs="text",
43
  title="RFT-Ω Harmonic Demo",
44
+ description="Use /rft/ping and /rft/metrics for API JSON access."
45
  )
46
 
47
+ # Mount the Gradio app at root so both systems coexist
48
+ app = gr.mount_gradio_app(app, demo, path="/")
49
+
50
+ # --- Launch only if running locally (Hugging Face auto-runs it) ---
51
+ if __name__ == "__main__":
52
+ uvicorn.run(app, host="0.0.0.0", port=7860)