بناء AI Whatsapp Bots مع Python النقي
سوف يسير هذا الدليل خلال عملية إنشاء Bot WhatsApp باستخدام واجهة برمجة تطبيقات Meta (سابقًا Facebook) مع Python Pure ، وقارورة خاصة. سنقوم أيضًا بدمج أحداث WebHook لتلقي الرسائل في الوقت الفعلي واستخدام Openai لإنشاء ردود الذكاء الاصطناعي. لمزيد من المعلومات حول هيكل تطبيق Flask ، يمكنك الرجوع إلى هذا الوثائق.
المتطلبات الأساسية
- حساب مطور META - إذا لم يكن لديك حساب ، فيمكنك إنشاء حساب Meta Developer هنا.
- تطبيق أعمال - إذا لم يكن لديك واحد ، فيمكنك تعلم إنشاء تطبيق أعمال هنا. إذا كنت لا ترى خيارًا لإنشاء تطبيق عمل ، فحدد آخر > Next > Business .
- الألفة مع بيثون لمتابعة البرنامج التعليمي.
جدول المحتويات
- بناء AI Whatsapp Bots مع Python النقي
- المتطلبات الأساسية
- جدول المحتويات
- ابدأ
- الخطوة 1: حدد أرقام الهواتف
- الخطوة 2: إرسال الرسائل باستخدام واجهة برمجة التطبيقات
- الخطوة 3: تكوين WebHooks لتلقي الرسائل
- ابدأ تطبيقك
- إطلاق Ngrok
- دمج WhatsApp
- اختبار التكامل
- الخطوة 4: فهم أمان webhook
- طلبات التحقق
- التحقق من صحة طلبات التحقق
- التحقق من صحة الحمولة
- الخطوة 5: تعرف على واجهة برمجة التطبيقات وإنشاء تطبيقك
- الخطوة 6: دمج الذكاء الاصطناعي في التطبيق
- الخطوة 7: إضافة رقم هاتف
- Datalumina
- دروس
ابدأ
- نظرة عامة وإعداد : ابدأ رحلتك هنا.
- حدد موقع الروبوتات الخاصة بك : يمكن العثور على روبوتاتك هنا.
- وثائق واجهة برمجة تطبيقات WhatsApp : تعرف على الوثائق الرسمية.
- دليل مفيد : إليك دليل قائم على Python لإرسال الرسائل.
- مستندات API لإرسال الرسائل : تحقق من هذه الوثائق.
الخطوة 1: حدد أرقام الهواتف
- تأكد من إضافة WhatsApp إلى تطبيقك.
- تبدأ برقم اختبار يمكنك استخدامه لإرسال الرسائل إلى ما يصل إلى 5 أرقام.
- انتقل إلى إعداد API وتحديد رقم الاختبار الذي سترسل منه الرسائل.
- هنا ، يمكنك أيضًا إضافة أرقام لإرسال الرسائل إليها. أدخل رقم WhatsApp الخاص بك.
- ستتلقى رمزًا على هاتفك عبر WhatsApp للتحقق من رقمك.
الخطوة 2: إرسال الرسائل باستخدام واجهة برمجة التطبيقات
- الحصول على رمز الوصول على مدار 24 ساعة من قسم وصول API.
- سيظهر مثالاً على كيفية إرسال الرسائل باستخدام أمر
curl يمكن إرساله من المحطة أو مع أداة مثل Postman. - دعنا نحول ذلك إلى وظيفة Python مع مكتبة الطلب.
- قم بإنشاء ملفات
.env استنادًا إلى example.env وتحديث المتغيرات المطلوبة. مثال الفيديو هنا. - ستتلقى رسالة "Hello World" (توقع تأخير 60-120 ثانية للرسالة).
إنشاء وصول يعمل لفترة أطول ثم 24 ساعة
- قم بإنشاء مستخدم نظام على مستوى حساب Meta Business.
- في صفحة مستخدمي النظام ، قم بتكوين الأصول لمستخدم النظام الخاص بك ، وتعيين تطبيق WhatsApp الخاص بك مع عنصر تحكم كامل. لا تنسى النقر فوق الزر "حفظ التغييرات".
- انظر الخطوة 1 هنا
- انظر الخطوة 2 هنا
- الآن انقر فوق
Generate new token وحدد التطبيق ، ثم اختر المدة التي يتمتع بها رمز الوصول سيكون صالحًا. يمكنك اختيار 60 يومًا أو لا تنتهي أبدًا. - حدد جميع الأذونات ، حيث كنت أتعامل مع الأخطاء عندما اخترت فقط WhatsApp.
- تأكيد ونسخ رمز الوصول.
الآن علينا أن نجد المعلومات التالية على لوحة معلومات التطبيق :
- app_id : "<your-whatsapp-business-app_id>" (وجدت في لوحة معلومات التطبيق)
- app_secret : "<your-whatsapp-business-app_secret>" (وجدت في لوحة معلومات التطبيق)
- recient_waid : "" (هذا هو معرف WhatsApp الخاص بك ، أي رقم الهاتف. تأكد من إضافته إلى الحساب كما هو موضح في رسالة اختبار المثال.)
- الإصدار : "V18.0" (أحدث إصدار من Meta Graph API)
- Access_Token : "" (تم إنشاؤه في الخطوة السابقة)
يمكنك فقط إرسال رسالة نوع القالب كرسالة أولى إلى مستخدم. لهذا السبب عليك إرسال رد أولاً قبل المتابعة. استغرق مني ساعتين لمعرفة هذا.
الخطوة 3: تكوين WebHooks لتلقي الرسائل
يرجى ملاحظة أن هذا هو الجزء الأصعب من هذا البرنامج التعليمي.
ابدأ تطبيقك
- اجعلك لديك تثبيت أو بيئة Python وتثبيت المتطلبات:
pip install -r requirements.txt - قم بتشغيل تطبيق Flask محليًا عن طريق تنفيذ Run.py
إطلاق Ngrok
الخطوات أدناه مأخوذة من وثائق NGROK.
تحتاج إلى مجال NGROK ثابت لأن META يتحقق من مجال NGROK وشهادة!
بمجرد أن يعمل تطبيقك بنجاح على مضيف LocalHost ، دعنا نحصل عليه على الإنترنت بشكل آمن باستخدام Ngrok!
- إذا لم تكن مستخدمًا لـ NGROK حتى الآن ، فما عليك سوى التسجيل للحصول على NGROK مجانًا.
- قم بتنزيل وكيل Ngrok.
- انتقل إلى لوحة معلومات NGROK ، انقر فوق AuthToken ، ونسخ AuthToken.
- اتبع التعليمات لمصادقة وكيل NGROK الخاص بك. عليك فقط القيام بذلك مرة واحدة.
- في القائمة اليسرى ، قم بتوسيع حافة السحابة ثم انقر فوق المجالات.
- في صفحة المجالات ، انقر فوق + إنشاء مجال أو مجال جديد. (هنا يمكن للجميع البدء بمجال مجاني واحد)
- ابدأ Ngrok عن طريق تشغيل الأمر التالي في محطة على سطح المكتب المحلي:
ngrok http 8000 --domain your-domain.ngrok-free.app
- ستعرض NGROK عنوان URL حيث يتعرض تطبيق LocalHost الخاص بك للإنترنت (انسخ عنوان URL هذا للاستخدام مع META).
دمج WhatsApp
في لوحة معلومات تطبيق META ، انتقل إلى WhatsApp> التكوين ، ثم انقر فوق الزر "تحرير".
- في عنوان URL للاتصال الخاص بـ WebHook ، أدخل عنوان URL الذي قدمه وكيل NGROK لفضح تطبيقك للإنترنت في حقل عنوان URL للاتصال ، مع/webhook في النهاية (أي https://myexample.ngrok-pree.app/webhook ).
- أدخل رمز التحقق. يتم إعداد هذه السلسلة بواسطتك عند إنشاء نقطة نهاية الويب الخاصة بك. يمكنك اختيار أي سلسلة تريدها. تأكد من تحديث هذا في متغير بيئة
VERIFY_TOKEN . - بعد إضافة Webhook إلى WhatsApp ، سيقوم WhatsApp بإرسال طلب نشر التحقق من صحة طلبك من خلال NGROK. تأكد من استلام تطبيق LocalHost الخاص بك على طلب التحقق من الصحة ويسجل
WEBHOOK_VERIFIED في المحطة. - العودة إلى صفحة التكوين ، انقر فوق إدارة.
- في WebHook Fields المنبثقة ، انقر فوق اشتراك في حقل الرسائل . نصيحة: يمكنك الاشتراك في حقول متعددة.
- إذا كان تطبيق Flask و Ngrok يعملان ، فيمكنك النقر فوق "اختبار" بجوار الرسائل لاختبار الاشتراك. يمكنك استلام رسالة اختبار في الحالة العليا. إذا كان هذا هو الحال ، فسيتم إعداد webhook بشكل صحيح.
اختبار التكامل
استخدم رقم الهاتف المرتبط بمنتج WhatsApp الخاص بك أو استخدم رقم الاختبار الذي نسخته من قبل.
- أضف هذا الرقم إلى جهات اتصال تطبيق WhatsApp ثم أرسل رسالة إلى هذا الرقم.
- تأكد من أن تطبيق المضيف المحلي يتلقى رسالة ويسجل كل من الرؤوس والجسم في المحطة.
- اختبر ما إذا كان الروبوت يرد عليك في الحالة العليا.
- لقد قمت الآن بدمج الروبوت! ؟
- حان الوقت الآن لبناء أشياء رائعة مع هذا.
الخطوة 4: فهم أمان webhook
فيما يلي بعض المعلومات من مستندات Meta Webhooks API حول التحقق والأمان. تم تنفيذها بالفعل في الكود ، ولكن يمكنك الرجوع إليه للحصول على فهم أفضل لما يجري في الأمان.
طلبات التحقق
مصدر
في أي وقت تقوم فيه بتكوين منتج WebHooks في لوحة معلومات التطبيق الخاصة بك ، سنرسل طلب الحصول على عنوان URL الخاص بك. تتضمن طلبات التحقق معلمات سلسلة الاستعلام التالية ، والتي تم إلحاقها بنهاية عنوان URL لنقطة النهاية. سيبدوون شيئًا كهذا:
GET https://www.your-clever-domain-name.com/webhook?
hub.mode=subscribe&
hub.challenge=1158201444&
hub.verify_token=meatyhamhock
يعد Verify_Token ، meatyhamhock في حالة هذا المثال ، سلسلة يمكنك اختيارها. لا يهم ما هو طالما تقوم بتخزينه في متغير بيئة VERIFY_TOKEN .
التحقق من صحة طلبات التحقق
مصدر
عندما تتلقى نقطة النهاية طلب التحقق ، يجب:
- تحقق من أن قيمة hub.verify_token تتطابق مع السلسلة التي تقوم بتعيينها في حقل التحقق من الرمز المميز عند تكوين منتج WebHooks في لوحة معلومات التطبيق الخاصة بك (لم تقم بإعداد هذه السلسلة الرمزية حتى الآن).
- الرد مع Hub.Challenge قيمة.
التحقق من صحة الحمولة
مصدر
يوقع WhatsApp جميع حمولات إشعار الأحداث مع توقيع SHA256 ويتضمن توقيعًا في رأس Support X-Hub-Signature-256 ، مسبقًا بـ SHA256 =. ليس عليك التحقق من صحة الحمولة ، ولكن يجب عليك ذلك.
للتحقق من صحة الحمولة:
- قم بإنشاء توقيع SHA256 باستخدام حمولة الحمولة وسر التطبيق الخاص بك.
- قارن توقيعك بالتوقيع في رأس X-Hub-Signature-256 (كل شيء بعد SHA256 =). إذا تطابق التوقيعات ، فإن الحمولة حقيقية.
الخطوة 5: تعرف على واجهة برمجة التطبيقات وإنشاء تطبيقك
راجع وثائق المطور لمعرفة كيفية إنشاء تطبيقك والبدء في إرسال الرسائل. انظر الوثائق.
الخطوة 6: دمج الذكاء الاصطناعي في التطبيق
الآن وبعد أن أصبح لدينا اتصال نهائي ، يمكننا أن نجعل الروبوت أكثر ذكاءً ، ثم الصراخ علينا في الحالة العليا. كل ما عليك فعله هو الخروج بوظيفة generate_response() في whatsapp_utils.py.
إذا كنت تريد مثال قطع ملفات تعريف الارتباط لدمج واجهة برمجة تطبيقات Openai Assistans مع أداة استرجاع ، فابع هذه الخطوات.
- شاهد هذا الفيديو: تعليمي مساعدين Openai
- قم بإنشاء مساعد خاص بك مع Openai وقم بتحديث
OPENAI_API_KEY و OPENAI_ASSISTANT_ID في متغيرات البيئة. - زودك بالبيانات والتعليمات
- تحديث openai_service.py إلى حالة الاستخدام الخاصة بك.
- استيراد
generate_reponse في whatsapp_utils.py - تحديث
process_whatsapp_message() مع دالة generate_reponse() الجديدة.
الخطوة 7: إضافة رقم هاتف
عندما تكون مستعدًا لاستخدام تطبيقك لحالة استخدام الإنتاج ، تحتاج إلى استخدام رقم هاتفك لإرسال رسائل إلى المستخدمين.
لبدء إرسال الرسائل إلى أي رقم WhatsApp ، أضف رقم هاتف. لإدارة معلومات حسابك ورقم هاتفك ، راجع صفحة النظرة العامة. ومستندات WhatsApp.
إذا كنت ترغب في استخدام رقم يتم استخدامه بالفعل في تطبيق WhatsApp أو تطبيق العمل ، فسيتعين عليك ترحيل هذا الرقم بالكامل إلى منصة العمل. بمجرد ترحيل الرقم ، ستفقد الوصول إلى عميل WhatsApp أو تطبيق الأعمال. راجع ترحيل رقم WhatsApp الحالي إلى حساب تجاري للحصول على معلومات.
بمجرد اختيار رقم هاتفك ، يجب عليك إضافته إلى حساب WhatsApp الخاص بك. انظر إضافة رقم هاتف.
عند التعامل مع WhatsApp Business API والرغبة في التجربة دون التأثير على رقمك الشخصي ، لديك بعض الخيارات:
- شراء بطاقة SIM جديدة
- أرقام الهواتف الافتراضية
- هواتف SIM مزدوجة
- استخدم جهازًا مختلفًا
- خدمات الأرقام المؤقتة
- أجهزة مخصصة للتنمية
التوصية : إذا كان هذا لغرض أكثر طولاً أو مهنياً ، فإن استخدام خدمة رقم هاتف افتراضية أو شراء بطاقة SIM جديدة لجهاز مخصص يُنصح به. بالنسبة للاختبارات السريعة ، قد يكون عدد مؤقت كافياً ، ولكن دائمًا ما يكون حذرًا بشأن الأمن والخصوصية. تذكر أنه بمجرد أن يرتبط الرقم مع واجهة برمجة تطبيقات WhatsApp Business ، لا يمكن استخدامه مع WhatsApp العادية على جهاز ما لم تقم بإلغاء تنشيطه من واجهة برمجة تطبيقات الأعمال وتقديره على الجهاز.
Datalumina
يتم توفير هذا المستند لك من قبل Datalumina. نحن نساعد محللي البيانات والمهندسين والعلماء على إطلاق وتوسيع نطاق أعمال مستقلة ناجحة - 100 ألف دولار+ عام ، مشاريع ممتعة ، عملاء سعداء. إذا كنت ترغب في معرفة المزيد حول ما نقوم به ، فيمكنك زيارة موقعنا على الويب والاشتراك في النشرة الإخبارية الخاصة بنا. لا تتردد في مشاركة هذا المستند مع أصدقاء البيانات وزملائك.
دروس
للحصول على دروس بالفيديو ، تفضل بزيارة قناة YouTube: youtube.com/@daveebbelaar.