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