Spaces:
Runtime error
Runtime error
Kaveh commited on
Update README.md
Browse files
README.md
CHANGED
|
@@ -7,3 +7,92 @@ sdk: docker
|
|
| 7 |
app_port: 7860 # Port your app's health check server listens on
|
| 8 |
pinned: false
|
| 9 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
app_port: 7860 # Port your app's health check server listens on
|
| 8 |
pinned: false
|
| 9 |
---
|
| 10 |
+
# Telegram Chat Summarizer Bot
|
| 11 |
+
|
| 12 |
+
## توضیحات پروژه (Project Description)
|
| 13 |
+
|
| 14 |
+
این پروژه یک ربات تلگرامی است که به منظور خلاصهسازی گفتگوهای اخیر در گروههای تلگرامی طراحی شده است. ربات با دریافت دستوری خاص، پیامهای اخیر را جمعآوری کرده و خلاصهای از آنها را به شما ارائه میدهد. این ربات برای زبان فارسی بهینهسازی شده است.
|
| 15 |
+
|
| 16 |
+
## قابلیتها (Features)
|
| 17 |
+
|
| 18 |
+
* خلاصهسازی پیامهای اخیر در یک گروه تلگرامی.
|
| 19 |
+
* قابلیت تعیین تعداد پیامهای مورد نظر برای خلاصهسازی (مثلاً ۱۰۰ پیام آخر).
|
| 20 |
+
* قابلیت تعیین بازه زمانی برای جمعآوری پیامها (مثلاً پیامهای ۲۴ ساعت گذشته).
|
| 21 |
+
* پاسخ به دستور "خلاصه" در صورتی که ربات در گروه تگ شود.
|
| 22 |
+
* استفاده از مدلهای بهروز یادگیری ماشین برای خلاصهسازی به زبان فارسی.
|
| 23 |
+
|
| 24 |
+
## تکنولوژیهای استفاده شده (Technologies Used)
|
| 25 |
+
|
| 26 |
+
* **زبان برنامهنویسی:** پایتون نسخه ۳.۱۰ (Python 3.10)
|
| 27 |
+
* **کتابخانه اصلی ربات تلگرام:** [`python-telegram-bot`](https://python-telegram-bot.org/)
|
| 28 |
+
* **مدلهای زبانی و پردازش متن:**
|
| 29 |
+
* کتابخانه [`transformers`](https://huggingface.co/docs/transformers/index) از Hugging Face
|
| 30 |
+
* کتابخانه [`torch`](https://pytorch.org/) (PyTorch)
|
| 31 |
+
* کتابخانه [`nltk`](https://www.nltk.org/) (Natural Language Toolkit) برای توکنبندی جملات.
|
| 32 |
+
* **مدل خلاصهسازی پیشفرض:** [`nafisehNik/mt5-persian-summary`](https://huggingface.co/nafisehNik/mt5-persian-summary)
|
| 33 |
+
|
| 34 |
+
## راهاندازی و پیکربندی (Setup & Configuration)
|
| 35 |
+
|
| 36 |
+
### پیشنیازها
|
| 37 |
+
* پایتون نسخه ۳.۱۰ یا بالاتر.
|
| 38 |
+
* ابزار `pip` برای نصب وابستگیها.
|
| 39 |
+
|
| 40 |
+
### مراحل نصب
|
| 41 |
+
1. **کلون کردن ریپازیتوری:**
|
| 42 |
+
```bash
|
| 43 |
+
git clone <URL_ریپازیتوری_شما>
|
| 44 |
+
cd <نام_پوشه_پروژه>
|
| 45 |
+
```
|
| 46 |
+
|
| 47 |
+
2. **نصب وابستگیها:**
|
| 48 |
+
یک محیط مجازی پایتون ایجاد و فعال کنید (اختیاری اما بهشدت توصیه میشود):
|
| 49 |
+
```bash
|
| 50 |
+
python -m venv venv
|
| 51 |
+
source venv/bin/activate # در لینوکس و macOS
|
| 52 |
+
# venv\Scripts ctivate # در ویندوز
|
| 53 |
+
```
|
| 54 |
+
سپس وابستگیها را نصب کنید:
|
| 55 |
+
```bash
|
| 56 |
+
pip install -r requirements.txt
|
| 57 |
+
```
|
| 58 |
+
|
| 59 |
+
3. **تنظیم توکن ربات تلگرام:**
|
| 60 |
+
ربات برای اتصال به API تلگرام نیاز به یک توکن دارد. این توکن را از BotFather در تلگرام دریافت کنید.
|
| 61 |
+
سپس، توکن را به عنوان یک متغیر محیطی (Environment Variable) با نام `BOT_TOKEN` تنظیم کنید.
|
| 62 |
+
```bash
|
| 63 |
+
export BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN"
|
| 64 |
+
```
|
| 65 |
+
یا میتوانید آن را مستقیماً در فایل `app.py` قرار دهید (که البته از نظر امنیتی توصیه نمیشود).
|
| 66 |
+
|
| 67 |
+
## اجرای ربات
|
| 68 |
+
|
| 69 |
+
### اجرای محلی (Running Locally)
|
| 70 |
+
پس از نصب وابستگیها و تنظیم توکن، میتوانید ربات را به صورت محلی اجرا کنید:
|
| 71 |
+
```bash
|
| 72 |
+
python app.py
|
| 73 |
+
```
|
| 74 |
+
لاگهای مربوط به بارگذاری مدل و شروع به کار ربات در ترمینال نمایش داده خواهند شد.
|
| 75 |
+
|
| 76 |
+
اجرای با Docker (Docker Deployment)
|
| 77 |
+
این پروژه شامل یک Dockerfile است که امکان کانتینری کردن برنامه و اجرای آن در محیطهایی مانند Hugging Face Spaces را فراهم میکند.
|
| 78 |
+
|
| 79 |
+
ساخت ایمیج داکر:
|
| 80 |
+
docker build -t telegram-summarizer-bot .
|
| 81 |
+
اجرای کانتینر داکر:
|
| 82 |
+
docker run -e BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN" telegram-summarizer-bot
|
| 83 |
+
تنظیمات کش در Dockerfile: Dockerfile به گونهای تنظیم شده است که پوشههای کش برای مدلهای Hugging Face و دادههای NLTK را در مسیرهای مناسب داخل کانتینر ایجاد و تنظیم کند:
|
| 84 |
+
|
| 85 |
+
ENV TRANSFORMERS_CACHE=/tmp/hf_cache
|
| 86 |
+
ENV HF_HOME=/tmp/hf_cache
|
| 87 |
+
ENV NLTK_DATA=/app/nltk_data این تنظیمات برای سازگاری بهتر با پلتفرمهایی مانند Hugging Face Spaces انجام شده است.
|
| 88 |
+
نحوه استفاده (Usage)
|
| 89 |
+
ربات را به گروه تلگرامی مورد نظر خود اضافه کنید.
|
| 90 |
+
برای درخواست خلاصه، پیامی حاوی کلمه "خلاصه" ا��سال کنید و ربات را در آن پیام تگ (mention) کنید. مثالها:
|
| 91 |
+
@نام_کاربری_ربات خلاصه (خلاصهسازی با تنظیمات پیشفرض، معمولاً حدود ۵۰ پیام آخر)
|
| 92 |
+
@نام_کاربری_ربات خلاصه ۱۰۰ پیام (خلاصهسازی ۱۰۰ پیام آخر)
|
| 93 |
+
@نام_کاربری_ربات خلاصه در ۲ ساعت اخیر (خلاصهسازی پیامهای ۲ ساعت گذشته)
|
| 94 |
+
@نام_کاربری_ربات خلاصه ۱۰۰ پیام در ۳ ساعت اخیر
|
| 95 |
+
ربات پیامهای مشخص شده را جمعآوری کرده و خلاصهای از آنها را در گروه ارسال میکند.
|
| 96 |
+
|
| 97 |
+
مدل خلاصهسازی (Summarization Model)
|
| 98 |
+
مدل پیشفرض استفاده شده برای خلاصهسازی nafisehNik/mt5-persian-summary است. در صورت تمایل، میتوانید این مدل را با ویرایش متغیر MODEL_NAME در فایل app.py تغییر دهید. مطمئن شوید مدلی که انتخاب میکنید با AutoModelForSeq2SeqLM از کتابخانه transformers سازگار باشد.
|