import gradio as gr import os import json from bot import run_chatbot #Resetting to blank def reset_textbox(): return gr.update(value='') #to set a component as visible=False def set_visible_false(): return gr.update(visible=False) #to set a component as visible=True def set_visible_true(): return gr.update(visible=True) title = """

NPC 测试

""" character = "paul" #Modifying existing Gradio Theme theme = gr.themes.Soft(primary_hue="zinc", secondary_hue="green", neutral_hue="green", text_size=gr.themes.sizes.text_lg) with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;} #chatbot {height: 520px; overflow: auto;}""", theme=theme) as demo: gr.HTML(title) with gr.Column(elem_id = "col_container"): #Users need to provide their own GPT4 API key, it is no longer provided by Huggingface with gr.Row(): openai_gpt4_key = gr.Textbox(label="OpenAI GPT4 Key", value="", type="password", placeholder="sk..", info = "You have to provide your own GPT4 keys for this app to function properly",) chatbot = gr.Textbox(label='GPT4', elem_id="chatbot") inputs = gr.Textbox(placeholder= "Hi there!", label= "你对NPC说的话") character = gr.Textbox(placeholder= "paul", label= "NPC名字") state = gr.State([]) with gr.Row(): with gr.Column(scale=7): b1 = gr.Button() with gr.Column(scale=3): server_status_code = gr.Textbox(label="Status code from OpenAI server", ) #top_p, temperature # with gr.Accordion("Parameters", open=False): # top_p = gr.Slider( minimum=-0, maximum=1.0, value=1.0, step=0.05, interactive=True, label="Top-p (nucleus sampling)",) # temperature = gr.Slider( minimum=-0, maximum=5.0, value=1.0, step=0.1, interactive=True, label="Temperature",) # chat_counter = gr.Number(value=0, visible=False, precision=0) #Event handling inputs.submit(run_chatbot, [openai_gpt4_key, character, inputs],[chatbot]) b1.click(run_chatbot, [openai_gpt4_key, character, inputs],[chatbot]) b1.click(reset_textbox, [], [inputs]) inputs.submit(reset_textbox, [], [inputs]) demo.launch(debug=True)