Spaces:
Runtime error
Runtime error
| from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig | |
| import torch | |
| import gradio as gr | |
| # ✅ استفاده از نسخه موجود و عمومی PersianMind | |
| model_name = "universitytehran/PersianMind-v1.0" | |
| # بارگذاری tokenizer | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| # بررسی وجود GPU و فعالسازی quantization در صورت امکان | |
| if torch.cuda.is_available(): | |
| quant_config = BitsAndBytesConfig(load_in_8bit=True) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_name, | |
| quantization_config=quant_config, | |
| device_map="auto" | |
| ) | |
| else: | |
| model = AutoModelForCausalLM.from_pretrained(model_name) | |
| # تابع استخراج کلمات کلیدی با پرامپت | |
| def extract_keywords(text): | |
| prompt = f"""متن زیر را بخوان و فقط کلمات کلیدی مهم آن را با کاما جدا کن:\nمتن: {text}\nکلمات کلیدی:""" | |
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device) | |
| output = model.generate( | |
| **inputs, | |
| max_new_tokens=50, | |
| do_sample=False, | |
| repetition_penalty=1.2 | |
| ) | |
| keywords = tokenizer.decode(output[0], skip_special_tokens=True) | |
| if "کلمات کلیدی:" in keywords: | |
| keywords = keywords.split("کلمات کلیدی:")[-1].strip() | |
| return keywords if keywords else "کلمه کلیدیای پیدا نشد." | |
| # رابط کاربری Gradio | |
| interface = gr.Interface( | |
| fn=extract_keywords, | |
| inputs=gr.Textbox(label="متن خود را وارد کنید", placeholder="مثلاً: هوش مصنوعی آینده تکنولوژی را تغییر میدهد."), | |
| outputs=gr.Textbox(label="کلمات کلیدی"), | |
| title="استخراج کلمات کلیدی با PersianMind", | |
| description="این برنامه با استفاده از مدل PersianMind-v1.0 کلمات کلیدی متن فارسی را استخراج میکند." | |
| ) | |
| interface.launch() | |