File size: 5,373 Bytes
703aaf2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import gradio as gr

from sdk.Chat_with_memory import Conversation
from sdk.culculate import Cuculator
from sdk.chat_with_net import ChatWithNet
from api.chatText2ImageQuery import DrawAssistant
from sdk.textSummary import SummaryAssistant
from sdk.chatWithKnowledgeBase import KnowledgeBaseAssistant
import tempfile

chat = Conversation()
culculator = Cuculator()
chatWithNet = ChatWithNet()
drawAssistant = DrawAssistant()
summaryAssistant = SummaryAssistant()
KnowledgeBaseAssistant = KnowledgeBaseAssistant()


with gr.Blocks() as myAIBox:
    with gr.Tab("AI聊天助手"):
        #Blocks特有组件,设置所有子组件按垂直排列
        #垂直排列是默认情况,不加也没关系
        with gr.Column():
            text_input = gr.Textbox(label="请输入你的问题")
            chatbot = gr.Chatbot()
            ask = gr.Button("一键答疑")
            ask.click(chat.ask,text_input,chatbot)
            clearHistory = gr.Button("清空当前搜索结果")
            clearHistory.click(chat.clearHistory,None,chatbot, queue=False)


    with gr.Tab("智能计算器"):
        # Blocks特有组件,设置所有子组件按水平排列
        with gr.Column():
            math_input = gr.Textbox(label="请输入你的问题")
            CulChatbot = gr.Chatbot()
            ask = gr.Button("生成答案")
            ask.click(culculator.culculate,math_input,CulChatbot)
            clearHistory = gr.Button("清空当前搜索结果")
            clearHistory.click(culculator.clearHistory,None,CulChatbot, queue=False)

    with gr.Tab("联网问答"):
        # Blocks特有组件,设置所有子组件按水平排列
        with gr.Column():
            text_input = gr.Textbox(label="请输入你的问题")
            NetChatbot = gr.Chatbot()
            ask = gr.Button("谷歌搜索问答")
            ask.click(chatWithNet.searhAndChat,text_input,NetChatbot)
            clearHistory = gr.Button("清空当前搜索结果")
            clearHistory.click(chatWithNet.searhAndChat,None,NetChatbot)

    with gr.Tab("绘图助手"):
        # Blocks特有组件,设置所有子组件按水平排列
        with gr.Row():
            text_input = gr.Textbox(label="请输入你希望画的图片及其细节(生成图片较慢,请耐心等待)")
            image_output = gr.Image()
        ask = gr.Button("生成图片")
        ask.click(drawAssistant.drawOnePic,text_input,image_output )
        clearPic = gr.Button("清空当前搜索结果")
        clearPic.click(None,None,image_output, queue=False)

    with gr.Tab("文本总结器"):
        # Blocks特有组件,设置所有子组件按水平排列
        global tmpdir
        with tempfile.TemporaryDirectory() as tmpdir:
            with gr.Column():
                with gr.Row():
                    summary_text_input = gr.Textbox(label="请输入你希望总结的文本")
                    summary_output = gr.Textbox(label="总结文本")
                send_btn = gr.Button("对文本生成总结")
                send_btn.click(summaryAssistant.summary_text,summary_text_input,summary_output)

                with gr.Row():
                    summary_url_input = gr.Textbox(label="请输入你希望总结的网页")
                    summary_output2 = gr.Textbox(label="网页地址")
                send_btn2 = gr.Button("对网页生成总结")
                send_btn2.click(summaryAssistant.summary_url,summary_url_input,summary_output2)

                with gr.Row():
                    summary_file_input = gr.components.File(label="请输入你希望总结的文本文件(现在仅支持txt,pdf,word格式)")
                    summary_output3 = gr.Textbox(label="总结文本")
                send_btn3 = gr.Button("对文件生成总结")
                send_btn3.click(summaryAssistant.summary_file,summary_file_input,summary_output3)

    with gr.Tab("个人知识库"):
        # Blocks特有组件,设置所有子组件按水平排列
        with gr.Column(scale=4):
            with gr.Row():
                knowledge_text_input = gr.Textbox(label="请输入你的知识库的文本")
                q_input = gr.Textbox(label="请输入你的问题")
                res_output = gr.Textbox(label="结果输出")
            s_btn = gr.Button("一键问答")
            s_btn.click(KnowledgeBaseAssistant.knowledge_base_text,[knowledge_text_input,q_input],res_output)

            with gr.Row():
                knowledge_URL_input = gr.Textbox(label="请输入你的网页链接")
                q2_input = gr.Textbox(label="请输入你的问题")
                res2_output = gr.Textbox(label="结果输出")
            s2_btn = gr.Button("一键问答")
            s2_btn.click(KnowledgeBaseAssistant.knowledge_base_url,[knowledge_URL_input,q2_input],res2_output)

            with gr.Row():
                knowledge_file_input = gr.components.File(label="请输入你的知识库文本(现在仅支持txt,pdf,word格式)")
                q3_input = gr.Textbox(label="请输入你的问题")
                res3_output = gr.Textbox(label="结果输出")
            s3_btn = gr.Button("一键问答")
            s3_btn.click(KnowledgeBaseAssistant.knowledge_base_file,[knowledge_file_input,q3_input],res3_output)



if __name__ == "__main__":
    myAIBox.launch(share=True)