Spaces:
Sleeping
Sleeping
File size: 2,918 Bytes
2543f2c f35dc2e 8c853ac 2543f2c 2aca398 44fe883 4f768b5 2aca398 2543f2c f35dc2e 1c68ea4 2543f2c f35dc2e fbbc373 f35dc2e 2aca398 f35dc2e 2aca398 f35dc2e 2aca398 f35dc2e fbbc373 2543f2c f35dc2e 2543f2c 2aca398 fbbc373 2aca398 fbbc373 2aca398 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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import gradio as gr
import os
from openai import OpenAI
from deep_translator import GoogleTranslator
# دریافت کلید از محیط (در Hugging Face از Secrets استفاده کن)
client = OpenAI(api_key=os.environ["OPENAI"]) # ✅ درست شد
# تابع اصلی پیشنهاد موضوع پایاننامه
def generate_topics(field, major, keywords, audience, level):
prompt = (
f"Suggest 3 academic thesis topics based on the following:\n"
f"Field: {field}\n"
f"Specialization: {major}\n"
f"Keywords: {keywords}\n"
f"Target Audience: {audience}\n"
f"Level: {level}"
)
try:
completion = client.chat.completions.create(
model="gpt-3.5-turbo", # ✅ مدل معتبر و قابل استفاده عمومی
messages=[
{"role": "system", "content": "You are an academic advisor assistant."},
{"role": "user", "content": prompt}
]
)
english_output = completion.choices[0].message.content.strip()
translated_output = GoogleTranslator(source='en', target='fa').translate(english_output)
translated_output_html = translated_output.replace("\n", "<br>")
html_output = (
"<div>"
f"{translated_output_html}"
"<br><br>📢 برای مشاوره و راهنمایی تخصصی با گروه مشاوره کاسپین تماس بگیرید:<br>"
"<strong>021-88252497</strong>"
"</div>"
)
return html_output
except Exception as e:
return f"<div style='color: red;'>❌ خطا در تماس با OpenAI API: {e}</div>"
# رابط کاربری Gradio با ظاهر اصلاحشده برای نمایش درست خروجی
iface = gr.Interface(
fn=generate_topics,
inputs=[
gr.Textbox(label="رشته"),
gr.Textbox(label="گرایش"),
gr.Textbox(label="کلیدواژهها"),
gr.Textbox(label="جامعه هدف"),
gr.Dropdown(["کارشناسی ارشد", "دکتری"], label="مقطع")
],
outputs=gr.HTML(
label="موضوعات پیشنهادی",
elem_id="output_box"
),
title="🎓 پیشنهادگر موضوع پایاننامه کاسپین",
theme="default",
css="""
#output_box {
min-height: 350px !important;
max-height: 600px !important;
overflow-y: auto !important;
background-color: #1e1e1e !important; /* پسزمینه تیره */
color: white !important; /* متن سفید */
padding: 20px;
border: 2px solid #ccc;
font-family: 'Tahoma', sans-serif;
font-size: 16px;
text-align: right;
direction: rtl;
line-height: 1.8;
}
"""
)
iface.launch()
|