readme: <!-- DO NOT EDIT THIS FILE DIRECTLY. INSTEAD EDIT THE `readme_template.md` OR `guides/1)getting_started/1)quickstart.md` TEMPLATES AND THEN RUN `render_readme.py` SCRIPT. -->
  
  <div align="center">
  
    [<img src="readme_files/gradio.svg" alt="gradio" width=300>](https://gradio.app)<br>
    <em>Build & share delightful machine learning apps easily</em>
  
    [<img src="https://circleci.com/gh/gradio-app/gradio.svg?style=svg" alt="circleci">](https://circleci.com/gh/gradio-app/gradio)
    [<img src="https://codecov.io/gh/gradio-app/gradio/branch/master/graph/badge.svg" alt="codecov">](https://app.codecov.io/gh/gradio-app/gradio)
    [![PyPI](https://img.shields.io/pypi/v/gradio)](https://pypi.org/project/gradio/)
    [![PyPI downloads](https://img.shields.io/pypi/dm/gradio)](https://pypi.org/project/gradio/)
    ![Python version](https://img.shields.io/badge/python-3.7+-important)
    [![Twitter follow](https://img.shields.io/twitter/follow/gradio?style=social&label=follow)](https://twitter.com/gradio)
  
    [Website](https://gradio.app)
    | [Documentation](https://gradio.app/docs/)
    | [Guides](https://gradio.app/guides/)
    | [Getting Started](https://gradio.app/getting_started/)
    | [Examples](demo/)
  </div>
  
  # Gradio: Build Machine Learning Web Apps — in Python
  
  Gradio is an open-source Python library that is used to build machine learning and data science demos and web applications.
  
  With Gradio, you can quickly create a beautiful user interface around your machine learning models or data science workflow and let people "try it out" by dragging-and-dropping in their own images,
  pasting text, recording their own voice, and interacting with your demo, all through the browser.
  
  ![Interface montage](readme_files/header-image.jpg)
  
  Gradio is useful for:
  
  - **Demoing** your machine learning models for clients/collaborators/users/students.
  
  - **Deploying** your models quickly with automatic shareable links and getting feedback on model performance.
  
  - **Debugging** your model interactively during development using built-in manipulation and interpretation tools.
  
  ## Quickstart
  
  **Prerequisite**: Gradio requires Python 3.7 or higher, that's all!
  
  ### What Does Gradio Do?
  
  One of the *best ways to share* your machine learning model, API, or data science workflow with others is to create an **interactive app** that allows your users or colleagues to try out the demo in their browsers.
  
  Gradio allows you to **build demos and share them, all in Python.** And usually in just a few lines of code! So let's get started.
  
  ### Hello, World
  
  To get Gradio running with a simple "Hello, World" example, follow these three steps:
  
  1\. Install Gradio using pip:
  
  ```bash
  pip install gradio
  ```
  
  2\. Run the code below as a Python script or in a Jupyter Notebook (or [Google Colab](https://colab.research.google.com/drive/18ODkJvyxHutTN0P5APWyGFO_xwNcgHDZ?usp=sharing)):
  
  ```python
  import gradio as gr
  
  def greet(name):
      return "Hello " + name + "!"
  
  demo = gr.Interface(fn=greet, inputs="text", outputs="text")
  demo.launch()
  ```
  
  
  3\. The demo below will appear automatically within the Jupyter Notebook, or pop in a browser on [http://localhost:7860](http://localhost:7860) if running from a script:
  
  ![`hello_world` demo](demo/hello_world/screenshot.gif)
  
  ### The `Interface` Class
  
  You'll notice that in order to make the demo, we created a `gradio.Interface`. This `Interface` class can wrap any Python function with a user interface. In the example above, we saw a simple text-based function, but the function could be anything from music generator to a tax calculator to the prediction function of a pretrained machine learning model.
  
  The core `Interface` class is initialized with three required parameters:
  
  - `fn`: the function to wrap a UI around
  - `inputs`: which component(s) to use for the input (e.g. `"text"`, `"image"` or `"audio"`)
  - `outputs`: which component(s) to use for the output (e.g. `"text"`, `"image"` or `"label"`)
  
  Let's take a closer look at these components used to provide input and output.
  
  ### Components Attributes
  
  We saw some simple `Textbox` components in the previous examples, but what if you want to change how the UI components look or behave?
  
  Let's say you want to customize the input text field — for example, you wanted it to be larger and have a text placeholder. If we use the actual class for `Textbox` instead of using the string shortcut, you have access to much more customizability through component attributes.
  
  ```python
  import gradio as gr
  
  def greet(name):
      return "Hello " + name + "!"
  
  demo = gr.Interface(
      fn=greet,
      inputs=gr.Textbox(lines=2, placeholder="Name Here..."),
      outputs="text",
  )
  demo.launch()
  ```
  
  ![`hello_world_2` demo](demo/hello_world_2/screenshot.gif)
  
  ### Multiple Input and Output Components
  
  Suppose you had a more complex function, with multiple inputs and outputs. In the example below, we define a function that takes a string, boolean, and number, and returns a string and number. Take a look h