Spaces:
Running
Running
File size: 2,367 Bytes
2543f2c 792f710 8c853ac d751a8f 2543f2c ae1598f 792f710 4f768b5 792f710 4f768b5 792f710 4f768b5 792f710 1c68ea4 4f768b5 d751a8f 2543f2c 792f710 2543f2c 792f710 b98b6c1 792f710 e63032a d751a8f ae1598f d751a8f ae1598f 2543f2c 1c68ea4 ae1598f 792f710 1c68ea4 4f768b5 2543f2c ae1598f 2543f2c 4f768b5 ae1598f 2543f2c d751a8f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
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"""<bos>[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 "<div dir='rtl' style='color: red;'>❌ مشکلی در تولید موضوعات رخ داد. لطفاً دوباره تلاش کنید.</div>"
translated_output = GoogleTranslator(source='en', target='fa').translate(english_output).strip()
translated_output_html = translated_output.replace("\n", "<br>")
html_output = (
"<div dir='rtl' style='text-align: right; font-family: Tahoma, sans-serif; "
"font-size: 16px; line-height: 1.8; min-height: 250px;'>"
f"{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="🎓 پیشنهادگر موضوع پایاننامه کاسپین",
theme="default"
)
iface.launch()
|