File size: 4,587 Bytes
9c9ed59 e80f478 9c9ed59 b0fd8fc 9c9ed59 ca677a9 9c9ed59 ca677a9 9c9ed59 cf9611a 9c9ed59 3eec546 1afe06d 9c9ed59 9bfab7b a7337ac 305bb69 9bfab7b 3eec546 9bfab7b dc30bb5 a7337ac e95e8e1 7b60e38 b0fd8fc 3eec546 1afe06d 9bfab7b a7337ac |
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
from huggingface_hub import InferenceClient
import gradio as gr
client = InferenceClient(
"mistralai/Mixtral-8x7B-Instruct-v0.1"
)
system_prompt = """Let's say You are Santa Claus, the jolly old elf who knows everything about Christmas. As an LLM, your job is to shortly answer questions about Christmas traditions, gift ideas, and the meaning of Christmas. Use a cheerful and festive tone. Try to keep your responses short."""
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.9, max_new_tokens=256, 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(f"{system_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
additional_inputs=[
gr.Textbox(
label="System Prompt",
max_lines=1,
interactive=True,
),
gr.Slider(
label="Temperature",
value=0.9,
minimum=0.0,
maximum=1.0,
step=0.05,
interactive=True,
info="Higher values produce more diverse outputs",
),
gr.Slider(
label="Max new tokens",
value=256,
minimum=0,
maximum=1048,
step=64,
interactive=True,
info="The maximum numbers of new tokens",
),
gr.Slider(
label="Top-p (nucleus sampling)",
value=0.90,
minimum=0.0,
maximum=1,
step=0.05,
interactive=True,
info="Higher values sample more low-probability tokens",
),
gr.Slider(
label="Repetition penalty",
value=1.2,
minimum=1.0,
maximum=2.0,
step=0.05,
interactive=True,
info="Penalize repeated tokens",
)
]
examples=[["How old are you?", None, None, None, None, None, ],
["Who is your favorite reindeer?", None, None, None, None, None,],
["What is your secret to pass through chimneys?", None, None, None, None, None,],
["What is your real name?", None, None, None, None, None,],
["Did you receive my wish list?", None, None, None, None, None,],
]
css="""
.gradio-container{
max-width: 720px!important;
}
img#santa-portrait {
margin: 20px auto;
border-radius: 10px;
}
"""
santa_portrait = """
https://cdn-lfs-us-1.huggingface.co/repos/d7/f7/d7f7d979f9cc4900d4c2cfb12b580241727ac1977845850590d9ae820c297614/f8ec6cadd640be5c45e017703b276faad4786f1180ef7b0609a646a24cd224fd?response-content-disposition=inline%3B+filename*%3DUTF-8%27%27santa_avatar.png%3B+filename%3D%22santa_avatar.png%22%3B&response-content-type=image%2Fpng&Expires=1703512203&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcwMzUxMjIwM319LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2RuLWxmcy11cy0xLmh1Z2dpbmdmYWNlLmNvL3JlcG9zL2Q3L2Y3L2Q3ZjdkOTc5ZjljYzQ5MDBkNGMyY2ZiMTJiNTgwMjQxNzI3YWMxOTc3ODQ1ODUwNTkwZDlhZTgyMGMyOTc2MTQvZjhlYzZjYWRkNjQwYmU1YzQ1ZTAxNzcwM2IyNzZmYWFkNDc4NmYxMTgwZWY3YjA2MDlhNjQ2YTI0Y2QyMjRmZD9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPSomcmVzcG9uc2UtY29udGVudC10eXBlPSoifV19&Signature=M1QyL2Gwb12b0RxZesFOMOpgLzYoL3fVBG2mutAL0ERoqdfRMeec9mlytfxvMSGj88TIZEv1X%7E5Eu%7ERkXh0HovLO3kYR7Q%7Eclfc9P7dVD6FN7g1yDoCU1D6p5SsHsyjsGLm7tyVMb9TWD71DSCV0pIOGDKroxkwGZHwQG1M93gqCYdNWcxOCijiWN9AxsFoG5JaE9092j5SfI9fiQS4tBAtOTFlep2TXPBtJ9rXpGbNpcD2VCKi4wneGAxjJ6gbh77TfB3e79TjpcUir5QpRbFgj4NRnogBylOei4SNHqLI3eB-3ua7BRpkWCwNpNd7jXMoomwokcVW%7Exm63%7E2YjDw__&Key-Pair-Id=KCD77M1F0VK2B
"""
gr.ChatInterface(
fn=generate,
chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, bubble_full_width=False, avatar_images=[None, "santa_avatar.png"]),
#additional_inputs=additional_inputs,
title=f"<img id='santa-portrait' src='{santa_portrait}' width='30%' /> Chat with Santa",
examples=examples,
concurrency_limit=20,
css=css
).launch(show_api=False) |