Spaces:
Sleeping
Sleeping
| 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", "<br>") | |
| # HTML راستچین | |
| html_output = ( | |
| "<div dir='rtl' style='text-align: right; font-family: Tahoma, sans-serif; font-size: 16px; " | |
| f"line-height: 1.8;'>{translated_output_html}" | |
| "<br><br>📢 برای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:<br>" | |
| "<strong>021-88252497</strong></div>" | |
| ) | |
| 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() | |