File size: 2,101 Bytes
8977f02
 
 
 
 
 
 
 
 
 
 
 
 
385cea5
 
 
 
 
8977f02
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385cea5
8977f02
 
385cea5
8977f02
385cea5
 
 
 
 
 
8977f02
 
 
 
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
import gradio as gr
from huggingface_hub import InferenceClient

client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")

def respond(
    message,
    history: list[tuple[str, str]],
    system_message,
    max_tokens,
    temperature,
    top_p,
):
    if system_message is None:
        system_message = "I'm here to help you unwind. Let's take a deep breath together."
    else:
        system_message = "You are a good stress reliefer. your approach is to encourage letting go of overthinking, steering away from negative thoughts, and providing practical steps to manage stress effectively. Feel free to share what's on your mind, or would you like to try a quick relaxation exercise together."

    messages = [{"role": "system", "content": system_message}]

    for val in history:
        if val[0]:
            messages.append({"role": "user", "content": val[0]})
        if val[1]:
            messages.append({"role": "assistant", "content": val[1]})

    messages.append({"role": "user", "content": message})

    response = ""

    for message in client.chat_completion(
        messages,
        max_tokens=max_tokens,
        stream=True,
        temperature=temperature,
        top_p=top_p,
    ):
        token = message.choices[0].delta.content

        response += token
        yield response

demo = gr.ChatInterface(
    respond,
    additional_inputs=[
        gr.Textbox(value="Remember to breathe deeply. Avoid fixating on unhelpful thoughts.", label="System message"),
        gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
        gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
        gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
    ],
    examples=[
        ["I feel stressed with work."],
        ["How can I incorporate mindfulness into my daily routine to reduce stress?"],
        ["How do you recommend I handle recurring negative thoughts that contribute to my stress?"]
    ],
    title="Peace_maker"
)

if __name__ == "__main__":
    demo.launch()