File size: 1,446 Bytes
bf29a63 6716d13 bf29a63 8ef5965 bf29a63 6716d13 bf29a63 6716d13 8ef5965 6716d13 8ef5965 bf29a63 6716d13 8ef5965 bf29a63 6716d13 bf29a63 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# تحميل الموديل
model_name = "Salesforce/codegen-350M-mono"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to("cpu")
# دالة التوليد
def generate_code(prompt):
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=200, # زيادة عدد التوكنز ليرجع كود أطول
temperature=0.7, # ضبط العشوائية (أقل من 1 = كود أدق)
do_sample=True, # تفعيل التوليد العشوائي
top_k=50, # استخدام top-k sampling
top_p=0.95 # أو استخدام nucleus sampling
)
code = tokenizer.decode(outputs[0], skip_special_tokens=True)
# إزالة البادئة من الـ prompt لو تكررت في الإخراج
return code[len(prompt):] if code.startswith(prompt) else code
# واجهة Gradio
gr.Interface(
fn=generate_code,
inputs=gr.Textbox(lines=5, placeholder="Describe what code you want...", label="Prompt"),
outputs=gr.Textbox(label="Generated Code"),
title="Code Generator - Mono Model",
description="Generate Python code from a text description using CodeGen-350M-Mono model"
).launch()
|