Spaces:
Sleeping
Sleeping
| import os | |
| import re | |
| import gradio as gr | |
| from transformers import pipeline | |
| # گرفتن توکن از متغیر محیطی | |
| token = os.environ.get("HF_TOKEN") | |
| # استفاده از مدل نسبتاً سبک و قابل اجرا در Hugging Face Spaces | |
| pipe = pipeline( | |
| "text-generation", | |
| model="google/gemma-2b-it", | |
| token=token | |
| ) | |
| # تابع تشخیص و ترجمه کلمات انگلیسی رایج در حوزه روانشناسی | |
| EN_FA_DICT = { | |
| "behavior": "رفتار", | |
| "self-esteem": "عزت نفس", | |
| "confidence": "اعتماد به نفس", | |
| "learning": "یادگیری", | |
| "attachment": "دلبستگی", | |
| "communication": "ارتباط", | |
| "stress": "استرس", | |
| "parent": "والد", | |
| "trauma": "آسیب روانی" | |
| } | |
| def replace_english_words(text): | |
| for eng, fa in EN_FA_DICT.items(): | |
| text = re.sub(rf"\b{eng}\b", fa, text, flags=re.IGNORECASE) | |
| return text | |
| def generate_topics(field, major, keywords, audience, level): | |
| prompt = f""" | |
| ۳ موضوع پایاننامه در رشته {field} با گرایش {major} پیشنهاد بده که به کلیدواژههای "{keywords}" مربوط باشه و جامعه هدف آن "{audience}" باشد. مقطع: {level}. | |
| موضوعات را فارسی بنویس. | |
| """ | |
| output = pipe(prompt, max_new_tokens=250)[0]['generated_text'] | |
| # حذف prompt در صورتی که مدل آن را تکرار کرده باشد | |
| if output.startswith(prompt.strip()): | |
| output = output[len(prompt.strip()):].strip() | |
| # حذف فاصلههای اضافی و جایگزینی کلمات انگلیسی | |
| output = replace_english_words(output.strip()) | |
| # افزودن پیام پایانی تبلیغاتی | |
| output += "\n\nبرای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:\n02188252497" | |
| return 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() | |