File size: 5,130 Bytes
738953f
 
 
1f08898
738953f
1f08898
353d9c0
 
 
 
 
 
1f08898
353d9c0
 
f693347
61f7fa5
f693347
 
 
 
 
f95746a
b8e7dbe
f693347
 
 
 
b8e7dbe
 
 
e48d275
f693347
 
f95746a
f693347
f95746a
 
f693347
 
 
0180f61
738953f
1f08898
a000d3e
91bf592
b33ea97
91bf592
9944738
91bf592
1f08898
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91bf592
 
1f08898
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
from huggingface_hub import InferenceClient
import gradio as gr

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

def format_prompt(message, history, system_prompt=""):
    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="Enhance This prompt without changing the essence in this format - [role], [writing style], [tone], [format], [language], [audience], [complexity], [length], [target outcome], [restriction], [call to actions] in sentence wise, only use the parameters given in the input", temperature=0.2, max_new_tokens=1024, 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", "./botm1.png"], bubble_full_width=False, show_label=False, show_copy_button=True, likeable=True,)

demo = gr.ChatInterface(
    fn=generate,
    chatbot=mychatbot,
    title="Prompt Enhancer",
    css="body { background-color: inherit; overflow-x:hidden;}"
                        ":root {--color-accent: transparent !important; --color-accent-soft:transparent !important; --code-background-fill:black !important; --body-text-color:white !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(90deg, #09203F 77%, #596164 45%, #09203F 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;}"
                        "div#component-9 {    max-width: fit-content;    margin-left: auto;    margin-right: auto;}"
                        "button#component-10, button#component-11, button#component-12 {    flex: none;    background: #ffffff1a;    border: none;    color: white;    margin-right: auto;    margin-left: auto;    border-radius: 9px;    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: 90%;    margin-left: auto !important;    margin-right: auto !important;}"
                        ".toast-wrap.svelte-pu0yf1 { display:none !important;}"
                        ".scroll-hide { scrollbar-width: auto !important;}"
                        ".main svelte-1kyws56 {max-width: 800px; align-self: center;}"
                        "div#component-4 {max-width: 650px;    margin-left: auto;    margin-right: auto;}"  
                        "body::-webkit-scrollbar {    display: none;}"
)

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