Skip to content

gradio interfaces for redis-based deep-learning docker images

License

Notifications You must be signed in to change notification settings

waikato-datamining/gifr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gifr

gradio interfaces for Deep Learning Docker images that use Redis for receiving data to make predictions on.

https://www.data-mining.co.nz/docker-images/

Installation

Latest release

pip install gifr

Latest from Github

pip install git+https://github.com/waikato-datamining/gifr.git

Tutorials

Here are tutorials for a range of Docker images:

Interfaces

Automatic Speech Recognition (ASR)

Screenshot automatic speech recognition

usage: gifr-asr [-h] [--redis_host HOST] [--redis_port PORT] [--redis_db DB]
                [--model_channel_in CHANNEL] [--model_channel_out CHANNEL]
                [--timeout SECONDS] [--title TITLE] [--description DESC]
                [--launch_browser] [--share_interface]
                [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]

Automatic Speech Recognition (ASR) interface. Allows the user to record/upload
audio and display the text transcribed by the model.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: audio)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        transcription)
  --timeout SECONDS     The number of seconds to wait for a prediction.
                        (default: 2.0)
  --title TITLE         The title to use for interface. (default: Automatic
                        Speech Recognition (ASR))
  --description DESC    The description to use in the interface. (default:
                        Sends the recorded/uploaded audio to the model to
                        transcribe and displays the result.)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)

Automatic Speech Recognition (ASR) + Text generation

Screenshot automatic speech recognition with text generation

usage: gifr-textgen [-h] [--redis_host HOST] [--redis_port PORT]
                    [--redis_db DB] [--model_channel_in CHANNEL]
                    [--model_channel_out CHANNEL] [--sleep_time SECONDS]
                    [--timeout SECONDS] [--title TITLE] [--description DESC]
                    [--launch_browser] [--share_interface]
                    [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]
                    [--audio_channel_in CHANNEL] [--audio_channel_out CHANNEL]
                    [--text_channel_in CHANNEL] [--text_channel_out CHANNEL]
                    [--send_text FIELD] [--json_response]
                    [--receive_prediction FIELD] [--history_on]
                    [--send_history FIELD] [--send_turns FIELD]
                    [--receive_history FIELD] [--receive_turns FIELD]
                    [--clean_response]

Combined Automatic Speech Recognition (ASR) and text generation interface.
Allows the user to record/upload audio, which gets transcribed and the
transcription fed into the text generation model. The generated text is then
displayed.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: model_channel_in)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        model_channel_out)
  --sleep_time SECONDS  The sleep time in seconds for the pub-sub thread.
                        (default: 0.01)
  --timeout SECONDS     The number of seconds to wait for a response.
                        (default: 1.0)
  --title TITLE         The title to use for interface. (default: ASR+Text
                        generation)
  --description DESC    The description to use in the interface. (default:
                        First transcribes the recorded/uploaded audio and then
                        sends the transcript to the model to complete and
                        displays the result.)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)
  --audio_channel_in CHANNEL
                        The channel to send the audio to for transcribing.
                        (default: audio)
  --audio_channel_out CHANNEL
                        The channel to receive the transcriptions on.
                        (default: transcription)
  --text_channel_in CHANNEL
                        The channel to send the text to for making
                        predictions. (default: text)
  --text_channel_out CHANNEL
                        The channel to receive the text predictions on.
                        (default: prediction)
  --send_text FIELD     The field name in the JSON prompt used for sending the
                        text, ignored if not provided. (default: prompt)
  --json_response       Whether the reponse is a JSON object. (default: False)
  --receive_prediction FIELD
                        The field name in the JSON response used for receiving
                        the predicted text, ignored if not provided. (default:
                        text)
  --history_on          Whether to keep track of the interactions. (default:
                        False)
  --send_history FIELD  The field name in the JSON query to use for sending
                        the input history, ignored if not provided. (default:
                        None)
  --send_turns FIELD    The field name in the JSON query to use for sending
                        the number of turns in the interaction, ignored if not
                        provided. (default: None)
  --receive_history FIELD
                        The field name in the JSON response used for receiving
                        the input history, ignored if not provided. (default:
                        None)
  --receive_turns FIELD
                        The field name in the JSON response used for receiving
                        the number of turns in the interaction, ignored if not
                        provided. (default: None)
  --clean_response      Whether to clean up the response. (default: False)

Image classification

Screenshot image classification

usage: gifr-imgcls [-h] [--redis_host HOST] [--redis_port PORT]
                   [--redis_db DB] [--model_channel_in CHANNEL]
                   [--model_channel_out CHANNEL] [--timeout SECONDS]
                   [--title TITLE] [--description DESC] [--launch_browser]
                   [--share_interface]
                   [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]

Image classification interface. Allows the user to select an image and display
the probabilities per label that the model generated.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: images)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        predictions)
  --timeout SECONDS     The number of seconds to wait for a prediction.
                        (default: 1.0)
  --title TITLE         The title to use for interface. (default: Image
                        classification)
  --description DESC    The description to use in the interface. (default:
                        Sends the selected image to the model and displays the
                        generated prediction results.)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)

Image segmentation

Screenshot image segmentation

usage: gifr-imgseg [-h] [--redis_host HOST] [--redis_port PORT]
                   [--redis_db DB] [--model_channel_in CHANNEL]
                   [--model_channel_out CHANNEL] [--timeout SECONDS]
                   [--title TITLE] [--description DESC] [--launch_browser]
                   [--share_interface]
                   [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]
                   [--prediction_type {auto,blue-channel,grayscale,indexed-png}]
                   [--alpha NUM] [--only_mask]

Image segmentation interface. Allows the user to select an image and display
the generated pixel mask overlayed.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: images)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        predictions)
  --timeout SECONDS     The number of seconds to wait for a prediction.
                        (default: 2.0)
  --title TITLE         The title to use for interface. (default: Image
                        segmentation)
  --description DESC    The description to use in the interface. (default:
                        Sends the selected image to the model and shows the
                        result (overlay or pixel mask).)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)
  --prediction_type {auto,blue-channel,grayscale,indexed-png}
                        The type of image that the model returns (default:
                        auto)
  --alpha NUM           The alpha value to use for the overlay (0:
                        transparent, 255: opaque). (default: 128)
  --only_mask           Whether to show only the predicted mask rather than
                        overlaying it. (default: False)

Object detection/Instance segmentation

Screenshot object detection

usage: gifr-objdet [-h] [--redis_host HOST] [--redis_port PORT]
                   [--redis_db DB] [--model_channel_in CHANNEL]
                   [--model_channel_out CHANNEL] [--timeout SECONDS]
                   [--title TITLE] [--description DESC] [--launch_browser]
                   [--share_interface]
                   [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]
                   [--min_score FLOAT] [--text_format FORMAT]
                   [--text_placement V,H] [--font_family NAME]
                   [--font_size SIZE] [--num_decimals NUM]
                   [--outline_thickness NUM] [--outline_alpha NUM] [--fill]
                   [--fill_alpha NUM] [--vary_colors] [--force_bbox]

Object detection interface. Allows the user to select an image and overlay the
predictions that the model generated.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: images)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        predictions)
  --timeout SECONDS     The number of seconds to wait for a prediction.
                        (default: 1.0)
  --title TITLE         The title to use for interface. (default: Object
                        detection)
  --description DESC    The description to use in the interface. (default:
                        Sends the selected image to the model and overlays the
                        predicted objects on it in the output.)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)
  --min_score FLOAT     The minimum score a prediction must have (0-1).
                        (default: 0.0)
  --text_format FORMAT  The format for the text, placeholders: {label},
                        {score}. (default: {label})
  --text_placement V,H  Comma-separated list of vertical (T=top, C=center,
                        B=bottom) and horizontal (L=left, C=center, R=right)
                        anchoring. (default: T,L)
  --font_family NAME    The name of the font family. (default: sans\-serif)
  --font_size SIZE      The size of the font. (default: 14)
  --num_decimals NUM    The number of decimals to use for the score. (default:
                        3)
  --outline_thickness NUM
                        The line thickness to use for the outline, <1 to turn
                        off. (default: 3)
  --outline_alpha NUM   The alpha value to use for the outline (0:
                        transparent, 255: opaque). (default: 255)
  --fill                Whether to fill the bounding boxes/polygons (default:
                        False)
  --fill_alpha NUM      The alpha value to use for the filling (0:
                        transparent, 255: opaque). (default: 128)
  --vary_colors         Whether to vary the colors of the outline/filling
                        regardless of label (default: False)
  --force_bbox          Whether to force a bounding box even if there is a
                        polygon available (default: False)

Text classification

Screenshot text classification

usage: gifr-textclass [-h] [--redis_host HOST] [--redis_port PORT]
                      [--redis_db DB] [--model_channel_in CHANNEL]
                      [--model_channel_out CHANNEL] [--timeout SECONDS]
                      [--title TITLE] [--description DESC] [--launch_browser]
                      [--share_interface]
                      [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]

Text classification interface. Allows the user to enter text and display the
predicted label and score returned by the model.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: text)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        prediction)
  --timeout SECONDS     The number of seconds to wait for a prediction.
                        (default: 1.0)
  --title TITLE         The title to use for interface. (default: Text
                        classification)
  --description DESC    The description to use in the interface. (default:
                        Sends the entered text to the model to complete and
                        displays the predicted label and score.)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)

Text generation

Screenshot text generation

usage: gifr-textgen [-h] [--redis_host HOST] [--redis_port PORT]
                    [--redis_db DB] [--model_channel_in CHANNEL]
                    [--model_channel_out CHANNEL] [--timeout SECONDS]
                    [--title TITLE] [--description DESC] [--launch_browser]
                    [--share_interface]
                    [--logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}]
                    [--send_text FIELD] [--json_response]
                    [--receive_prediction FIELD] [--history_on]
                    [--send_history FIELD] [--send_turns FIELD]
                    [--receive_history FIELD] [--receive_turns FIELD]
                    [--clean_response]

Text generation interface. Allows the user to enter text and display the text
generated by the model.

optional arguments:
  -h, --help            show this help message and exit
  --redis_host HOST     The host with the redis server. (default: localhost)
  --redis_port PORT     The port of the redis server. (default: 6379)
  --redis_db DB         The redis database to use. (default: 0)
  --model_channel_in CHANNEL
                        The channel to send the data to for making
                        predictions. (default: text)
  --model_channel_out CHANNEL
                        The channel to receive the predictions on. (default:
                        prediction)
  --timeout SECONDS     The number of seconds to wait for a prediction.
                        (default: 1.0)
  --title TITLE         The title to use for interface. (default: Text
                        generation)
  --description DESC    The description to use in the interface. (default:
                        Sends the entered text to the model to complete and
                        displays the result.)
  --launch_browser      Whether to automatically launch the interface in a new
                        tab of the default browser. (default: False)
  --share_interface     Whether to publicly share the interface at
                        https://XYZ.gradio.live/. (default: False)
  --logging_level {DEBUG,INFO,WARN,ERROR,CRITICAL}
                        The logging level to use (default: WARN)
  --send_text FIELD     The field name in the JSON prompt used for sending the
                        text, ignored if not provided. (default: prompt)
  --json_response       Whether the reponse is a JSON object. (default: False)
  --receive_prediction FIELD
                        The field name in the JSON response used for receiving
                        the predicted text, ignored if not provided. (default:
                        text)
  --history_on          Whether to keep track of the interactions. (default:
                        False)
  --send_history FIELD  The field name in the JSON query to use for sending
                        the input history, ignored if not provided. (default:
                        None)
  --send_turns FIELD    The field name in the JSON query to use for sending
                        the number of turns in the interaction, ignored if not
                        provided. (default: None)
  --receive_history FIELD
                        The field name in the JSON response used for receiving
                        the input history, ignored if not provided. (default:
                        None)
  --receive_turns FIELD
                        The field name in the JSON response used for receiving
                        the number of turns in the interaction, ignored if not
                        provided. (default: None)
  --clean_response      Whether to clean up the response. (default: False)