import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM from deep_translator import GoogleTranslator import torch # مشخصات مدل model_id = "google/gemma-3-4b-it" # یا "google/gemma-2-7b-it" بسته به نیاز شما # بارگذاری مدل و توکنایزر tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto" ) model.eval() def generate_topics(field, major, keywords, audience, level): # ساخت پرامپت prompt = f"""[INST]Suggest 3 academic thesis topics based on the following information: Field: {field} Specialization: {major} Keywords: {keywords} Target audience: {audience} Level: {level}[/INST] """ # تولید خروجی inputs = tokenizer(prompt, return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu") with torch.no_grad(): outputs = model.generate(**inputs, max_new_tokens=256) english_output = tokenizer.decode(outputs[0], skip_special_tokens=True) # ترجمه به فارسی translated_output = GoogleTranslator(source='en', target='fa').translate(english_output) translated_output_html = translated_output.strip().replace("\n", "
") # HTML راست‌چین html_output = ( "
{translated_output_html}" "

📢 برای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:
" "021-88252497
" ) return html_output # رابط Gradio iface = gr.Interface( fn=generate_topics, inputs=[ gr.Textbox(label="رشته"), gr.Textbox(label="گرایش"), gr.Textbox(label="کلیدواژه‌ها"), gr.Textbox(label="جامعه هدف"), gr.Dropdown(choices=["کارشناسی ارشد", "دکتری"], label="مقطع") ], outputs=gr.HTML(label="موضوعات پیشنهادی"), title="🎓 پیشنهادگر موضوع پایان‌نامه کاسپین" ) iface.launch()