|
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() |