diginoron commited on
Commit
4f768b5
·
verified ·
1 Parent(s): 8c0a0e6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -11
app.py CHANGED
@@ -1,32 +1,50 @@
1
  import gradio as gr
2
- from transformers import AutoTokenizer, Gemma3ForConditionalGeneration
3
  from deep_translator import GoogleTranslator
4
  import torch
5
 
6
- # بارگذاری توکنایزر و مدل
7
- tokenizer = AutoTokenizer.from_pretrained("google/gemma-3-4b-it")
8
- model = Gemma3ForConditionalGeneration.from_pretrained("google/gemma-3-4b-it", torch_dtype=torch.bfloat16)
 
 
 
 
 
 
 
9
  model.eval()
10
 
11
  def generate_topics(field, major, keywords, audience, level):
12
- prompt = f"""Suggest 3 academic thesis topics based on the following information:
 
13
  Field: {field}
14
  Specialization: {major}
15
  Keywords: {keywords}
16
  Target audience: {audience}
17
- Level: {level}
18
  """
19
-
20
- inputs = tokenizer(prompt, return_tensors="pt")
21
  with torch.no_grad():
22
  outputs = model.generate(**inputs, max_new_tokens=256)
23
  english_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
24
 
 
25
  translated_output = GoogleTranslator(source='en', target='fa').translate(english_output)
26
 
27
- final_output = translated_output.strip() + "\n\n📢 برای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:\n02188252497"
28
- return final_output
 
 
 
 
 
 
 
 
29
 
 
30
  iface = gr.Interface(
31
  fn=generate_topics,
32
  inputs=[
@@ -36,7 +54,7 @@ iface = gr.Interface(
36
  gr.Textbox(label="جامعه هدف"),
37
  gr.Dropdown(choices=["کارشناسی ارشد", "دکتری"], label="مقطع")
38
  ],
39
- outputs="text",
40
  title="🎓 پیشنهادگر موضوع پایان‌نامه کاسپین"
41
  )
42
 
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM
3
  from deep_translator import GoogleTranslator
4
  import torch
5
 
6
+ # مشخصات مدل
7
+ model_id = "google/gemma-2-7b-it" # یا "google/gemma-3-4b-it" بسته به مدل شما
8
+
9
+ # بارگذاری مدل و توکنایزر
10
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
11
+ model = AutoModelForCausalLM.from_pretrained(
12
+ model_id,
13
+ torch_dtype=torch.bfloat16,
14
+ device_map="auto" # اگر روی GPU هستید
15
+ )
16
  model.eval()
17
 
18
  def generate_topics(field, major, keywords, audience, level):
19
+ # پرامپت انگلیسی
20
+ prompt = f"""[INST]Suggest 3 academic thesis topics based on the following information:
21
  Field: {field}
22
  Specialization: {major}
23
  Keywords: {keywords}
24
  Target audience: {audience}
25
+ Level: {level}[/INST]
26
  """
27
+ # تولید متن با مدل
28
+ inputs = tokenizer(prompt, return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu")
29
  with torch.no_grad():
30
  outputs = model.generate(**inputs, max_new_tokens=256)
31
  english_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
32
 
33
+ # ترجمه به فارسی
34
  translated_output = GoogleTranslator(source='en', target='fa').translate(english_output)
35
 
36
+ # HTML راست‌چین برای نمایش زیبا در Gradio
37
+ html_output = f"""
38
+ <div dir="rtl" style="text-align: right; font-family: Tahoma, sans-serif; font-size: 16px; line-height: 1.8;">
39
+ {translated_output.strip().replace('\n', '<br>')}
40
+ <br><br>
41
+ 📢 برای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:<br>
42
+ <strong>021-88252497</strong>
43
+ </div>
44
+ """
45
+ return html_output
46
 
47
+ # رابط Gradio
48
  iface = gr.Interface(
49
  fn=generate_topics,
50
  inputs=[
 
54
  gr.Textbox(label="جامعه هدف"),
55
  gr.Dropdown(choices=["کارشناسی ارشد", "دکتری"], label="مقطع")
56
  ],
57
+ outputs=gr.HTML(label="موضوعات پیشنهادی"),
58
  title="🎓 پیشنهادگر موضوع پایان‌نامه کاسپین"
59
  )
60