Spaces:
Running
Running
File size: 2,355 Bytes
2543f2c 792f710 8c853ac d751a8f 2543f2c 792f710 4f768b5 792f710 4f768b5 792f710 4f768b5 792f710 1c68ea4 4f768b5 d751a8f 2543f2c 792f710 2543f2c 792f710 b98b6c1 792f710 e63032a 792f710 e63032a d751a8f 792f710 8c853ac 1c68ea4 2543f2c 792f710 1c68ea4 792f710 1c68ea4 4f768b5 2543f2c 792f710 2543f2c 4f768b5 b98b6c1 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 |
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)
# ترجمه خروجی به فارسی
translated_output = GoogleTranslator(source='en', target='fa').translate(english_output)
translated_output_html = translated_output.strip().replace("\n", "<br>")
# ساخت خروجی HTML راستچین برای Gradio
html_output = (
"<div dir='rtl' style='text-align: right; font-family: Tahoma, sans-serif; font-size: 16px; line-height: 1.8;'>"
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="🎓 پیشنهادگر موضوع پایاننامه کاسپین"
)
iface.launch()
|