CoolFace
Apppublic

muj0987/testonly

sourceHugging Facemitupdated 2y agoView on Hugging Face
0likes
app.py90 linesDownload Raw Back to root
1from huggingface_hub import InferenceClient2import gradio as gr3 4client = InferenceClient(5    "mistralai/Mistral-7B-Instruct-v0.1"6)7 8 9def format_prompt(message, history):10  prompt = "<s>"11  for user_prompt, bot_response in history:12    prompt += f"[INST] {user_prompt} [/INST]"13    prompt += f" {bot_response}</s> "14  prompt += f"[INST] {message} [/INST]"15  return prompt16 17def generate(18    prompt, history, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0,19):20    temperature = float(temperature)21    if temperature < 1e-2:22        temperature = 1e-223    top_p = float(top_p)24 25    generate_kwargs = dict(26        temperature=temperature,27        max_new_tokens=max_new_tokens,28        top_p=top_p,29        repetition_penalty=repetition_penalty,30        do_sample=True,31        seed=42,32    )33 34    formatted_prompt = format_prompt(prompt, history)35 36    stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)37    output = ""38 39    for response in stream:40        output += response.token.text41        yield output42    return output43 44 45additional_inputs=[46    gr.Slider(47        label="Temperature",48        value=0.9,49        minimum=0.0,50        maximum=1.0,51        step=0.05,52        interactive=True,53        info="Higher values produce more diverse outputs",54    ),55    gr.Slider(56        label="Max new tokens",57        value=256,58        minimum=0,59        maximum=1048,60        step=64,61        interactive=True,62        info="The maximum numbers of new tokens",63    ),64    gr.Slider(65        label="Top-p (nucleus sampling)",66        value=0.90,67        minimum=0.0,68        maximum=1,69        step=0.05,70        interactive=True,71        info="Higher values sample more low-probability tokens",72    ),73    gr.Slider(74        label="Repetition penalty",75        value=1.2,76        minimum=1.0,77        maximum=2.0,78        step=0.05,79        interactive=True,80        info="Penalize repeated tokens",81    )82]83 84 85gr.ChatInterface(86    fn=generate,87    chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, layout="panel"),88    additional_inputs=additional_inputs,89    title="""Mistral 7B"""90).launch(show_api=False)