File size: 4,244 Bytes
738953f
 
 
 
 
 
 
 
 
 
 
 
 
 
0187999
738953f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d40212f
738953f
 
 
 
 
 
 
 
 
 
8298882
a000d3e
d40212f
a000d3e
99ff628
a000d3e
d49fd2b
a8db81b
389cd6c
885e40e
e627f14
32f683a
7b4c465
885e40e
7b4c465
 
4dfe0d2
508369d
fe70582
508369d
 
5a01777
83a09dd
508369d
 
4dfe0d2
885e40e
 
 
a000d3e
 
 
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
from huggingface_hub import InferenceClient
import gradio as gr

client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")

def format_prompt(message, history):
  prompt = "<s>"
  for user_prompt, bot_response in history:
    prompt += f"[INST] {user_prompt} [/INST]"
    prompt += f" {bot_response}</s> "
  prompt += f"[INST] {message} [/INST]"
  return prompt

def generate(
    prompt, history, temperature=0.2, max_new_tokens=512, top_p=0.95, repetition_penalty=1.0,
):
    temperature = float(temperature)
    if temperature < 1e-2:
        temperature = 1e-2
    top_p = float(top_p)

    generate_kwargs = dict(
        temperature=temperature,
        max_new_tokens=max_new_tokens,
        top_p=top_p,
        repetition_penalty=repetition_penalty,
        do_sample=True,
        seed=42,
    )

    formatted_prompt = format_prompt(prompt, history)

    stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
    output = ""

    for response in stream:
        output += response.token.text
        yield output
    return output

mychatbot = gr.Chatbot(
    avatar_images=["./user.png", "./botm.png"], bubble_full_width=False, show_label=False, show_copy_button=True, likeable=True,)

demo = gr.ChatInterface(fn=generate, 
                        chatbot=mychatbot,
                        title="Hello! I'm Elisa by SpriFi.πŸ‘‹ How can I help you today?",
                        retry_btn=None,
                        undo_btn=None,
                        css="body { background-color: inherit; overflow-x:hidden;}"
                        ":root {--color-accent: transparent !important; --color-accent-soft:transparent !important; --code-background-fill:black !important;}"
                        "#component-2 {background:#ffffff1a; display:contents;}"
                        "div#component-0 {    height: auto !important;}"
                        ".gradio-container.gradio-container-4-8-0.svelte-1kyws56.app {max-width: 100% !important;}"
                        "gradio-app {background: linear-gradient(134deg,#00425e 0%,#001a3f 43%,#421438 77%) !important; background-attachment: fixed !important; background-position: top;}"
                        ".panel.svelte-vt1mxs {background: transparent; padding:0;}"
                        ".block.svelte-90oupt {    background: transparent;    border-color: transparent;}"
                        ".bot.svelte-12dsd9j.svelte-12dsd9j.svelte-12dsd9j {    background: #ffffff1a;    border-color: transparent;    color: white;}"
                        ".user.svelte-12dsd9j.svelte-12dsd9j.svelte-12dsd9j {    background: #ffffff1a;    border-color: transparent;    color: white;    padding: 10px 18px;}"
                        "div.svelte-iyf88w{    background: #cc98d445;    border-color: transparent; border-radius: 25px;}"
                        "textarea.scroll-hide.svelte-1f354aw {    background: transparent; color: #fff !important;}"
                        ".primary.svelte-cmf5ev {   background: transparent;    color: white;}"
                        ".primary.svelte-cmf5ev:hover {   background: transparent;    color: white;}"
                        "button#component-8 {    display: none;    position: absolute;    margin-top: 60px;    border-radius: 25px;}"
                        "button#component-10 {    flex: none;    margin-left: auto;    border-radius: 25px; min-width:fit-content;}"
                        ".share-button.svelte-12dsd9j {    display: none;}"
                        "footer.svelte-mpyp5e {    display: none !important;}"
                        ".message-buttons-bubble.svelte-12dsd9j.svelte-12dsd9j.svelte-12dsd9j { border-color: #31546E;    background: #31546E;}"
                        ".bubble-wrap.svelte-12dsd9j.svelte-12dsd9j.svelte-12dsd9j {padding: 0;}"                      
                        ".prose h1 { color: white !important;    font-size: 16px !important;    font-weight: normal !important;    background: #ffffff1a;    padding: 20px;    border-radius: 20px;    width: fit-content;    margin-left: auto !important;    margin-right: auto !important;}"
                        
                       )

demo.queue().launch(show_api=False)