anzorq commited on
Commit
fbe6257
1 Parent(s): 955744f

+context length

Browse files
Files changed (1) hide show
  1. app.py +5 -4
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[-4:] + [prompt_msg], temperature=temperature, max_tokens=max_tokens)
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=[])