File size: 4,634 Bytes
0d84cbc
9cd478a
0d84cbc
 
 
 
9cd478a
0d84cbc
9cd478a
 
 
0d84cbc
 
 
 
 
 
 
 
 
9cd478a
0d84cbc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9cd478a
0d84cbc
 
 
 
 
 
 
 
 
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# coding:utf-8

import gradio as gr
# import argparse
# from utils import *
# from presets import *

my_api_key = "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"  # 在这里输入你的 API 密钥

authflag = False

# gr.Chatbot.postprocess = postprocess

with gr.Blocks() as demo:
    history = gr.inputs.Hidden()
    token_count = gr.inputs.Hidden()
    promptTemplates = gr.inputs.Hidden()
    TRUECOMSTANT = gr.inputs.Hidden()
    FALSECONSTANT = gr.inputs.Hidden()
    topic = gr.inputs.Hidden()

    gradio_interface = gr.Interface(
        predict,
        [
            gr.inputs.Textbox(
                show_label=True,
                label="API-Key",
                placeholder=f"在这里输入你的OpenAI API-key...",
                value=my_api_key,
                type="password",
                visible=not HIDE_MY_KEY,
            ),
            gr.inputs.Textbox(
                show_label=True, label="System prompt", value=initial_prompt
            ),
            history,
            gr.inputs.Textbox(
                show_label=False, placeholder="在这里输入", label="User Input"
            ),
            gr.inputs.Hidden(),
            token_count,
            gr.inputs.Slider(
                label="Top-p (nucleus sampling)", min_val=0.0, max_val=1.0, step=0.05
            ),
            gr.inputs.Slider(
                label="Temperature", min_val=0.0, max_val=5.0, step=0.1
            ),
            gr.inputs.Checkbox(label="实时传输回答", default=True),
            gr.inputs.Dropdown(
                label="选择模型",
                choices=MODELS,
                default=MODELS[0],
                allow_multiple=False,
            ),
        ],
        [
            gr.outputs.Chat(
                label="Conversation",
                label_icon="💬",
                outputs=["text"],
                max_length=500,
                header_show_all=True,
                header_show_user_name=True,
            ),
            gr.outputs.Textbox(label="Status", default="Status: Ready"),
            gr.outputs.Button(label="🧹 新的对话"),
            gr.outputs.Button(label="🔄 重新生成"),
            gr.outputs.Button(label="🗑️ 删除最近一条对话"),
            gr.outputs.Button(label="♻️ 总结对话"),
            gr.outputs.Button(label="💾 保存对话"),
            gr.outputs.Dropdown(
                label="从列表中加载对话",
                choices=get_history_names(plain=True),
                default=get_history_names(plain=True)[0],
                allow_multiple=False,
            ),
            gr.outputs.Slider(
                label="Top-p (nucleus sampling)",
                min_val=0.0,
                max_val=1.0,
                step=0.05,
                default=1.0,
            ),
            gr.outputs.Slider(label="Temperature", min_val=0.0, max_val=5.0, step=0.1),
            gr.outputs.Markdown(
                label="最新生成到的token数量",
                default="待定",
            ),
            gr.outputs.Dropdown(
                label="选择Prompt模板集合文件",
                choices=get_template_names(plain=True),
                default=get_template_names(plain=True)[0],
                allow_multiple=False,
            ),
            gr.outputs.Dropdown(
                label="从Prompt模板中加载",
                choices=load_template(get_template_names(plain=True)[0], mode=1),
                default=0,
                allow_multiple=False,
            ),
            gr.outputs.Textbox(label="System prompt", default=initial_prompt),
            gr.outputs.Textbox(
                label="设置保存文件名", default="对话历史记录", allow_copy=True
            ),
        ],
        title="川虎ChatGPT 🚀",
        example=[
            "请输入文本...",
            "你好啊",
            "",
            "",
            "",
            "",
            1.0,
            1.0,
            True,
            "gpt3",
        ],
        theme="compact",
    )

if __name__ == "__main__":
    gradio_interface.launch() # 默认启动本地服务器,并通过默认的IP地址和端口进行访问
    # gradio_interface.launch(share=True)  # 启动本地服务器,创建公开分享链接
    # gradio_interface.launch(server_name="0.0.0.0", server_port=7860)  # 自定义IP和端口
    # gradio_interface.launch(
    #     server_name="0.0.0.0",
    #     server_port=7860,
    #     auth=("在这里填写用户名", "在这里填写密码"),
    # )  # 设置用户名和密码,适用于Nginx反向代理