Package: gradio-client
gradio_client: Use a Gradio app as an API -- in 3 lines of PythonThis directory contains the source code forgradio_client, a lightweight Python library that makes it very easy to use any Gradio app as an API.As an example, consider thisHugging Face Space that transcribes audio filesthat are recorded from the microphone.Using thegradio_clientlibrary, we can easily use the Gradio as an API to transcribe audio files programmatically.Here's the entire code to do it:fromgradio_clientimportClientclient=Client("abidlabs/whisper")client.predict("audio_sample.wav")>>"This is a test of the whisper speech recognition model."The Gradio client works with any Gradio Space, whether it be an image generator, a stateful chatbot, or a tax calculator.InstallationIf you already have a recent version ofgradio, then thegradio_clientis included as a dependency.Otherwise, the lightweightgradio_clientpackage can be installed from pip (or pip3) and works with Python versions 3.8 or higher:$pipinstallgradio_clientBasic UsageConnecting to a Space or a Gradio appStart by connecting instantiating aClientobject and connecting it to a Gradio app that is running on Spaces (or anywhere else)!Connecting to a Spacefromgradio_clientimportClientclient=Client("abidlabs/en2fr")# a Space that translates from English to FrenchYou can also connect to private Spaces by passing in your HF token with thehf_tokenparameter. You can get your HF token here:https://huggingface.co/settings/tokensfromgradio_clientimportClientclient=Client("abidlabs/my-private-space",hf_token="...")Duplicating a Space for private useWhile you can use any public Space as an API, you may get rate limited by Hugging Face if you make too many requests. For unlimited usage of a Space, simply duplicate the Space to create a private Space,
and then use it to make as many requests as you'd like!Thegradio_clientincludes a class method:Client.duplicate()to make this process simple:fromgradio_clientimportClientclient=Client.duplicate("abidlabs/whisper")client.predict("audio_sample.wav")>>"This is a test of the whisper speech recognition model."If you have previously duplicated a Space, re-runningduplicate()willnotcreate a new Space. Instead, the Client will attach to the previously-created Space. So it is safe to re-run theClient.duplicate()method multiple times.Note:if the original Space uses GPUs, your private Space will as well, and your Hugging Face account will get billed based on the price of the GPU. To minimize charges, your Space will automatically go to sleep after 1 hour of inactivity. You can also set the hardware using thehardwareparameter ofduplicate().Connecting a general Gradio appIf your app is running somewhere else, just provide the full URL instead, including the "http://" or "https://". Here's an example of making predictions to a Gradio app that is running on a share URL:fromgradio_clientimportClientclient=Client("https://bec81a83-5b5c-471e.gradio.live")Inspecting the API endpointsOnce you have connected to a Gradio app, you can view the APIs that are available to you by calling the.view_api()method. For the Whisper Space, we see the following:Client.predict() Usage Info
---------------------------
Named API endpoints: 1

 - predict(input_audio, api_name="/predict") -> value_0
    Parameters:
     - [Audio] input_audio: str (filepath or URL)
    Returns:
     - [Textbox] value_0: str (value)This shows us that we have 1 API endpoint in this space, and shows us how to use the API endpoint to make a prediction: we should call the.predict()method, providing a parameterinput_audioof typestr, which is afilepath or URL.We should also provide theapi_name='/predict'argument. Although this isn't necessary if a Gradio app has a single named endpoint, it does allow us to call different endpoints in a single app if they are available. If an app has unnamed API endpoints, these can also be displayed by running.view_api(all_endpoints=True).Making a predictionThe simplest way to make a prediction is simply to call the.predict()function with the appropriate arguments:fromgradio_clientimportClientclient=Client("abidlabs/en2fr")client.predict("Hello")>>BonjourIf there are multiple parameters, then you should pass them as separate arguments to.predict(), like this:fromgradio_clientimportClientclient=Client("gradio/calculator")client.predict(4,"add",5)>>9.0For certain inputs, such as images, you should pass in the filepath or URL to the file. Likewise, for the corresponding output types, you will get a filepath or URL returned.fromgradio_clientimportClientclient=Client("abidlabs/whisper")client.predict("https://audio-samples.github.io/samples/mp3/blizzard_unconditional/sample-0.mp3")>>"My thought I have nobody by a beauty and will as you poured. Mr. Rochester is serve in that so don't find simpus, and devoted abode, to at might in a r—"Advanced UsageFor more ways to use the Gradio Python Client, check out our dedicated Guide on the Python client, available here:https://www.gradio.app/guides/getting-started-with-the-python-client