|
import gradio as gr |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import torch |
|
|
|
|
|
model_name = "Qwen/Qwen2.5-Coder-7B-Instruct" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) |
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_name, |
|
device_map="auto", |
|
trust_remote_code=True |
|
) |
|
|
|
def generate_code(prompt, code): |
|
|
|
system_prompt = """Ты - опытный веб-разработчик и программист. |
|
Твоя задача - помогать с написанием, анализом и оптимизацией кода. |
|
Ты специализируешься на веб-разработке, включая HTML, CSS, JavaScript, |
|
современные фреймворки и библиотеки.""" |
|
|
|
|
|
full_prompt = f"{system_prompt}\n\nЗадача: {prompt}\n\nКод:\n{code}" |
|
|
|
|
|
inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device) |
|
outputs = model.generate( |
|
**inputs, |
|
max_new_tokens=2000, |
|
do_sample=True, |
|
temperature=0.7, |
|
top_p=0.9, |
|
top_k=50 |
|
) |
|
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
return response |
|
|
|
|
|
iface = gr.Interface( |
|
fn=generate_code, |
|
inputs=[ |
|
gr.Textbox(label="Промпт", lines=5), |
|
gr.Textbox(label="Код", lines=10) |
|
], |
|
outputs=gr.Textbox(label="Результат", lines=10), |
|
title="AI Code Assistant", |
|
description="Введите промпт и код для обработки" |
|
) |
|
|
|
iface.launch() |