import gradio as gr from transformers import AutoTokenizer, Gemma3ForConditionalGeneration from deep_translator import GoogleTranslator import torch # بارگذاری توکنایزر و مدل tokenizer = AutoTokenizer.from_pretrained("google/gemma-3-4b-it") model = Gemma3ForConditionalGeneration.from_pretrained("google/gemma-3-4b-it", torch_dtype=torch.bfloat16) model.eval() def generate_topics(field, major, keywords, audience, level): prompt = f"""Suggest 3 academic thesis topics based on the following information: Field: {field} Specialization: {major} Keywords: {keywords} Target audience: {audience} Level: {level} """ inputs = tokenizer(prompt, return_tensors="pt") 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) final_output = translated_output.strip() + "\n\n📢 برای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:\n02188252497" return final_output iface = gr.Interface( fn=generate_topics, inputs=[ gr.Textbox(label="رشته"), gr.Textbox(label="گرایش"), gr.Textbox(label="کلیدواژه‌ها"), gr.Textbox(label="جامعه هدف"), gr.Dropdown(choices=["کارشناسی ارشد", "دکتری"], label="مقطع") ], outputs="text", title="🎓 پیشنهادگر موضوع پایان‌نامه کاسپین" ) iface.launch()