File size: 3,008 Bytes
869c384
 
 
 
 
 
 
5cfdf88
869c384
 
5cfdf88
869c384
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5cfdf88
869c384
 
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import time
import gradio as gr
import os
from UI.JS.ShowAndDisable import GetHideObject
from UI.LoginPanel import LoginPanel


class MainBlocks:
    def __init__(self, name):
        self.loginPanel = None
        self.name = name
        self.main = self.GetDemo()
        self.main.queue()
        self.main.launch()

    # Chatbot demo with multimodal input (text, markdown, LaTeX, code blocks, image, audio, & video). Plus shows support for streaming text.
    def add_text(self, history, text):
        history = history + [(text, None)]
        return history, gr.update(value="", interactive=False)

    def add_file(self, history, file):
        history = history + [((file.name,), None)]
        return history

    def bot(self, history):
        if self.loginPanel.sub == 0:
            response = "請登錄再聊"
        # response = "Hello! Click the link below:<br><a href='https://www.baidu.com' target='_blank'>Visit Example.com</a>"
        else:
            response = "hey its cool"
        history[-1][1] = ""
        for character in response:
            history[-1][1] += character
            time.sleep(0.05)
            yield history

    def GetDemo(self):
        with gr.Blocks() as demo:
            # 登錄頁面
            self.loginPanel = LoginPanel()
            buttonAddText = gr.Button(value="Submit", elem_id="my-button")
            # 使用 btn.click() 定义按钮被点击时的行为
            buttonAddText.click(None, _js=GetHideObject("my-button"))
            chatbot = gr.Chatbot(
                [],
                elem_id="chatbot",
                bubble_full_width=False,
                show_label=False,
                #左邊是我的頭像,右邊是機器人頭像
                avatar_images=("https://huggingface.co/front/assets/huggingface_logo-noborder.svg", (os.path.join(os.path.dirname(__file__), "../gradiodemo/Demo/IMG/didi.jpeg"))),
            )
            with gr.Row():
                txt = gr.Textbox(
                    scale=4,
                    show_label=False,
                    placeholder="Enter text and press enter",
                    container=False,
                )
                # btn = gr.UploadButton("📁", file_types=["image", "video", "audio"])
                # btn = gr.Button("確定")
            txt_msg = txt.submit(self.add_text, [chatbot, txt], [chatbot, txt], queue=False)
            txt_msg.then(
                self.bot, chatbot, chatbot
            )
            txt_msg.then(lambda: gr.update(interactive=True), None, [txt], queue=False, _js=GetHideObject("my-button"))
            # txt_msgbtn = btn.click(self.add_text, [chatbot, txt], [chatbot, txt], queue=False).then(
            #     self.bot, chatbot, chatbot
            # )
            # file_msg = btn.upload(self.add_file, [chatbot, btn], [chatbot], queue=False).then(
            #     self.bot, chatbot, chatbot
            # )
        return demo


if __name__ == "__main__":
    mainBlocks1 = MainBlocks("test")