ganeshkamath89 commited on
Commit
d5a8634
1 Parent(s): ebe1aed

Changing the code to 2 way chatting

Browse files

Code copied from: https://huggingface.co/spaces/exnrt/com-Chatbot/blob/main/app.py

Files changed (1) hide show
  1. app.py +45 -13
app.py CHANGED
@@ -1,18 +1,50 @@
 
1
  import gradio as gr
2
- import random
3
- import time
4
 
5
- with gr.Blocks() as demo:
6
- chatbot = gr.Chatbot()
7
- msg = gr.Textbox()
8
- clear = gr.ClearButton([msg, chatbot])
9
 
10
- def respond(message, chat_history):
11
- bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
12
- chat_history.append((message, bot_message))
13
- time.sleep(2)
14
- return "", chat_history
 
 
 
 
15
 
16
- msg.submit(respond, [msg, chatbot], [msg, chatbot])
 
 
 
 
 
 
17
 
18
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from huggingface_hub import InferenceClient
2
  import gradio as gr
 
 
3
 
4
+ client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
 
 
 
5
 
6
+ def format_prompt(message, history, system_prompt=None):
7
+ prompt = "<s>"
8
+ for user_prompt, bot_response in history:
9
+ prompt += f"[INST] {user_prompt} [/INST]"
10
+ prompt += f" {bot_response}</s> "
11
+ if system_prompt:
12
+ prompt += f"[SYS] {system_prompt} [/SYS]"
13
+ prompt += f"[INST] {message} [/INST]"
14
+ return prompt
15
 
16
+ def generate(
17
+ prompt, history, system_prompt=None, temperature=0.2, max_new_tokens=1024, top_p=0.95, repetition_penalty=1.0,
18
+ ):
19
+ temperature = float(temperature)
20
+ if temperature < 1e-2:
21
+ temperature = 1e-2
22
+ top_p = float(top_p)
23
 
24
+ generate_kwargs = dict(
25
+ temperature=temperature,
26
+ max_new_tokens=max_new_tokens,
27
+ top_p=top_p,
28
+ repetition_penalty=repetition_penalty,
29
+ do_sample=True,
30
+ seed=42,
31
+ )
32
+
33
+ formatted_prompt = format_prompt(prompt, history, system_prompt)
34
+
35
+ stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
36
+ output = ""
37
+
38
+ for response in stream:
39
+ output += response.token.text
40
+ yield output
41
+ return output
42
+
43
+ mychatbot = gr.Chatbot( bubble_full_width=False, show_label=False, show_copy_button=True, likeable=True,)
44
+
45
+ demo = gr.ChatInterface(
46
+ fn=generate,
47
+ chatbot=mychatbot
48
+ )
49
+
50
+ demo.queue().launch(show_api=False)