ربات هوشمند تلگرام با قابلیت چند Thread مکالمهای، استفاده از مدلهای AI GapGPT، پنل مدیریت کامل و مدیریت پیشرفته کاربران.
- چند Thread همزمان – هر کاربر میتواند تا ۵ Thread مجزا داشته باشد و بین آنها جابهجا شود.
- حافظه جداگانه برای هر Thread – هر گفتوگو تاریخچه و آمار مخصوص خود را دارد.
- مدیریت سهمیه رایگان – ۱۰ پیام رایگان به ازای هر کاربر (قابل تنظیم در
config.py). - پنل ادمین قدرتمند:
- آمار کلی (کاربران، Threadها، پیامها، توکنها، حجم DB)
- لیست کاربران و Threadهای فعال
- ارسال Broadcast به همه کاربران
- بن/آنبن کاربران
- دکمههای شیشهای و کیبورد شناور برای تعامل آسان.
- پایگاه داده SQLite با قابلیت WAL، کلید خارجی و مدیریت تراکنش (فایل
flexible_db.py). - Cache برای State کاربر جهت کاهش رفت و برگشت به DB.
- مدیریت خطا و Logging حرفهای.
- Python 3.11+
- کتابخانههای زیر (در
pyproject.toml):
balethon>=1.1.0
openai>=2.30.0
توجه:
sqlite3به صورت پیشفرض در Python وجود دارد.
- کلون مخزن
git clone https://github.com/m-Researcher-Dev/gapgpt-multi-chat.git
cd gapgpt-multi-chat- ایجاد محیط مجازی (اختیاری)
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows- نصب وابستگیها با uv (توصیه شده) یا pip
pip install balethon openai- تنظیم فایل
config.py
BOT_TOKEN = "توکن ربات تلگرام خود را وارد کنید"
ADMINS = ["1065665451"] # آیدی عددی ادمینها (لیست)
GAPGPT_API_KEY = "کلید API سرویس GapGPT"
DEFAULT_MODEL = "gemma-3-27b-it" # یا مدل دلخواه
FREE_MESSAGE_LIMIT = 10
MAX_THREADS_PER_USER = 5- اجرای ربات
python main.py| فایل | شرح |
|---|---|
main.py |
نقطه ورود، راهاندازی ربات و ثبت handlerها |
config.py |
تنظیمات اصلی (توکن، ادمینها، API Key، محدودیتها) |
gap_ai.py |
کلاس اصلی مدیریت AI، ارتباط با GapGPT، ایجاد Thread، چت، ذخیره پیامها |
state_manager.py |
مدیریت وضعیت کاربران (Thread جاری، لیست Threadها، کش) |
user_handlers.py |
هندلرهای کاربر عادی (شروع، چت، Threadها، راهنما) |
admin_handlers.py |
پنل ادمین (آمار، broadcast، بن، مدیریت کاربران) |
flexible_db.py |
کلاس پایگاه داده پیشرفته با پشتیبانی از تراکنش، JSON، بکآپ و ... |
/start– ثبت نام و ایجاد Thread پیشفرض- کیبورد شناور:
- 📝 شروع چت – فعالسازی حالت گفتوگو در Thread جاری
- 📋 Threadها – نمایش لیست Threadها و امکان جابهجایی
- ➕ Thread جدید – ساخت Thread جدید
- ℹ️ راهنما – نمایش راهنما
- پس از ساخت Thread جدید، به طور خودکار به آن سوئیچ میشود.
- هر Thread دارای عنوان، تعداد پیام و تعداد توکن مصرفی است.
- با کلیک روی دکمه 🗑️ پاک کردن این Thread در پاسخ هر پیام، Thread فعال حذف میشود.
- حداکثر Thread برای هر کاربر: ۵
- پیامهای رایگان: ۱۰ (پس از اتمام، پیام خطا نمایش داده میشود)
دستور /admin فقط برای ادمینهای تعریف شده در ADMINS قابل دسترسی است.
بخشهای پنل:
| دکمه | توضیح |
|---|---|
| 📊 آمار کلی | نمایش تعداد کاربران، Threadها، پیامها، توکن مصرفی، حجم DB |
| 👥 کاربران | لیست ۱۰ کاربر فعال روز جاری |
| 💬 Threadها | لیست Threadهای فعال روز جاری |
| 📢 Broadcast | ارسال پیام به تمام کاربران (حداکثر ۱۰۰۰ نفر با ریتلیمیت) |
| 🚫 Ban List | مشاهده، افزودن و حذف کاربران بن شده |
| ⚙️ تنظیمات | (قابل گسترش) |
دستورات مستقیم ادمین:
/ban [user_id] [دلیل]/unban [user_id]/broadcast [متن]
- فایل دیتابیس:
gapgpt_multi.db(به طور خودکار توسطgap_ai.pyایجاد میشود) - جداول اصلی:
users– اطلاعات کاربرانchat_threads– اطلاعات Threadهاchat_messages– تاریخچه پیامهاuser_states– وضعیت جاری کاربران (Thread جاری و لیست Threadها)
- جدول ادمین:
banned_users(در فایلadmin_panel.dbمستقل)
همه عملیات DB از طریق کلاس FlexibleDB انجام میشود که از WAL mode، کلید خارجی، تراکنش و بکآپ پشتیبانی میکند.
- تغییر مدل AI: در
config.pyمقدارDEFAULT_MODELرا عوض کنید. - افزودن محدودیت خاص برای کاربران ویژه: میتوانید فیلد
planرا درuser_statesتکمیل کرده و درstate_manager.pyشرط جدید اضافه کنید. - تغییر پیام خوشآمدگویی: در
config.USER_START_MESSAGEویرایش کنید. - اتصال به API دیگر: کلاس
GapAIChatMultiدرgap_ai.pyرا تغییر دهید (تنها کافی است endpoint و کلید API را عوض کنید).
این پروژه تحت مجوز MIT منتشر شده است. استفاده آزاد، به شرط ذکر نویسنده اصلی.
توسعه داده شده توسط m-Researcher-Dev
برای مشکلات و پیشنهادات: ایجاد Issue