Chat-with-GPT4 / app.py
dodoleonarnci's picture
Upload folder using huggingface_hub
200b185 verified
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)