import gradio def my_inference_function(name): return "Hello " + name + "!" gradio_interface = gradio.Interface( fn=my_inference_function, inputs="text", outputs="text", examples=[ ["Jill"], ["Sam"] ], title="REST API with Gradio and Huggingface Spaces", description="This is a demo of how to build an AI powered REST API with Gradio and Huggingface Spaces – for free! Based on [this article](https://www.tomsoderlund.com/ai/building-ai-powered-rest-api). See the **Use via API** link at the bottom of this page.", article="Test 2023" ) gradio_interface.launch() # import gradio as gr # import inspect # from gradio import routes # from typing import List, Type # # Monkey patch # def get_types(cls_set: List[Type], component: str): # docset = [] # types = [] # if component == "input": # for cls in cls_set: # doc = inspect.getdoc(cls) # doc_lines = doc.split("\n") # docset.append(doc_lines[1].split(":")[-1]) # types.append(doc_lines[1].split(")")[0].split("(")[-1]) # else: # for cls in cls_set: # doc = inspect.getdoc(cls) # doc_lines = doc.split("\n") # docset.append(doc_lines[-1].split(":")[-1]) # types.append(doc_lines[-1].split(")")[0].split("(")[-1]) # return docset, types # routes.get_types = get_types # # App code # def hallo(x): # return f"Hallo, {x}" # def hadet(x): # return f"Hadet, {x}" # with gr.Blocks() as blk: # # gr.Markdown("# Gradio Blocks (3.0) with REST API") # t = gr.Textbox() # b = gr.Button("Hallo") # a = gr.Button("Hadet") # o = gr.Textbox() # b.click(hallo, inputs=[t], outputs=[o]) # a.click(hadet, inputs=[t], outputs=[o]) # # gr.Markdown(""" # # ## API # # Can select which function to use by passing in `fn_index`: # # ```python # # import requests # # requests.post( # # url="https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/", json={"data": ["Jessie"], "fn_index": 0} # # ).json() # # requests.post( # # url="https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/", json={"data": ["Jessie"], "fn_index": 1} # # ).json() # # ``` # # Or using cURL # # ``` # # $ curl -X POST https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/ -H 'Content-Type: application/json' -d '{"data": ["Jessie"], "fn_index": 0}' # # $ curl -X POST https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/ -H 'Content-Type: application/json' -d '{"data": ["Jessie"], "fn_index": 1}' # # ```""") # ifa = gr.Interface(lambda: None, inputs=[t], outputs=[o]) # blk.input_components = ifa.input_components # blk.output_components = ifa.output_components # blk.examples = None # blk.predict_durations = [] # bapp = blk.launch()