إنشاء بوتات تليجرام قوية باستخدام الذكاء الاصطناعي: دليل كامل

١٩ سبتمبر ٢٠٢٥

Building Powerful Telegram Bots with AI: A Complete Guide
# main.py
import os
import threading
import requests
from flask import Flask, request
from dotenv import load_dotenv
import openai

load_dotenv()

app = Flask(__name__)

TELEGRAM_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

openai.api_key = OPENAI_API_KEY

TELEGRAM_API_URL = f"https://API.telegram.org/bot{TELEGRAM_TOKEN}"

# Health check
@app.route("/")
def home():
    return "OK", 200

# Webhook setup
@app.route("/telegram", methods=["GET"])
def set_webhook():
    base_url = request.base_url.replace("http://", "https://")
    webhook_url = base_url  # Points to this endpoint
    response = requests.get(
        f"{TELEGRAM_API_URL}/setWebhook",
        params={"url": webhook_url}
    )
    return response.json()

# Telegram POST handler
@app.route("/telegram", methods=["POST"])
def handle_message():
    update = request.get_json()
    if "message" in update:
        chat_id = update["message"]["chat"]["id"]
        prompt = update["message"].get("text")
        if prompt:
            threading.Thread(target=process_prompt, args=(chat_id, prompt)).start()
    return "OK", 200

def process_prompt(chat_id, prompt):
    try:
        # Generate image with DALL·E 3
        result = openai.images.generate(
            model="dall-e-3",
            prompt=prompt,
            size="1024x1024"
        )
        image_url = result.data[0].url

        # Send image back to Telegram
        requests.post(f"{TELEGRAM_API_URL}/sendPhoto", data={
            "chat_id": chat_id,
            "photo": image_url
        })
    except Exception as e:
        requests.post(f"{TELEGRAM_API_URL}/sendMessage", data={
            "chat_id": chat_id,
            "text": f"Error: {e}"
        })

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

الخطوة 4: اختبار باستخدام Ngrok

قم بتشغيل تطبيق Flask محليًا:

python main.py

قم بنشره باستخدام ngrok:

ngrok http 8000

انسخ رابط HTTPS الذي يعطيك إياه ngrok وقم بزيارته:

https://<your-ngrok-url>/telegram

هذا يضبط ويبهوك الخاص بك. الآن أرسل رسالة إلى بوتك في Telegram — voilà، يجب أن تحصل على صورة مُولَّدة بواسطة الذكاء الاصطناعي.

الخطوة 5: النشر على Render

Render يجعل النشر سهلاً. قم بدفع كودك إلى GitHub، ثم:

  • أنشئ خدمة ويب جديدة على Render.
  • وجهه إلى مستودعك.
  • أضف متغيرات البيئة (مفاتيح API الخاصة بك).
  • حدد أمر البدء: gunicorn main:app --reload --bind 0.0.0.0:8000

بوتتك الآن نشطة على الإنترنت.


معالجة الطلبات المتوازية باستخدام الخيوط

لماذا الخيوط؟ لأن توليد الصور باستخدام DALL·E قد يستغرق ثوانٍ. يتوقع Telegram من البوتات الرد بسرعة على طلبات الويبهوك. إذا انتظر الخادم الصورة قبل الرد، قد يعيد Telegram المحاولة أو يُعتبر بوتك غير مستجيب.

  • معالج الويبهوك يعيد فورًا 200 OK.
  • تُعالج الخيط المُحفز بشكل غير متزامن.
  • يحصل مستخدمو Telegram على صورتهم عندما تكون جاهزة.

هذه الطريقة البسيطة للتوازي تعمل بشكل جيد للمشاريع الهواة. بالنسبة للبوتات على نطاق الإنتاج، ستحتاج إلى قائمة مهام (مثل Celery + Redis)، لكن الخيوط نقطة بداية جيدة.


الجزء 2: ربط مساعد OpenAI بـ Telegram دون كود

ربما لست مهتمًا بـ Python أو الخوادم. لا مشكلة — يمكنك ربط مساعدي OpenAI المدعومين بـ GPT بـ Telegram باستخدام منصات الأتمتة.

هكذا يعمل مع أداة مثل Active Basis:

الخطوة 1: إنشاء مساعدك

في منصة OpenAI، أنشئ مساعدًا (مثل GPT-4 أو GPT-4o). أعطه تعليمات مثل «أنت مساعد مفيد». اختبره في البيئة التجريبية للتأكد من عمله.

الخطوة 2: إعداد تدفق الأتمتة

  1. اذهب إلى Active Basis وأنشئ تدفق جديد.
  2. اختر Telegram → رسالة جديدة كمشغل.
  3. قم بتوصيل بوتك في Telegram (ستحتاج إلى رمز API من BotFather).

الخطوة 3: الاتصال بـ OpenAI

  1. أضف إجراء: OpenAI → اسأل المساعد.
  2. أنشئ اتصالًا بمفتاح OpenAI API الخاص بك.
  3. قم بربط نص رسالة Telegram الواردة بحقل "السؤال" الخاص بالمساعد.
  4. استخدم معرف الدردشة لمستخدم Telegram لتتبع ذاكرة المحادثة.

الخطوة 4: الرد في Telegram

  1. أضف إجراء آخر: Telegram → إرسال رسالة.
  2. قم بربط رد المساعد كرسالة صادرة.

الخطوة 5: اختبره

أرسل رسالة إلى بوتك في Telegram. خلال ثوانٍ، ستلاحظ رد المساعد.

ملاحظة إضافية: التفرع، التأخيرات، والتدفقات الغنية

غالبًا ما تدعم منصات الأتمتة منطقًا متقدمًا:

  • التفرعات: إذا سأل المستخدم عن X، ارد بشكل مختلف عن Y.
  • التأخيرات: جدولة الردود أو التذكيرات.
  • مساعدات البيانات: تحويل النصوص، تحليل الملفات، أو حتى قص الصور.

هذا يعني أنه يمكنك بناء بوتات دردشة قوية بشكل مدهش دون كتابة سطر واحد من Python.


تطوير بوتات Telegram: أفضل الممارسات

سواء اخترت طريقة البرمجة أو بدون كود، بعض المبادئ ستساعد بوتك على التألق:

  • أأمن رموزك: لا تشارك مفاتيح Telegram أو OpenAI علنًا.
  • تعامل دائمًا مع الأخطاء: يجب أن يتلقى المستخدمون رسالة ودية حتى إذا فشل استدعاء الذكاء الاصطناعي.
  • فكر في القابلية للتوسع: الخيوط مناسبة للعروض التوضيحية، لكن القوائم تعمل بشكل أفضل عند التوسع.
  • حافظ على الحالة بحذر: إذا احتاج بوتك إلى ذاكرة، ربطها بمعرفات المستخدمين.
  • اختبر محليًا ثم نشر: Ngrok صديقك للتصحيح.

الخاتمة

بوتات Telegram هي لوحة رائعة لبناء تجارب مدعومة بالذكاء الاصطناعي. باستخدام Python وFlask قليلًا، يمكنك إنشاء بوت فني للذكاء الاصطناعي يحول النص إلى صور. أو، إذا كنت تفضل تخطي إعداد الخادم، فإن أدوات بدون كود تسمح لك بتوصيل مساعد GPT بـ Telegram في دقائق.

مهما كانت الطريق التي تختارها، فالإمكانيات لا حدود لها — من مساعدي الإنتاجية الشخصية إلى البوتات التي تتفاعل مع المجتمع. أفضل طريقة للتعلم؟ ابني واحدًا بنفسك. ابدأ فكرة هذا الأسبوع، وستدهشك سرعة إحيائها.

إذا استمتعت بهذا الدليل، فكر في الاشتراك للبقاء على اطلاع على المزيد من الدروس العملية حول الذكاء الاصطناعي والأتمتة. قد يبدأ مشروعك الجانبي التالي برسالة Telegram.