| import gradio as gr |
| from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
| |
| model_name = "deepseek/r1" |
| model = AutoModelForCausalLM.from_pretrained(model_name) |
| tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
|
| def inference(prompt, temperature, top_p, max_length): |
| try: |
| |
| inputs = tokenizer(prompt, return_tensors="np") |
|
|
| |
| outputs = model.generate( |
| inputs.input_ids, |
| max_length=max_length, |
| temperature=temperature, |
| top_p=top_p, |
| do_sample=True |
| ) |
|
|
| |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) |
| return response |
|
|
| except Exception as e: |
| return f"Ошибка: {str(e)}" |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("# DeepSeek-r1 Model") |
|
|
| with gr.Row(): |
| input_text = gr.Textbox(label="Входной текст", placeholder="Введите ваш текст здесь...") |
| output_text = gr.Textbox(label="Выходной текст", placeholder="Ответ модели появится здесь...") |
|
|
| with gr.Row(): |
| max_length = gr.Slider(label="Max Length", minimum=1, maximum=1000, value=500) |
| temperature = gr.Slider(label="Temperature", minimum=0.1, maximum=2.0, value=1.0) |
| top_p = gr.Slider(label="Top P", minimum=0.1, maximum=1.0, value=1.0) |
|
|
| run_button = gr.Button("Run") |
|
|
| |
| run_button.click( |
| fn=inference, |
| inputs=[input_text, temperature, top_p, max_length], |
| outputs=output_text |
| ) |
|
|
| |
| if __name__ == "__main__": |
| demo.launch() |