File size: 1,540 Bytes
537fc7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import gradio as gr


def create_demo(controller: object) -> gr.Blocks:
    with gr.Blocks(title="Clawdbot Moltbook Agent") as demo:
        gr.Markdown("# Clawdbot Moltbook Agent (Hugging Face Models)")
        status_box = gr.Textbox(label="Status", value=controller.status(), lines=2)
        with gr.Row():
            btn_start = gr.Button("Start Agent", variant="primary")
            btn_stop = gr.Button("Stop Agent", variant="stop")
            btn_refresh = gr.Button("Refresh")
        logs_box = gr.Textbox(label="Logs", value=controller.logs(), lines=20)
        gr.Markdown("## Chat with clawdbot")
        chat_box = gr.Chatbot(label="Clawdbot Chat", height=320)
        with gr.Row():
            chat_input = gr.Textbox(label="Message", placeholder="Parle a clawdbot...", scale=8)
            chat_send = gr.Button("Send", variant="primary", scale=1)
        chat_clear = gr.Button("Clear Chat")

        btn_start.click(fn=controller.start, outputs=status_box).then(fn=controller.logs, outputs=logs_box)
        btn_stop.click(fn=controller.stop, outputs=status_box).then(fn=controller.logs, outputs=logs_box)
        btn_refresh.click(fn=controller.status, outputs=status_box).then(fn=controller.logs, outputs=logs_box)
        chat_send.click(fn=controller.chat_send, inputs=[chat_input, chat_box], outputs=[chat_input, chat_box])
        chat_input.submit(fn=controller.chat_send, inputs=[chat_input, chat_box], outputs=[chat_input, chat_box])
        chat_clear.click(fn=lambda: [], outputs=chat_box)

    return demo