File size: 4,446 Bytes
738953f
 
 
 
 
b33ea97
 
 
 
 
 
 
 
 
738953f
 
b33ea97
738953f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b33ea97
738953f
 
 
 
 
 
 
 
 
 
8298882
a000d3e
b33ea97
 
 
 
 
 
 
 
 
 
 
389cd6c
885e40e
e627f14
32f683a
7b4c465
885e40e
7b4c465
 
4dfe0d2
508369d
fe70582
508369d
 
5a01777
83a09dd
508369d
 
4dfe0d2
885e40e
 
 
b33ea97
a000d3e
b33ea97
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
74
75
76
77
78
79
80
81
from huggingface_hub import InferenceClient
import gradio as gr

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

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

def generate(
    prompt, history, system_prompt=None, 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, system_prompt)

    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,
    examples=[
        ["Hello", [], "Your name is Elisa, an AI created by SpriFi Inc. on February 14 2023.", 0.2, 512, 0.95, 1.0],
        # Add more examples as needed
    ],
    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)