import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 4 نماذج لتوليد الكود models = { "CodeGen (Salesforce)": "Salesforce/codegen-2B-multi", "StarCoder": "bigcode/starcoder", "WizardCoder": "WizardLM/WizardCoder-1B-V1.0", "Phind LLaMA": "Phind/phind-codeLlama-34b-v2" } # تحميل النماذج loaded_models = {} for name, model_id in models.items(): tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype=torch.float16) loaded_models[name] = (tokenizer, model) # دالة توليد الكود def generate_code(prompt, model_name): tokenizer, model = loaded_models[model_name] inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=150) code = tokenizer.decode(outputs[0], skip_special_tokens=True) return code # واجهة Gradio demo = gr.Interface( fn=generate_code, inputs=[ gr.Textbox(lines=5, label="اكتب وصف الكود (بالإنجليزية)"), gr.Radio(choices=list(models.keys()), label="اختر النموذج") ], outputs=gr.Code(label="الكود الناتج"), title="Code Generation with AI Models", description="اختر نموذج AI وادخل وصف الكود ليتم توليده تلقائيًا" ) demo.launch()