Clean create gradio
This commit is contained in:
@@ -294,10 +294,8 @@ with gr.Blocks(theme=gr.themes.Default()) as demo:
|
|||||||
with gr.Column(scale=1):
|
with gr.Column(scale=1):
|
||||||
chatbot = gr.Chatbot(label="Chatbot History", autoscroll=True, height=580)
|
chatbot = gr.Chatbot(label="Chatbot History", autoscroll=True, height=580)
|
||||||
with gr.Column(scale=3):
|
with gr.Column(scale=3):
|
||||||
# Get the fully qualified domain name of the machine
|
|
||||||
machine_fqdn = socket.getfqdn()
|
|
||||||
iframe = gr.HTML(
|
iframe = gr.HTML(
|
||||||
f'<iframe src="http://{machine_fqdn}:8006/vnc.html?view_only=1&autoconnect=1&resize=scale" width="100%" height="580" allow="fullscreen"></iframe>',
|
f'<iframe src="http://localhost:8006/vnc.html?view_only=1&autoconnect=1&resize=scale" width="100%" height="580" allow="fullscreen"></iframe>',
|
||||||
container=False,
|
container=False,
|
||||||
elem_classes="no-padding"
|
elem_classes="no-padding"
|
||||||
)
|
)
|
||||||
@@ -371,45 +369,6 @@ with gr.Blocks(theme=gr.themes.Default()) as demo:
|
|||||||
chatbot.clear(fn=clear_chat, inputs=[state], outputs=[chatbot])
|
chatbot.clear(fn=clear_chat, inputs=[state], outputs=[chatbot])
|
||||||
|
|
||||||
submit_button.click(process_input, [chat_input, state], chatbot)
|
submit_button.click(process_input, [chat_input, state], chatbot)
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
import uvicorn
|
|
||||||
from multiprocessing import Process
|
|
||||||
|
|
||||||
app = FastAPI()
|
|
||||||
|
|
||||||
# Mount the Gradio app under the "/gradio" path
|
|
||||||
app = gr.mount_gradio_app(app, demo, path="/gradio")
|
|
||||||
|
|
||||||
# Optional: Add a root endpoint that redirects to the Gradio interface
|
|
||||||
@app.get("/")
|
|
||||||
async def root():
|
|
||||||
return {"message": "Welcome to OmniParser Demo API",
|
|
||||||
"gradio_interface": "/gradio"}
|
|
||||||
|
|
||||||
# Create a second FastAPI app for VNC
|
|
||||||
vnc_app = FastAPI()
|
|
||||||
|
|
||||||
@vnc_app.get("/")
|
|
||||||
async def vnc_root():
|
|
||||||
return {"message": "VNC Server"}
|
|
||||||
|
|
||||||
def run_app(app, host, port):
|
|
||||||
uvicorn.run(app, host=host, port=port)
|
|
||||||
|
|
||||||
# To run this with uvicorn:
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Start the main app on port 7889
|
demo.launch(server_name="0.0.0.0", server_port=7888)
|
||||||
p1 = Process(target=run_app, args=(app, "0.0.0.0", 7889))
|
|
||||||
# Start the VNC app on port 8006
|
|
||||||
p2 = Process(target=run_app, args=(vnc_app, "0.0.0.0", 8006))
|
|
||||||
|
|
||||||
p1.start()
|
|
||||||
p2.start()
|
|
||||||
|
|
||||||
try:
|
|
||||||
p1.join()
|
|
||||||
p2.join()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
p1.terminate()
|
|
||||||
p2.terminate()
|
|
||||||
Reference in New Issue
Block a user