Spaces:
Sleeping
Sleeping
import logging | |
import gradio as gr | |
import uvicorn | |
from fastapi import FastAPI | |
import routes | |
from helpers import formatters, session_logger | |
session_logger.change_logging() | |
app = FastAPI(title="fastapi_with_gradio...", version="1.0") | |
logging.info("FastAPI app created, including routes...") | |
app.include_router(routes.router) | |
logging.info("routes included, creating gradio app") | |
CUSTOM_GRADIO_PATH = "/" | |
def get_gradio_app(): | |
with gr.Blocks() as gradio_app: | |
gr.Markdown( | |
""" | |
# Hello World! | |
Start typing below to _see_ the *output*. | |
Here a [link](https://huggingface.co/spaces/aletrn/gradio_with_fastapi). | |
""" | |
) | |
btn = gr.Button(value="Divide et Impera") | |
text_input = gr.Textbox(lines=1, placeholder="10", label="write an integer to divide 100; 0 will raise ZeroDivisionError") | |
text_output = gr.Textbox(lines=1, placeholder=None, label="Text Output") | |
gr.Examples( | |
examples=[19, 1, -7, 0], | |
inputs=[text_input], | |
) | |
btn.click( | |
formatters.request_formatter, | |
inputs=[text_input], | |
outputs=[text_output] | |
) | |
return gradio_app | |
logging.info("mounting gradio app within FastAPI...") | |
gradio_app_md = get_gradio_app() | |
app = gr.mount_gradio_app(app, gradio_app_md, path=CUSTOM_GRADIO_PATH) | |
logging.info("gradio app mounted") | |
if __name__ == '__main__': | |
uvicorn.run(app, host="0.0.0.0", port=7860) | |