2023-07-05 02:22:25 +08:00
|
|
|
import gradio as gr
|
|
|
|
from datetime import datetime
|
|
|
|
import os
|
|
|
|
import random
|
|
|
|
import string
|
|
|
|
import pandas as pd
|
|
|
|
|
|
|
|
import numpy as np
|
|
|
|
import matplotlib.pyplot as plt
|
2023-08-04 06:01:18 +08:00
|
|
|
|
2023-07-05 02:22:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
def random_plot():
|
|
|
|
start_year = 2020
|
2023-08-04 06:01:18 +08:00
|
|
|
x = np.arange(start_year, start_year + 5)
|
2023-07-05 02:22:25 +08:00
|
|
|
year_count = x.shape[0]
|
|
|
|
plt_format = "-"
|
|
|
|
fig = plt.figure()
|
|
|
|
ax = fig.add_subplot(111)
|
|
|
|
series = np.arange(0, year_count, dtype=float)
|
|
|
|
series = series**2
|
|
|
|
series += np.random.rand(year_count)
|
|
|
|
ax.plot(x, series, plt_format)
|
|
|
|
return fig
|
|
|
|
|
|
|
|
|
|
|
|
images = [
|
|
|
|
"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80",
|
|
|
|
"https://images.unsplash.com/photo-1554151228-14d9def656e4?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=386&q=80",
|
|
|
|
"https://images.unsplash.com/photo-1542909168-82c3e7fdca5c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8MXx8aHVtYW4lMjBmYWNlfGVufDB8fDB8fA%3D%3D&w=1000&q=80",
|
|
|
|
]
|
|
|
|
file_dir = os.path.join(os.path.dirname(__file__), "..", "kitchen_sink", "files")
|
|
|
|
model3d_dir = os.path.join(os.path.dirname(__file__), "..", "model3D", "files")
|
|
|
|
highlighted_text_output_1 = [
|
|
|
|
{
|
|
|
|
"entity": "I-LOC",
|
|
|
|
"score": 0.9988978,
|
|
|
|
"index": 2,
|
|
|
|
"word": "Chicago",
|
|
|
|
"start": 5,
|
|
|
|
"end": 12,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"entity": "I-MISC",
|
|
|
|
"score": 0.9958592,
|
|
|
|
"index": 5,
|
|
|
|
"word": "Pakistani",
|
|
|
|
"start": 22,
|
|
|
|
"end": 31,
|
|
|
|
},
|
|
|
|
]
|
|
|
|
highlighted_text_output_2 = [
|
|
|
|
{
|
|
|
|
"entity": "I-LOC",
|
|
|
|
"score": 0.9988978,
|
|
|
|
"index": 2,
|
|
|
|
"word": "Chicago",
|
|
|
|
"start": 5,
|
|
|
|
"end": 12,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"entity": "I-LOC",
|
|
|
|
"score": 0.9958592,
|
|
|
|
"index": 5,
|
|
|
|
"word": "Pakistan",
|
|
|
|
"start": 22,
|
|
|
|
"end": 30,
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
|
|
|
highlighted_text = "Does Chicago have any Pakistani restaurants"
|
|
|
|
|
|
|
|
|
|
|
|
def random_model3d():
|
|
|
|
model_3d = random.choice(
|
|
|
|
[os.path.join(model3d_dir, model) for model in os.listdir(model3d_dir) if model != "source.txt"]
|
|
|
|
)
|
|
|
|
return model_3d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components = [
|
|
|
|
gr.Textbox(value=lambda: datetime.now(), label="Current Time"),
|
|
|
|
gr.Number(value=lambda: random.random(), label="Random Percentage"),
|
|
|
|
gr.Slider(minimum=0, maximum=100, randomize=True, label="Slider with randomize"),
|
|
|
|
gr.Slider(
|
|
|
|
minimum=0,
|
|
|
|
maximum=1,
|
|
|
|
value=lambda: random.random(),
|
|
|
|
label="Slider with value func",
|
|
|
|
),
|
|
|
|
gr.Checkbox(value=lambda: random.random() > 0.5, label="Random Checkbox"),
|
|
|
|
gr.CheckboxGroup(
|
|
|
|
choices=["a", "b", "c", "d"],
|
|
|
|
value=lambda: random.choice(["a", "b", "c", "d"]),
|
|
|
|
label="Random CheckboxGroup",
|
|
|
|
),
|
|
|
|
gr.Radio(
|
|
|
|
choices=list(string.ascii_lowercase),
|
|
|
|
value=lambda: random.choice(string.ascii_lowercase),
|
|
|
|
),
|
|
|
|
gr.Dropdown(
|
|
|
|
choices=["a", "b", "c", "d", "e"],
|
|
|
|
value=lambda: random.choice(["a", "b", "c"]),
|
|
|
|
),
|
|
|
|
gr.Image(
|
|
|
|
value=lambda: random.choice(images)
|
|
|
|
),
|
|
|
|
gr.Video(value=lambda: os.path.join(file_dir, "world.mp4")),
|
|
|
|
gr.Audio(value=lambda: os.path.join(file_dir, "cantina.wav")),
|
|
|
|
gr.File(
|
|
|
|
value=lambda: random.choice(
|
|
|
|
[os.path.join(file_dir, img) for img in os.listdir(file_dir)]
|
|
|
|
)
|
|
|
|
),
|
|
|
|
gr.Dataframe(
|
2023-08-04 06:01:18 +08:00
|
|
|
value=lambda: pd.DataFrame({"random_number_rows": range(5)}, columns=["one", "two", "three"])
|
2023-07-05 02:22:25 +08:00
|
|
|
),
|
|
|
|
gr.ColorPicker(value=lambda: random.choice(["#000000", "#ff0000", "#0000FF"])),
|
|
|
|
gr.Label(value=lambda: random.choice(["Pedestrian", "Car", "Cyclist"])),
|
|
|
|
gr.HighlightedText(
|
|
|
|
value=lambda: random.choice(
|
|
|
|
[
|
|
|
|
{"text": highlighted_text, "entities": highlighted_text_output_1},
|
|
|
|
{"text": highlighted_text, "entities": highlighted_text_output_2},
|
|
|
|
]
|
|
|
|
),
|
|
|
|
),
|
|
|
|
gr.JSON(value=lambda: random.choice([{"a": 1}, {"b": 2}])),
|
|
|
|
gr.HTML(
|
|
|
|
value=lambda: random.choice(
|
|
|
|
[
|
|
|
|
'<p style="color:red;">I am red</p>',
|
|
|
|
'<p style="color:blue;">I am blue</p>',
|
|
|
|
]
|
|
|
|
)
|
|
|
|
),
|
|
|
|
gr.Gallery(
|
|
|
|
value=lambda: images
|
|
|
|
),
|
|
|
|
gr.Model3D(value=random_model3d),
|
|
|
|
gr.Plot(value=random_plot),
|
|
|
|
gr.Markdown(value=lambda: f"### {random.choice(['Hello', 'Hi', 'Goodbye!'])}"),
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def evaluate_values(*args):
|
|
|
|
are_false = []
|
|
|
|
for a in args:
|
|
|
|
if isinstance(a, (pd.DataFrame, np.ndarray)):
|
|
|
|
are_false.append(not a.any().any())
|
|
|
|
elif isinstance(a, str) and a.startswith("#"):
|
|
|
|
are_false.append(a == "#000000")
|
|
|
|
else:
|
|
|
|
are_false.append(not a)
|
|
|
|
return all(are_false)
|
|
|
|
|
|
|
|
|
|
|
|
with gr.Blocks() as demo:
|
|
|
|
for i, component in enumerate(components):
|
|
|
|
component.label = f"component_{str(i).zfill(2)}"
|
|
|
|
component.render()
|
|
|
|
clear = gr.ClearButton(value="Clear", components=components)
|
|
|
|
result = gr.Textbox(label="Are all cleared?")
|
|
|
|
hide = gr.Button(value="Hide")
|
|
|
|
reveal = gr.Button(value="Reveal")
|
|
|
|
hide.click(
|
2023-09-19 12:17:06 +08:00
|
|
|
lambda: [c.__class__(visible=False) for c in components],
|
2023-07-05 02:22:25 +08:00
|
|
|
inputs=[],
|
|
|
|
outputs=components
|
|
|
|
)
|
|
|
|
reveal.click(
|
2023-09-19 12:17:06 +08:00
|
|
|
lambda: [c.__class__(visible=True) for c in components],
|
2023-07-05 02:22:25 +08:00
|
|
|
inputs=[],
|
|
|
|
outputs=components
|
|
|
|
)
|
|
|
|
get_value = gr.Button(value="Get Values")
|
|
|
|
get_value.click(evaluate_values, components, result)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
demo.launch()
|