import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM from deep_translator import GoogleTranslator import torch # انتخاب مدل پایدار model_id = "google/gemma-7b-it" # بارگذاری مدل و توکنایزر tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32, 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: Field: {field} Specialization: {major} Keywords: {keywords} Target Audience: {audience} Level: {level}[/INST]""" inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): outputs = model.generate(**inputs, max_new_tokens=256) english_output = tokenizer.decode(outputs[0], skip_special_tokens=True).strip() if not english_output: return "
❌ مشکلی در تولید موضوعات رخ داد. لطفاً دوباره تلاش کنید.
" translated_output = GoogleTranslator(source='en', target='fa').translate(english_output).strip() translated_output_html = translated_output.replace("\n", "
") html_output = ( "
" f"{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="🎓 پیشنهادگر موضوع پایان‌نامه کاسپین", theme="default" ) iface.launch()