Spaces:
Running
Running
+context length
Browse files
app.py
CHANGED
@@ -35,7 +35,7 @@ def on_prompt_template_change(prompt_template):
|
|
35 |
if not isinstance(prompt_template, str): return
|
36 |
return prompt_templates[prompt_template]
|
37 |
|
38 |
-
def submit_message(user_token, prompt, prompt_template, temperature, max_tokens, state):
|
39 |
|
40 |
history = state['messages']
|
41 |
|
@@ -59,7 +59,7 @@ def submit_message(user_token, prompt, prompt_template, temperature, max_tokens,
|
|
59 |
return '', [(history[i]['content'], history[i+1]['content']) for i in range(0, len(history)-1, 2)], f"Total tokens used: 0", state
|
60 |
|
61 |
try:
|
62 |
-
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=system_prompt + history[-
|
63 |
|
64 |
history.append(prompt_msg)
|
65 |
history.append(completion.choices[0].message.to_dict())
|
@@ -119,13 +119,14 @@ with gr.Blocks(css=css) as demo:
|
|
119 |
with gr.Accordion("Advanced parameters", open=False):
|
120 |
temperature = gr.Slider(minimum=0, maximum=2.0, value=0.7, step=0.1, label="Temperature (higher = more creative/chaotic)")
|
121 |
max_tokens = gr.Slider(minimum=100, maximum=4096, value=1000, step=1, label="Max tokens per response")
|
|
|
122 |
|
123 |
gr.HTML('''<br><br><br><center><a href="https://huggingface.co/spaces/anzorq/chatgpt-demo?duplicate=true"><img src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>You can duplicate this Space.<br>
|
124 |
Don't forget to set your own <a href="https://platform.openai.com/account/api-keys">OpenAI API Key</a> environment variable in Settings.<br>
|
125 |
<p><img src="https://visitor-badge.glitch.me/badge?page_id=anzorq.chatgpt_api_demo_hf" alt="visitors"></p></center>''')
|
126 |
|
127 |
-
btn_submit.click(submit_message, [user_token, input_message, prompt_template, temperature, max_tokens, state], [input_message, chatbot, total_tokens_str, state])
|
128 |
-
input_message.submit(submit_message, [user_token, input_message, prompt_template, temperature, max_tokens, state], [input_message, chatbot, total_tokens_str, state])
|
129 |
btn_clear_conversation.click(clear_conversation, [], [input_message, chatbot, total_tokens_str, state])
|
130 |
prompt_template.change(on_prompt_template_change, inputs=[prompt_template], outputs=[prompt_template_preview])
|
131 |
user_token.change(on_token_change, inputs=[user_token], outputs=[])
|
|
|
35 |
if not isinstance(prompt_template, str): return
|
36 |
return prompt_templates[prompt_template]
|
37 |
|
38 |
+
def submit_message(user_token, prompt, prompt_template, temperature, max_tokens, context_length, state):
|
39 |
|
40 |
history = state['messages']
|
41 |
|
|
|
59 |
return '', [(history[i]['content'], history[i+1]['content']) for i in range(0, len(history)-1, 2)], f"Total tokens used: 0", state
|
60 |
|
61 |
try:
|
62 |
+
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=system_prompt + history[-context_length*2:] + [prompt_msg], temperature=temperature, max_tokens=max_tokens)
|
63 |
|
64 |
history.append(prompt_msg)
|
65 |
history.append(completion.choices[0].message.to_dict())
|
|
|
119 |
with gr.Accordion("Advanced parameters", open=False):
|
120 |
temperature = gr.Slider(minimum=0, maximum=2.0, value=0.7, step=0.1, label="Temperature (higher = more creative/chaotic)")
|
121 |
max_tokens = gr.Slider(minimum=100, maximum=4096, value=1000, step=1, label="Max tokens per response")
|
122 |
+
context_length = gr.Slider(minimum=1, maximum=10, value=2, step=1, label="Context length (Number of previous messages to send to the chatbot). Be careful with high values, it can blow up the token budget quickly.")
|
123 |
|
124 |
gr.HTML('''<br><br><br><center><a href="https://huggingface.co/spaces/anzorq/chatgpt-demo?duplicate=true"><img src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>You can duplicate this Space.<br>
|
125 |
Don't forget to set your own <a href="https://platform.openai.com/account/api-keys">OpenAI API Key</a> environment variable in Settings.<br>
|
126 |
<p><img src="https://visitor-badge.glitch.me/badge?page_id=anzorq.chatgpt_api_demo_hf" alt="visitors"></p></center>''')
|
127 |
|
128 |
+
btn_submit.click(submit_message, [user_token, input_message, prompt_template, temperature, max_tokens, context_length, state], [input_message, chatbot, total_tokens_str, state])
|
129 |
+
input_message.submit(submit_message, [user_token, input_message, prompt_template, temperature, max_tokens, context_length, state], [input_message, chatbot, total_tokens_str, state])
|
130 |
btn_clear_conversation.click(clear_conversation, [], [input_message, chatbot, total_tokens_str, state])
|
131 |
prompt_template.change(on_prompt_template_change, inputs=[prompt_template], outputs=[prompt_template_preview])
|
132 |
user_token.change(on_token_change, inputs=[user_token], outputs=[])
|