Spaces:
Runtime error
Runtime error
File size: 2,729 Bytes
30dc0cd 149e9bc 30dc0cd 0c0b6b9 149e9bc 0c0b6b9 30dc0cd 0c0b6b9 30dc0cd 149e9bc 30dc0cd 149e9bc 30dc0cd 149e9bc 30dc0cd 0c0b6b9 30dc0cd accadf5 30dc0cd 0c0b6b9 149e9bc 0c0b6b9 30dc0cd 42aa415 039eeef 0c0b6b9 039eeef 30dc0cd 0c0b6b9 30dc0cd 0c0b6b9 30dc0cd 0c0b6b9 accadf5 30dc0cd 0c0b6b9 039eeef 42aa415 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import gradio as gr
import openai
def get_answer_chatgpt(chat_history, message, system_message=None, model="gpt-4", max_length=1000):
messages = []
if model is None:
model = "gpt-4"
if system_message or system_message != "":
TEMPLATE_SYSTEM = {"role": "system", "content": system_message}
messages.append(TEMPLATE_SYSTEM)
# add historical conversation
for pair in chat_history:
TEMPLATE_USER = {"role": "user", "content": pair[0]}
TEMPLATE_BOT = {"role": "assistant", "content": pair[1]}
messages.append(TEMPLATE_USER)
messages.append(TEMPLATE_BOT)
# add latest input
TEMPLATE_USER["content"] = message
messages.append(TEMPLATE_USER)
response = openai.ChatCompletion.create(
model=model,
messages=messages,
max_tokens=max_length
)
return {
"completion": response["choices"][0]["message"]["content"],
"usage_prompt_token": response["usage"]["prompt_tokens"],
"usage_completion_token": response["usage"]["completion_tokens"]
}
def reset_textbox():
return gr.update(value='')
with gr.Blocks() as demo:
with gr.Row():
with gr.Column(scale=5):
clear = gr.Button("Clear all converstation")
with gr.Column(scale=5):
with gr.Accordion("Parameters", open=False):
model = gr.Dropdown(["gpt-4", "gpt-3.5-turbo"], label="Model", value="gpt-4")
max_length = gr.Slider(0, 10000, value=1000, step=1, label="Maximum length token", interactive=True)
system_message = gr.Textbox(placeholder="You are helpful assistence", lines=5, label="System Message")
chatbot = gr.Chatbot()
message = gr.Textbox(placeholder="Halo kak, aku mau bertanya", label="Chat Here")
with gr.Row():
with gr.Column(scale=5):
send = gr.Button("Send")
with gr.Column(scale=5):
retry = gr.Button("Retry")
def respond(chat_history, message, system_message, model, max_length=1000):
response = get_answer_chatgpt(chat_history, message, system_message, model, max_length)
response = response["completion"]
return chat_history + [[message, response]]
message.submit(respond, [chatbot, message, system_message, model, max_length], chatbot)
clear.click(lambda: None, None, chatbot, queue=False)
send.click(respond, [chatbot, message, system_message, model, max_length], chatbot)
send.click(reset_textbox, [], [message])
message.submit(reset_textbox, [], [message])
retry.click(respond, [chatbot, message, system_message, model, max_length], chatbot)
retry.click(reset_textbox, [], [message])
demo.launch(debug=True)
|