Starchik/Chatterbox_v3
0
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 