Update app.py
Browse files
app.py
CHANGED
|
@@ -2,12 +2,10 @@ import time
|
|
| 2 |
import os
|
| 3 |
import gradio as gr
|
| 4 |
|
|
|
|
|
|
|
| 5 |
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
dropdown, js = create_theme_dropdown()
|
| 9 |
-
|
| 10 |
-
THEME = os.getenv("THEME")
|
| 11 |
|
| 12 |
with gr.Blocks(theme=THEME) as demo:
|
| 13 |
with gr.Row().style(equal_height=True):
|
|
@@ -23,18 +21,17 @@ with gr.Blocks(theme=THEME) as demo:
|
|
| 23 |
with gr.Column(scale=3):
|
| 24 |
with gr.Box():
|
| 25 |
with gr.Column():
|
| 26 |
-
|
|
|
|
|
|
|
| 27 |
toggle_dark = gr.Button(value="Toggle Dark").style(full_width=True)
|
| 28 |
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
}
|
| 36 |
-
""",
|
| 37 |
-
)
|
| 38 |
|
| 39 |
name = gr.Textbox(
|
| 40 |
label="Name",
|
|
@@ -68,57 +65,45 @@ with gr.Blocks(theme=THEME) as demo:
|
|
| 68 |
check = gr.Checkbox(label="Go")
|
| 69 |
with gr.Column(variant="panel", scale=2):
|
| 70 |
img = gr.Image(
|
| 71 |
-
|
| 72 |
).style(height=320)
|
| 73 |
with gr.Row():
|
| 74 |
-
go_btn = gr.Button("Go",
|
| 75 |
-
clear_btn = gr.Button(
|
| 76 |
-
"Clear", label="Secondary Button", variant="secondary"
|
| 77 |
-
)
|
| 78 |
|
| 79 |
def go(*args):
|
| 80 |
time.sleep(3)
|
| 81 |
return f"https://huggingface.co/spaces/{THEME}/resolve/main/header-image.jpg"
|
| 82 |
|
| 83 |
-
go_btn.click(go, [radio, drop, drop_2, check, name], img
|
| 84 |
|
| 85 |
def clear():
|
| 86 |
time.sleep(0.2)
|
| 87 |
return None
|
| 88 |
|
| 89 |
-
clear_btn.click(clear, None, img)
|
| 90 |
|
| 91 |
with gr.Row():
|
| 92 |
btn1 = gr.Button("Button 1").style(size="sm")
|
| 93 |
-
btn2 = gr.
|
| 94 |
-
stop_btn = gr.Button("Stop",
|
| 95 |
-
size="sm"
|
| 96 |
-
)
|
| 97 |
|
| 98 |
with gr.Row():
|
| 99 |
gr.Dataframe(value=[[1, 2, 3], [4, 5, 6], [7, 8, 9]], label="Dataframe")
|
| 100 |
gr.JSON(
|
| 101 |
value={"a": 1, "b": 2, "c": {"test": "a", "test2": [1, 2, 3]}}, label="JSON"
|
| 102 |
)
|
| 103 |
-
gr.Label
|
|
|
|
| 104 |
gr.File()
|
| 105 |
with gr.Row():
|
| 106 |
gr.ColorPicker()
|
| 107 |
gr.Video("https://gradio-static-files.s3.us-west-2.amazonaws.com/world.mp4")
|
| 108 |
gr.Gallery(
|
| 109 |
[
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
),
|
| 114 |
-
(
|
| 115 |
-
"https://gradio-static-files.s3.us-west-2.amazonaws.com/logo.png",
|
| 116 |
-
"logo",
|
| 117 |
-
),
|
| 118 |
-
(
|
| 119 |
-
"https://gradio-static-files.s3.us-west-2.amazonaws.com/tower.jpg",
|
| 120 |
-
"tower",
|
| 121 |
-
),
|
| 122 |
]
|
| 123 |
).style(height="200px", grid=2)
|
| 124 |
|
|
@@ -129,15 +114,9 @@ with gr.Blocks(theme=THEME) as demo:
|
|
| 129 |
|
| 130 |
def chat(history):
|
| 131 |
time.sleep(2)
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
chat_btn.click(
|
| 135 |
-
lambda history: history
|
| 136 |
-
+ [["How are you?", "I am good."]]
|
| 137 |
-
+ (time.sleep(2) or []),
|
| 138 |
-
chatbot,
|
| 139 |
-
chatbot,
|
| 140 |
-
)
|
| 141 |
with gr.Column(scale=1):
|
| 142 |
with gr.Accordion("Advanced Settings"):
|
| 143 |
gr.Markdown("Hello")
|
|
@@ -145,6 +124,5 @@ with gr.Blocks(theme=THEME) as demo:
|
|
| 145 |
gr.Number(label="Chatbot control 2")
|
| 146 |
gr.Number(label="Chatbot control 3")
|
| 147 |
|
| 148 |
-
|
| 149 |
if __name__ == "__main__":
|
| 150 |
-
demo.
|
|
|
|
| 2 |
import os
|
| 3 |
import gradio as gr
|
| 4 |
|
| 5 |
+
# Заметка: функция create_theme_dropdown не является частью официального API Gradio,
|
| 6 |
+
# и может быть удалена или изменена. Этот код может потребовать обновления в будущем.
|
| 7 |
|
| 8 |
+
THEME = os.getenv("THEME") # Установка значения по умолчанию для THEME
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
with gr.Blocks(theme=THEME) as demo:
|
| 11 |
with gr.Row().style(equal_height=True):
|
|
|
|
| 21 |
with gr.Column(scale=3):
|
| 22 |
with gr.Box():
|
| 23 |
with gr.Column():
|
| 24 |
+
# Так как create_theme_dropdown не является частью официального API,
|
| 25 |
+
# предполагается, что dropdown является объектом gr.Dropdown
|
| 26 |
+
dropdown = gr.Dropdown(["Default", "Huggingface", "Dark"], label="Choose Theme")
|
| 27 |
toggle_dark = gr.Button(value="Toggle Dark").style(full_width=True)
|
| 28 |
|
| 29 |
+
# Изменение темы документа не реализовано через Gradio API, предполагается использование JavaScript
|
| 30 |
+
# Это действие должно быть реализовано внутри обработчика событий кнопки
|
| 31 |
+
def toggle_theme():
|
| 32 |
+
return "document.body.classList.toggle('dark');" # Пример JavaScript для переключения класса темы
|
| 33 |
+
|
| 34 |
+
toggle_dark.click(fn=None, inputs=None, outputs=None, _js=toggle_theme())
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
name = gr.Textbox(
|
| 37 |
label="Name",
|
|
|
|
| 65 |
check = gr.Checkbox(label="Go")
|
| 66 |
with gr.Column(variant="panel", scale=2):
|
| 67 |
img = gr.Image(
|
| 68 |
+
label="Image"
|
| 69 |
).style(height=320)
|
| 70 |
with gr.Row():
|
| 71 |
+
go_btn = gr.Button("Go", variant="primary")
|
| 72 |
+
clear_btn = gr.Button("Clear", variant="secondary")
|
|
|
|
|
|
|
| 73 |
|
| 74 |
def go(*args):
|
| 75 |
time.sleep(3)
|
| 76 |
return f"https://huggingface.co/spaces/{THEME}/resolve/main/header-image.jpg"
|
| 77 |
|
| 78 |
+
go_btn.click(go, inputs=[radio, drop, drop_2, check, name], outputs=img)
|
| 79 |
|
| 80 |
def clear():
|
| 81 |
time.sleep(0.2)
|
| 82 |
return None
|
| 83 |
|
| 84 |
+
clear_btn.click(clear, inputs=None, outputs=img)
|
| 85 |
|
| 86 |
with gr.Row():
|
| 87 |
btn1 = gr.Button("Button 1").style(size="sm")
|
| 88 |
+
btn2 = gr.File().style(size="sm", full_width=False) # Используйте gr.File вместо gr.UploadButton
|
| 89 |
+
stop_btn = gr.Button("Stop", variant="stop").style(size="sm")
|
|
|
|
|
|
|
| 90 |
|
| 91 |
with gr.Row():
|
| 92 |
gr.Dataframe(value=[[1, 2, 3], [4, 5, 6], [7, 8, 9]], label="Dataframe")
|
| 93 |
gr.JSON(
|
| 94 |
value={"a": 1, "b": 2, "c": {"test": "a", "test2": [1, 2, 3]}}, label="JSON"
|
| 95 |
)
|
| 96 |
+
# Используйте gr.Label для отображения текста, а не для отображения объекта
|
| 97 |
+
gr.Label(value="Cat: 0.7, Dog: 0.2, Fish: 0.1")
|
| 98 |
gr.File()
|
| 99 |
with gr.Row():
|
| 100 |
gr.ColorPicker()
|
| 101 |
gr.Video("https://gradio-static-files.s3.us-west-2.amazonaws.com/world.mp4")
|
| 102 |
gr.Gallery(
|
| 103 |
[
|
| 104 |
+
"https://gradio-static-files.s3.us-west-2.amazonaws.com/lion.jpg",
|
| 105 |
+
"https://gradio-static-files.s3.us-west-2.amazonaws.com/logo.png",
|
| 106 |
+
"https://gradio-static-files.s3.us-west-2.amazonaws.com/tower.jpg",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
]
|
| 108 |
).style(height="200px", grid=2)
|
| 109 |
|
|
|
|
| 114 |
|
| 115 |
def chat(history):
|
| 116 |
time.sleep(2)
|
| 117 |
+
return history + [["How are you?", "I am good."]]
|
| 118 |
+
|
| 119 |
+
chat_btn.click(chat, inputs=[chatbot], outputs=chatbot)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
with gr.Column(scale=1):
|
| 121 |
with gr.Accordion("Advanced Settings"):
|
| 122 |
gr.Markdown("Hello")
|
|
|
|
| 124 |
gr.Number(label="Chatbot control 2")
|
| 125 |
gr.Number(label="Chatbot control 3")
|
| 126 |
|
|
|
|
| 127 |
if __name__ == "__main__":
|
| 128 |
+
demo.launch()
|