chuckfinca Claude Opus 4.6 (1M context) commited on
Commit
c3de2b1
·
1 Parent(s): 826a3c8

Add Gradio API endpoint via hidden component — works on HF Spaces

Browse files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +12 -26
app.py CHANGED
@@ -456,6 +456,17 @@ def build_app() -> gr.Blocks:
456
  ],
457
  )
458
 
 
 
 
 
 
 
 
 
 
 
 
459
  return demo
460
 
461
 
@@ -519,33 +530,8 @@ def ask_question(question: str) -> dict:
519
 
520
 
521
  WORKSPACE_DIR = load_workspace()
522
- demo = build_app()
523
-
524
- # Add API routes to Gradio's underlying FastAPI app
525
- import fastapi as _fastapi
526
- from fastapi.middleware.cors import CORSMiddleware
527
-
528
- demo.app.add_middleware(
529
- CORSMiddleware,
530
- allow_origins=["*"],
531
- allow_methods=["*"],
532
- allow_headers=["*"],
533
- )
534
-
535
-
536
- @demo.app.post("/api/ask")
537
- async def api_ask(request: _fastapi.Request):
538
- body = await request.json()
539
- question = body.get("question", "")
540
- if not question:
541
- return {"error": "No question provided"}
542
- return ask_question(question)
543
-
544
-
545
- @demo.app.get("/api/remaining")
546
- async def api_remaining():
547
- return {"remaining": _remaining(), "limit": DAILY_LIMIT}
548
 
549
 
550
  if __name__ == "__main__":
 
551
  demo.launch(ssr_mode=False)
 
456
  ],
457
  )
458
 
459
+ # Hidden API endpoint for custom chat UI
460
+ api_input = gr.Textbox(visible=False)
461
+ api_output = gr.Textbox(visible=False)
462
+
463
+ def api_ask(question):
464
+ result = ask_question(question)
465
+ return json.dumps(result)
466
+
467
+ api_btn = gr.Button(visible=False)
468
+ api_btn.click(api_ask, inputs=api_input, outputs=api_output, api_name="ask")
469
+
470
  return demo
471
 
472
 
 
530
 
531
 
532
  WORKSPACE_DIR = load_workspace()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
533
 
534
 
535
  if __name__ == "__main__":
536
+ demo = build_app()
537
  demo.launch(ssr_mode=False)