File size: 1,462 Bytes
90136fc
6ba5e8d
 
 
 
 
 
ac75843
6ba5e8d
 
 
cdacab2
6ba5e8d
 
 
 
 
 
 
 
 
32439b0
 
 
6ba5e8d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import openai
import os
import argparse
import gradio as gr
from chat_completion import ChatCompletion

api_key = os.environ.get("OPENAI_API_KEY")
openai.api_base="https://apai.zyai.online/v1"

parser = argparse.ArgumentParser()
parser.add_argument('--share', action='store_true', default=False)
parser.add_argument('--welcome', type=str, default='对GPT说点啥...')
parser.add_argument('--title', type=str, default='ChatGPT')
parser.add_argument('--setting', type=str, default=None)
args = parser.parse_args()

bot = ChatCompletion(api_key=api_key)

with gr.Blocks(title=args.title) as demo:
    chatbot = gr.Chatbot(show_label=False)
    msg = gr.TextArea(show_label=False, placeholder=args.welcome)
    send_btn = gr.Button('发送')
    retry_btn = gr.Button('重试')
    reset_btn = gr.Button('清空')

    def send(user_message, history):
        if not user_message:
            return '', history

        response = bot(user_message, setting=args.setting) if user_message != 'retry' else bot.retry()
        return '', history + [[user_message, response]]

    def reset():
        bot.reset()
        return None, [[None, None]]

    def retry(history):
        return send('retry', history)

    send_btn.click(send, inputs=[msg, chatbot], outputs=[msg, chatbot], show_progress=True)
    reset_btn.click(reset, inputs=None, outputs=[msg, chatbot])
    retry_btn.click(retry, inputs=chatbot, outputs=[msg, chatbot])


demo.launch(share=args.share)