Spaces:
Running
Running
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 = """<h1 align="center">NPC 测试</h1>""" | |
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) |