Skip to content

Repository files navigation

ربات GapGPT Multi-Chat 🤖

ربات هوشمند تلگرام با قابلیت چند 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 وجود دارد.

🔧 نصب و راه‌اندازی

  1. کلون مخزن
git clone https://github.com/m-Researcher-Dev/gapgpt-multi-chat.git
cd gapgpt-multi-chat
  1. ایجاد محیط مجازی (اختیاری)
python -m venv venv
source venv/bin/activate   # Linux/Mac
venv\Scripts\activate      # Windows
  1. نصب وابستگی‌ها با uv (توصیه شده) یا pip
pip install balethon openai
  1. تنظیم فایل 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
  1. اجرای ربات
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 فعال حذف می‌شود.

محدودیت‌ها (قابل تنظیم در config)

  • حداکثر 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages