text-generation-webui/modules/ui.py

90 lines
1.8 KiB
Python
Raw Normal View History

import gradio as gr
refresh_symbol = '\U0001f504' # 🔄
2023-02-17 01:55:20 +01:00
css = """
.tabs.svelte-710i53 {
margin-top: 0
}
.py-6 {
padding-top: 2.5rem
}
.dark #refresh-button {
2023-02-18 02:52:03 +01:00
background-color: #ffffff1f;
2023-02-17 01:55:20 +01:00
}
#refresh-button {
2023-02-17 20:18:01 +01:00
flex: none;
margin: 0;
padding: 0;
min-width: 50px;
border: none;
box-shadow: none;
border-radius: 10px;
background-color: #0000000d;
2023-02-17 01:55:20 +01:00
}
#download-label, #upload-label {
2023-02-17 20:18:01 +01:00
min-height: 0
2023-02-17 01:55:20 +01:00
}
#accordion {
}
2023-02-18 03:57:09 +01:00
.dark svg {
fill: white;
}
2023-02-18 04:18:39 +01:00
svg {
display: unset !important;
vertical-align: middle !important;
margin: 5px;
}
2023-02-25 21:19:31 +01:00
ol li p, ul li p {
display: inline-block;
}
2023-02-17 01:55:20 +01:00
"""
chat_css = """
.h-\[40vh\], .wrap.svelte-byatnx.svelte-byatnx.svelte-byatnx {
height: 66.67vh
}
.gradio-container {
2023-02-25 21:19:31 +01:00
max-width: 800px !important;
margin-left: auto !important;
margin-right: auto !important;
2023-02-17 01:55:20 +01:00
}
.w-screen {
width: unset
}
div.svelte-362y77>*, div.svelte-362y77>.form>* {
flex-wrap: nowrap
}
2023-02-17 05:56:51 +01:00
/* fixes the API documentation in chat mode */
.api-docs.svelte-1iguv9h.svelte-1iguv9h.svelte-1iguv9h {
display: grid;
}
2023-02-17 01:55:20 +01:00
"""
class ToolButton(gr.Button, gr.components.FormComponent):
"""Small button with single emoji as text, fits inside gradio forms"""
def __init__(self, **kwargs):
super().__init__(variant="tool", **kwargs)
def get_block_name(self):
return "button"
def create_refresh_button(refresh_component, refresh_method, refreshed_args, elem_id):
def refresh():
refresh_method()
args = refreshed_args() if callable(refreshed_args) else refreshed_args
for k, v in args.items():
setattr(refresh_component, k, v)
return gr.update(**(args or {}))
refresh_button = ToolButton(value=refresh_symbol, elem_id=elem_id)
refresh_button.click(
fn=refresh,
inputs=[],
outputs=[refresh_component]
)
return refresh_button