diginoron commited on
Commit
2543f2c
·
verified ·
1 Parent(s): 0a78368

Upload app (5).py

Browse files
Files changed (1) hide show
  1. app (5).py +66 -0
app (5).py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import re
3
+ import gradio as gr
4
+ from transformers import pipeline
5
+
6
+ # گرفتن توکن از متغیر محیطی
7
+ token = os.environ.get("HF_TOKEN")
8
+
9
+ # استفاده از مدل نسبتاً سبک و قابل اجرا در Hugging Face Spaces
10
+ pipe = pipeline(
11
+ "text-generation",
12
+ model="google/gemma-2b-it",
13
+ token=token
14
+ )
15
+
16
+ # تابع تشخیص و ترجمه کلمات انگلیسی رایج در حوزه روانشناسی
17
+ EN_FA_DICT = {
18
+ "behavior": "رفتار",
19
+ "self-esteem": "عزت نفس",
20
+ "confidence": "اعتماد به نفس",
21
+ "learning": "یادگیری",
22
+ "attachment": "دلبستگی",
23
+ "communication": "ارتباط",
24
+ "stress": "استرس",
25
+ "parent": "والد",
26
+ "trauma": "آسیب روانی"
27
+ }
28
+
29
+ def replace_english_words(text):
30
+ for eng, fa in EN_FA_DICT.items():
31
+ text = re.sub(rf"\b{eng}\b", fa, text, flags=re.IGNORECASE)
32
+ return text
33
+
34
+ def generate_topics(field, major, keywords, audience, level):
35
+ prompt = f"""
36
+ ۳ موضوع پایان‌نامه در رشته {field} با گرایش {major} پیشنهاد بده که به کلیدواژه‌های "{keywords}" مربوط باشه و جامعه هدف آن "{audience}" باشد. مقطع: {level}.
37
+ موضوعات را فارسی بنویس.
38
+ """
39
+ output = pipe(prompt, max_new_tokens=250)[0]['generated_text']
40
+
41
+ # حذف prompt در صورتی که مدل آن را تکرار کرده باشد
42
+ if output.startswith(prompt.strip()):
43
+ output = output[len(prompt.strip()):].strip()
44
+
45
+ # حذف فاصله‌های اضافی و جایگزینی کلمات انگلیسی
46
+ output = replace_english_words(output.strip())
47
+
48
+ # افزودن پیام پایانی تبلیغاتی
49
+ output += "\n\nبرای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:\n02188252497"
50
+
51
+ return output
52
+
53
+ iface = gr.Interface(
54
+ fn=generate_topics,
55
+ inputs=[
56
+ gr.Textbox(label="رشته"),
57
+ gr.Textbox(label="گرایش"),
58
+ gr.Textbox(label="کلیدواژه‌ها"),
59
+ gr.Textbox(label="جامعه هدف"),
60
+ gr.Dropdown(choices=["کارشناسی ارشد", "دکتری"], label="مقطع")
61
+ ],
62
+ outputs="text",
63
+ title="پیشنهادگر هوشمند موضوع پایان‌نامه کاسپین 🎓"
64
+ )
65
+
66
+ iface.launch()