Coloring's picture
feat: add antdx
5945dda
raw
history blame
2.82 kB
import time
import gradio as gr
import modelscope_studio.components.antd as antd
import modelscope_studio.components.antdx as antdx
import modelscope_studio.components.base as ms
def run_next(each_value):
each_value.append({
"title": f'Thought Chain Item - {len(each_value) + 1}',
"status": 'pending',
"description": 'status: pending',
"icon": "LoadingOutlined",
"key": str(len(each_value) + 1)
})
yield gr.update(value="Running", loading=True), gr.update(value=each_value)
time.sleep(0.8)
each_value[-1]["status"] = "error"
each_value[-1]["description"] = 'status: error'
each_value[-1]["icon"] = "InfoCircleOutlined"
yield gr.skip(), gr.update(value=each_value)
time.sleep(0.8)
each_value[-1]["status"] = "pending"
each_value[-1]["description"] = 'status: pending'
each_value[-1]["icon"] = 'LoadingOutlined'
yield gr.skip(), gr.update(value=each_value)
time.sleep(0.8)
each_value[-1]["status"] = "success"
each_value[-1]["description"] = 'status: success'
each_value[-1]["icon"] = "CheckCircleOutlined"
yield gr.update(value="Run Next",
loading=False), gr.update(value=each_value)
with gr.Blocks() as demo:
with ms.Application():
with antdx.XProvider():
antd.Typography.Paragraph(
"The thought chain nodes support configuring the `status` property to clearly indicate the current execution status of the node."
)
with antd.Card():
with antd.Flex(vertical=True, gap="middle"):
with ms.Div():
btn = antd.Button("Run Next")
with antdx.ThoughtChain():
with ms.Each(value=[
{
"title": 'Thought Chain Item - 1',
"status": 'success',
"description": 'status: success',
"icon": 'CheckCircleOutlined',
"key": "1"
},
{
"title": 'Thought Chain Item - 2',
"status": 'error',
"description": 'status: error',
"icon": 'InfoCircleOutlined',
"key": "2"
},
]) as each:
with antdx.ThoughtChain.Item():
with ms.Slot("icon"):
antd.Icon(as_item="icon")
btn.click(fn=run_next, inputs=[each], outputs=[btn, each])
if __name__ == "__main__":
demo.queue().launch()