Spaces:
Configuration error
Configuration error
# -*- coding: utf-8 -*- | |
import gradio as gr | |
from utils import prompt | |
from utils import engine | |
from utils.datasetSaver import login | |
import time | |
MODEL_NAME = 'gpt-3.5-turbo' | |
# MODEL_NAME = 'gpt-4-turbo-preview' | |
# MODEL_NAME = 'glm-4' | |
# 自定义system | |
# 设置端口号,默认7560,遇冲突可自定义 | |
SERVER_PORT = 7562 | |
story_path = r"/home/yangkelang/program/novalConvertProject/data/stories/十八岁出门远行.txt" | |
prompt_text = prompt.prompt_generator(story_path) | |
# 调用gpt的bot | |
LLM = engine.ChatGPT(model=MODEL_NAME,init_system={"role": "system", "content": prompt_text}) | |
# LLM = engine.zhiPuGlm(model=MODEL_NAME, init_system={"role": "system", "content": prompt_text}) | |
initial_response = LLM.get_response() | |
def predict(input, chatbot): | |
""" 调用openai接口,获取答案 | |
""" | |
chatbot.append((input, "")) | |
# 找chatgpt要答案 | |
response = LLM.get_response(input) | |
characters = '' | |
for character in response: | |
characters +=character | |
chatbot[-1] = (input,characters) | |
time.sleep(0.05) | |
yield chatbot | |
# return chatbot | |
def reset_user_input(): | |
return gr.update(value='') | |
def reset_user_input_new_game(): | |
return gr.update(value='newgame') | |
def reset_state(): | |
LLM.clean_history() | |
return [] | |
def save_history(): | |
LLM.save_history() | |
return [] | |
def new_game(): | |
return gr.update(value=[[None,initial_response]]) | |
def main(): | |
with gr.Blocks() as demo: | |
gr.HTML("""<h1 align="center">{}</h1>""".format(MODEL_NAME)) | |
# gradio的chatbot | |
chatbot = gr.Chatbot(value=[[None,initial_response]]) | |
with gr.Row(): | |
with gr.Column(scale=4): | |
with gr.Column(scale=50): | |
user_input = gr.Textbox(show_label=False, placeholder="Input...",container=False) | |
with gr.Column(min_width=32, scale=1): | |
submitBtn = gr.Button("Submit", variant="primary") | |
with gr.Column(scale=1): | |
newBtn = gr.Button("新的游戏") | |
# 提交问题 | |
submitBtn.click(predict, [user_input, chatbot], | |
[chatbot], show_progress=True) | |
submitBtn.click(reset_user_input, [], [user_input]) | |
# 新的游戏 | |
newBtn.click(reset_user_input_new_game,[],[user_input]) | |
newBtn.click(reset_state, outputs=[chatbot], show_progress=True).then(save_history, outputs=[chatbot], show_progress=True).then(new_game,[],[chatbot]) | |
# newBtn.click(predict, [user_input, chatbot],[chatbot], show_progress=True) | |
newBtn.click(reset_user_input, [], [user_input]) | |
# demo.queue().launch(share=True, inbrowser=True, server_port=SERVER_PORT,auth=login) | |
demo.queue().launch(share=True, inbrowser=True, auth=login) | |
#chmod +x /home/yangkelang/lib/python3.10/site-packages/gradio/frpc_linux_amd64_v0.2 | |
if __name__ == '__main__': | |
main() |