import gradio as gr import sys from pathlib import Path sys.path.append(str(Path(__file__).resolve().parent.parent)) from global_var import model,tokenizer def chat_page(): with gr.Blocks() as demo: import random import time gr.Markdown("## 聊天") chatbot = gr.Chatbot(type="messages") msg = gr.Textbox() clear = gr.Button("Clear") def user(user_message, history: list): return "", history + [{"role": "user", "content": user_message}] def bot(history: list): bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"]) history.append({"role": "assistant", "content": ""}) for character in bot_message: history[-1]['content'] += character time.sleep(0.1) yield history msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then( bot, chatbot, chatbot ) clear.click(lambda: None, None, chatbot, queue=False) return demo if __name__ == "__main__": chat_page().queue().launch()