CoolFace
Apppublic

Starchik/Chatterbox_v3

sourceHugging Facemitupdated 2y agoView on Hugging Face
0likes
app.py99 linesDownload Raw Back to root
1from huggingface_hub import InferenceClient2import gradio as gr3 4client = InferenceClient(5    "mistralai/Mistral-7B-Instruct-v0.3"6)7 8 9def format_prompt(message, history):10  prompt = "программист на python"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, system_prompt, 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(f"{system_prompt}, {prompt}", history)35    stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=True)36    output = ""37 38    for response in stream:39        output += response.token.text40        yield output41    return output42 43 44additional_inputs=[45    gr.Textbox(46        label="System Prompt",47        max_lines=1,48        interactive=True,49    ),50    gr.Slider(51        label="Temperature",52        value=0.9,53        minimum=0.0,54        maximum=1.0,55        step=0.05,56        interactive=True,57        info="Higher values produce more diverse outputs",58    ),59    gr.Slider(60        label="Max new tokens",61        value=2048,62        minimum=128,63        maximum=8192,64        step=64,65        interactive=True,66        info="The maximum numbers of new tokens",67    ),68    gr.Slider(69        label="Top-p (nucleus sampling)",70        value=0.90,71        minimum=0.0,72        maximum=1,73        step=0.05,74        interactive=True,75        info="Higher values sample more low-probability tokens",76    ),77    gr.Slider(78        label="Repetition penalty",79        value=1.2,80        minimum=1.0,81        maximum=2.0,82        step=0.05,83        interactive=True,84        info="Penalize repeated tokens",85    )86]87 88examples=[#["говори на русском", None, None, None, None, None, ],89         ]90 91gr.ChatInterface(92    fn=generate,93    chatbot=gr.Chatbot(show_label=False, show_share_button=True, show_copy_button=True, likeable=True, layout="panel"),94    additional_inputs=additional_inputs,95    title="Chatterbox",96    examples=examples,97    concurrency_limit=20,98).launch(show_api=False)99