فصل ۱۷: استفاده از هوش مصنوعی در ربات تلگرام (مدلهای GPT و NLP)

۱. مقدمه
هوش مصنوعی میتونه ربات تو رو از یک ربات ساده به یک دستیار هوشمند و ارزشمند تبدیل کنه.
با اضافه کردن مدلهای NLP (Natural Language Processing) یا مدلهای GPT (مانند ChatGPT)، ربات قادر میشه:
- پاسخگویی مکالمهای طبیعی به زبان انسان
- ترجمه خودکار متن
- تحلیل و استخراج اطلاعات از جملات
- تولید متن، خلاصهسازی، یا جوابهای تخصصی
- تشخیص احساس یا موضوع پیامها
📌 مثال کاربردی:
- ربات پشتیبانی مشتری با پاسخهای هوشمند
- ربات مترجم زبانها
- ربات تولید محتوای خودکار
- تحلیلگر متن و اخبار
۲. انتخاب مدل مناسب
| مدل | توضیح | مزایا | محدودیت |
|---|---|---|---|
| OpenAI GPT (مثل GPT-4) | چت هوشمند، تولید متن، خلاصهسازی | دقت بالا، مکالمه طبیعی | نیاز به اینترنت و API Key |
| Transformers (Hugging Face Models) | مدلهای آماده متنباز | رایگان، اجرا روی سرور خودت | نیاز به منابع سختافزاری یا GPU |
| spaCy | NLP کلاسیک (تحلیل و پردازش متن) | سبک و سریع | تولید متن پیشرفته ندارد |
| Google Vertex AI / PaLM | سرویس هوش مصنوعی گوگل | اتصال مستقیم به سرویسهای Google | نیاز به سرویس پولی |
۳. پیشنیازها
- داشتن یک API Key از سرویس هوش مصنوعی مثل OpenAI
- نصب کتابخانهها
pip install python-telegram-bot openai
# یا برای مدلهای رایگان:
pip install transformers
۴. اضافه کردن GPT به ربات تلگرام (OpenAI API)
📌 نمونه کد کامل: ربات پرسش و پاسخ با ChatGPT
import openai
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters
TOKEN = "توکن_ربات"
OPENAI_API_KEY = "کلید_API_از_OpenAI"
openai.api_key = OPENAI_API_KEY
async def ask_gpt(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=300
)
return response.choices[0].message["content"]
async def chat(update, context):
user_text = update.message.text
reply = await ask_gpt(user_text)
await update.message.reply_text(reply)
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, chat))
app.run_polling()
📌 توضیح کد:
- ask_gpt → درخواست متن کاربر رو به مدل GPT میفرسته.
- جواب هوش مصنوعی رو برمیگردونه و داخل تلگرام ارسال میکنه.
- هر پیام کاربر به عنوان یک پرسش یا ادامه چت به GPT داده میشه.
۵. استفاده از مدلهای رایگان آفلاین با Transformers
اگر نمیخوای از سرویسهای پولی استفاده کنی:
from transformers import pipeline
from telegram.ext import ApplicationBuilder, MessageHandler, filters
TOKEN = "توکن_ربات"
generator = pipeline("text-generation", model="gpt2")
async def chat_ai(update, context):
user_text = update.message.text
result = generator(user_text, max_length=100, num_return_sequences=1)
await update.message.reply_text(result[0]['generated_text'])
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, chat_ai))
app.run_polling()
📌 مزیت: بدون نیاز به API Key
📌 محدودیت: مدلها بزرگ هستند و روی سرور ضعیف کند اجرا میشوند.
۶. پردازش متن (NLP) با spaCy
برای وظایف خاص مثل تشخیص زبان، استخراج اسم شخص یا مکان، و تحلیل متن:
pip install spacy
python -m spacy download en_core_web_sm
import spacy
from telegram.ext import ApplicationBuilder, MessageHandler, filters
TOKEN = "توکن_ربات"
nlp = spacy.load("en_core_web_sm")
async def analyze_text(update, context):
doc = nlp(update.message.text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
await update.message.reply_text(f"تشخیص موجودیتها: {entities}")
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, analyze_text))
app.run_polling()
📌 مثال: جمله
Elon Musk founded SpaceX in California.
نتیجه:
[('Elon Musk', 'PERSON'), ('SpaceX', 'ORG'), ('California', 'GPE')]
۷. استفاده ترکیبی هوش مصنوعی و سیستم عضویت
همانطور که در فصل ۱۵ یاد گرفتیم، میتوانیم بگوییم فقط کاربران VIP یا ادمینها امکان استفاده از هوش مصنوعی را دارند.
📌 نمونه:
def is_vip(user_id):
# بررسی دیتابیس یا لیست VIP
return True # مثال
async def vip_ai(update, context):
if not is_vip(update.message.chat_id):
await update.message.reply_text("❌ این قابلیت فقط برای VIP است.")
return
reply = await ask_gpt(update.message.text)
await update.message.reply_text(reply)
۸. نکات امنیتی و بهینهسازی
- تعداد درخواستها به API را محدود کن (Rate Limiting).
- لاگگیری پیامها برای تحلیل.
- کش کردن جوابهای پرتکرار برای کاهش هزینه.
- برای رباتهای بزرگ، از Queue و چند Thread استفاده کن.
۹. سوالات متداول
س: آیا استفاده از ChatGPT رایگان است؟
ج: مدل GPT رایگان نیست ولی نسخه محدود رایگان دارد. مدلهای HuggingFace رایگان هستند.
س: آیا میشود مکالمه چند مرحلهای داشت؟
ج: بله. باید تاریخچه چت کاربر را در یک لیست نگه داری و همه آنها را هر بار به مدل ارسال کنی.
۱۰. اشتباهات رایج
| اشتباه | توضیح |
|---|---|
| ارسال متن بدون مدیریت طول | ممکن است هزینه یا زمان پردازش بالا برود |
| عدم اعتبارسنجی ورودی | کاربر میتواند دادههای مخرب بفرستد |
| استفاده بیرویه از API | هزینه بالا یا بلاک شدن |
۱۱. نکات حرفهای
- ترکیب NLP با Job Queue برای ارسال تحلیل روزانه.
- استفاده از هوش مصنوعی برای پاسخگویی هوشمند به درخواستهای پرداخت یا عضویت.
- شخصیسازی مدلها با دادههای خود (Fine-tuning).
- ایجاد قابلیت مکالمه چندزبانه خودکار.