""" 来自 https://github.com/OpenLMLab/MOSS/blob/main/moss_web_demo_gradio.py # 难点 ## TODO - 第一句: - 代码和表格的预览 - markdown解析:mdtex2html - 可编辑chatbot:https://github.com/gradio-app/gradio/issues/4444 - 一个button, ## Reference - https://github.com/GaiZhenbiao/ChuanhuChatGPT/ """ from app_util import * system_list = [ "You are a helpful assistant.", "你是一个导游。", "你是一个英语老师。", "你是一个程序员。", "你是一个心理咨询师。", ] """ TODO: 使用说明 """ with gr.Blocks() as demo: # Knowledge Distillation through Self Chatting gr.HTML("""

Distilling the Knowledge through Self Chatting

""") system = gr.Dropdown( choices=system_list, value=system_list[0], allow_custom_value=True, interactive=True, label="System message" ) chatbot = gr.Chatbot(avatar_images=("assets/man.png", "assets/bot.png")) with gr.Row(): with gr.Column(scale=4): generated_text = gr.Textbox(show_label=False, placeholder="...", lines=10, visible=False) with gr.Row(): generate_btn = gr.Button("🤔️ Generate") retry_btn = gr.Button("🔄 Regenerate") undo_btn = gr.Button("↩️ Undo") clear_btn = gr.Button("🗑️ Clear") # 🧹 Clear History (清除历史) stop_btn = gr.Button("停止生成", variant="primary") with gr.Column(scale=1): # generate_query_btn = gr.Button("Generate First Query") gr.Dropdown( ["moss", "chatglm-2", "chatpdf"], value="moss", label="问题生成器", # info="Will add more animals later!" ) gr.Dropdown( ["moss", "chatglm-2", "gpt3.5-turbo"], value="gpt3.5-turbo", label="回复生成器", # info="Will add more animals later!" ) slider_max_new_tokens = gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens") slider_temperature = gr.Slider(minimum=0.1, maximum=10.0, value=5, step=0.1, label="Temperature", info="Larger temperature increase the randomness") slider_top_p = gr.Slider( minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)", ) ######## history = gr.State([{"role": "system", "content": system_list[0]}]) system.change(reset_state, inputs=[system], outputs=[chatbot, history], show_progress="full") # submit_btn.click(reset_user_input, [], [user_input]) clear_btn.click(reset_state, inputs=[system], outputs=[chatbot, history], show_progress="full") generate_btn.click(generate, [chatbot, history], outputs=[generated_text, chatbot, history], show_progress="full") slider_max_new_tokens.change(set_max_tokens, inputs=[slider_max_new_tokens]) demo.queue().launch(share=False, server_name="0.0.0.0") # demo.queue().launch(share=True)