إن تطوير روبوت محادثة واتساب مُتقن (فهم مختلف العبارات والأخطاء الإملائية والغرض) لا يعني بالضرورة أن تكون مُقيدًا بصندوق أسود خاص. فمع برمجيات معالجة اللغة الطبيعية (NLP) مفتوحة المصدر والمتطورة، يمكنك بناء روبوت واتساب تتمتع بالتحكم الكامل فيه - بما في ذلك البيانات والمنطق والتكاليف - مع الاستمرار في تقديم تجربة مُحسّنة تُشبه تجربة المستخدم. يُرشدك هذا الدليل عبر هياكل مرجعية وخيارات مفتوحة المصدر عملية وثلاثة أمثلة شاملة يمكنك استخدامها في إصدارك الأول.
لماذا نجعل WhatsApp NLP مفتوح المصدر؟
- تحكم في البيانات والخصوصية. احتفظ ببيانات التدريب وسجلاته ونماذجه في مستودعك/سحابتك الخاصة.
- قابلة للتكوين: تبديل وحدات التجزئة، أو مصنفات النية، أو طبقات الاسترجاع، أو مديري الحوار دون الحاجة إلى إعادة كتابة كل شيء.
- الشفافية في التكلفة: ادفع مقابل الاستضافة/الحوسبة، وليس مقابل رسوم الرسائل من الإضافات "الذكية".
- سرعة المجتمع: تتطور Rasa وHaystack وspaCy وLangChain بسرعة وتوفر أنماطًا مثبتة يمكنك التكيف معها.
بوت معالجة اللغة الطبيعية على واتساب: البنية التحتية البسيطة (وأين يناسب المصدر المفتوح)
- النقل (منصة واتساب للأعمال):
- استخدم منصة WhatsApp Business من Meta (واجهة برمجة التطبيقات السحابية) كقناة رسمية. فهي تُرسِل الرسائل إلى خطاف الويب الخاص بك وتتيح لك إرسال الردود.
- ستستضيف جهاز استقبال ويب هوك (FastAPI/Express) للتحقق من التوقيعات، وتحليل JSON الوارد، وإعادة توجيه حدث طبيعي إلى وقت تشغيل الروبوت الخاص بك.
- وقت تشغيل الروبوت (مفتوح المصدر):
- إدارة التعلم اللغوي والحوار:
- Rasa (من البداية إلى النهاية: أداة التجزئة، استخراج النية/الكيان، السياسات، النماذج، القصص)
- Botpress مفتوح المصدر (التدفقات المرئية + NLU)
- LangChain/LangGraph (تنسيق موجه نحو LLM إذا كنت تخطط لاستخدام نماذج توليدية)
- الاسترجاع والمعرفة:
- Haystack أو LangChain + قاعدة بيانات متجهة (FAISS أو Chroma) لـ RAG (التوليد المعزز بالاسترجاع).
- Haystack أو LangChain + قاعدة بيانات متجهة (FAISS أو Chroma) لـ RAG (التوليد المعزز بالاسترجاع).
- قطع البرمجة اللغوية العصبية الكلاسيكية:
- spaCy (القواعد، خطوط أنابيب NER)، Hugging Face Transformers (مصنفات النية الدقيقة)، fastText لخطوط الأساس للنية خفيفة الوزن.
- spaCy (القواعد، خطوط أنابيب NER)، Hugging Face Transformers (مصنفات النية الدقيقة)، fastText لخطوط الأساس للنية خفيفة الوزن.
- إدارة التعلم اللغوي والحوار:
- الحالة والتخزين:
- حالة المحادثة (SQLite/Postgres/Redis).
- فهرس المحتوى (FAISS/Chroma/Weaviate).
- السجلات/المقاييس (Postgres + Grafana/Prometheus، أو ملف CSV/S3 بسيط إذا كنت تقوم بالنمذجة الأولية).
- الإدارة والأدوات:
- التعليق التوضيحي وإصدارات مجموعة البيانات (Label Studio + DVC/Git LFS).
- نصوص التقييم (pytest + مقاييس مخصصة للنية F1، والكيان F1، ومعدل إكمال الهدف).
إن عملية التسليم بسيطة: WhatsApp → webhook → وقت تشغيل الروبوت (Rasa/Botpress/LangChain) → منطق العمل → الاستجابة عبر واجهة برمجة تطبيقات إرسال WhatsApp.
كتل البناء مفتوحة المصدر (مُنسقة)
- Rasa – تم اختباره في المعارك لاستخراج النية/الكيان، والنماذج (ملء الفتحة)، والقصص، والسياسات؛ توازن جيد بين القواعد القائمة والتعلم الآلي.
- Botpress (إصدار مفتوح المصدر) - منشئ تدفق مرئي؛ سريع في دمج غير المطورين؛ استخدمه عندما يريد فريقك لوحة قماشية بالإضافة إلى NLU.
- spaCy – عناصر معالجة اللغة الطبيعية (NLP) عالية الجودة، ونماذج متعددة اللغات، ومكونات مخصصة للكيانات القائمة على الأنماط.
- Haystack – تنظيف خطوط أنابيب RAG، ومخازن المستندات، والمستردون، والقراء؛ مثالي لبرامج الأسئلة الشائعة + روبوتات قاعدة المعرفة.
- LangChain/LangGraph – وكلاء/أدوات قابلة للتكوين للتصميمات التي تركز على LLM؛ يتم إقرانها بنموذج مفتوح أو نموذج API حسب الحاجة.
- FAISS / Chroma – بحث متجه خفيف الوزن للاسترجاع القائم على التضمينات.
- Node-RED – غراء منخفض التعليمات البرمجية لتنظيم خطافات الويب، ومكالمات HTTP، واتخاذ القرارات عندما تريد الشحن بسرعة.
نموذج البيانات وتطبيع الرسائل
تختلف حمولات واتساب باختلاف نوع الرسالة. قم بالتطبيع مبكرًا لضمان توافق مخطط معالجة اللغة الطبيعية (NLP) لديك:
- الطابع الزمني (ISO)
- من الهاتف (E.164)
- نوع الرسالة (نص | صورة | موقع | صوت | مستند)
- النص (النص المستخرج؛ قم بتشغيل OCR للصور فقط إذا كنت بحاجة إليه حقًا)
- media_url (إن أمكن)
- الإعدادات المحلية (إذا كانت موجودة؛ الرجوع إلى اكتشاف اللغة)
- session_id (ثابت لكل مستخدم/يوم)
حافظ على الفروع غير النصية بسيطة في البداية: أقر باستلام الوسائط، واطرح أسئلة توضيحية، وقم بتخزين المراجع للمراجعة البشرية.
ثلاثة أنماط نموذجية مفتوحة المصدر (جاهزة للنسخ)
1) الأسئلة الشائعة + تأهيل العملاء المحتملين (Rasa-first)
متى تختار: أنت بحاجة إلى تصنيف قوي للنية، وكيانات (على سبيل المثال، المنتج، والمدينة)، وملء الفتحة الحتمية.
تدفق:
- النص الوارد → Rasa NLU → intent (pricing_query، book_install، out_of_scope).
- إذا كان pricing_query، فاستخرج الكيانات (المدينة، نوع النظام)؛ إذا كانت مفقودة، نماذج أسئلة.
- استرداد الإجابات المخزنة من ملف المعرفة YAML/JSON أو RAG بسيط إذا كان المحتوى كبيرًا.
- قم بالتسليم إلى الإنسان إذا كانت الثقة < الحد الأدنى أو انتهت مهلة النموذج.
الميزة الرائعة: توازن سياسات راسا (TED وRulePolicy) السلوك المُكتسب مع القواعد الصريحة. يمكنك ضبط لغة البرمجة اللغوية العصبية (NLU) باستخدام بضع عشرات من الأمثلة/الأهداف.
2) الأسئلة والأجوبة المستندة إلى الوثائق (Haystack RAG)
متى تختار: قاعدة المعرفة كبيرة (ملفات PDF، والمستندات، والأسئلة الشائعة)، وتريد إجابات مبنية على المحتوى الخاص بك.
تدفق:
- النص الوارد → اكتشاف اللغة → استعلام التضمين.
- Haystack : Retriever (على سبيل المثال، Dense Passage Retrieval) يقوم بجلب المقاطع ذات أعلى k من FAISS/Chroma.
- يقوم القارئ/المولد بتأليف إجابة قصيرة مع الاستشهادات.
- تتضمن الاستجابة ملصق مصدر سهل الاستخدام ("دليل التثبيت §2.1").
الأمر الرائع: تتجنب الهلوسة بتأريض صارم. يمكنك توسيع المحتوى دون المساس بمنطق الحوار.
3) فرز الخدمات حسب التدفق (قواعد Botpress + spaCy)
متى تختار: تعتمد العمليات على سير العمل المنظمة (تذكرة مفتوحة، تحديث ETA، إعادة الجدولة) وتريد لوحة مرئية مشتركة.
تدفق:
- تدفق Botpress للفروع ذات الثقة العالية (القائمة، خطوات النموذج).
- علامات مكون spaCy المخصصة لأرقام الطلبات ورسائل البريد الإلكتروني والتاريخ.
- يقوم Botpress باستدعاء برنامج خلفي (على سبيل المثال، /tickets/create) وينشر المرجع للمستخدم.
- الرجوع إلى قائمة الرد السريع "لم أفهم ذلك - اختر خيارًا".
ما هو رائع: يمكن لغير المطورين تعديل التدفقات بأمان. تلتقط قواعد spaCy الكيانات الهشة والمحددة التنسيق بسرعة.
بيانات التدريب: كيف يبدو "الكافي"
- النوايا: ابدأ بـ 8 إلى 15 نية تغطي 80% من حركة المرور. حوالي 20 إلى 30 مثالاً لكل نية هو منتج قابل للتطبيق بدرجة صحية.
- الكيانات: ركّز على الكيانات التشغيلية (المدينة، مُعرِّف الطلب، فئة المنتج). اكتب بعض ميزات التعبيرات العادية (مُعرِّفات الطلب، رسائل البريد الإلكتروني) لتحسين الدقة.
- أمثلة سلبية: قم بتضمين الدردشة خارج نطاق الحديث والحديث الصغير المهذب حتى تكون سياسة العودة فعالة.
- متعدد اللغات: إذا كنت تتوقع لغات مختلطة، فأضف اكتشاف اللغة والتوجيه إلى خطوط الأنابيب أو النماذج المنفصلة لكل لغة.
مجموعات بيانات الإصدارات باستخدام Git + DVC. يجب أن يرتبط كل بناء نموذجي بتأكيد مجموعة البيانات.
تصميم المحادثة القابلة للتطوير
- أفضل اقتراحين أو ثلاثة اقتراحات بعد الحل البديل ("هل تقصد التسعير أم أوقات التثبيت؟") أفضل من "آسف لأنني لم أفهم ذلك".
- الإفصاح التدريجي: اطلب مكانًا مفقودًا واحدًا في كل مرة، ثم قم بتلخيص المعلومات المجمعة، ثم قم بالتأكيد قبل اتخاذ أي إجراء.
- المشاركة البشرية: تقديم كلمة رئيسية مثل "الوكيل" أو ببساطة اكتشاف أنماط الإحباط وتصعيدها باستخدام سياق النص.
الأمان والامتثال وتفاصيل WhatsApp
- الاشتراك + إلغاء الاشتراك: فرض موافقة واضحة. اجعل "الإيقاف" (أو النسخة المحلية) فعالاً من اليوم الأول.
- تقليل معلومات التعريف الشخصية (PII): خزّن فقط الحقول التي تحتاجها فعلاً (مثل: معرف الطلب، المدينة). قم بإخفاء أو تجزئة المعرفات الحساسة في السجلات.
- حدود المعدل وإعادة المحاولة: تنفيذ التراجع الأسّي لأخطاء الإرسال؛ تسجيل رموز الاستجابة.
- قوالب الرسائل: بالنسبة للرسائل التي تبدأها الشركة خارج إطار الـ 24 ساعة، قم بإعداد قوالب معتمدة (متطلبات WhatsApp).
- نظافة الوسائط: لا تقم بتنزيل المرفقات تلقائيًا دون وعي؛ قم بالمسح الضوئي إذا كان الامتثال يتطلب ذلك.
القدرة على الملاحظة: قياس ما يهم
- مصفوفة دقة النية والارتباك: ابحث عن نوايا متشابهة وقم بدمج الأمثلة أو إعادة صياغتها.
- معدل إكمال الهدف: نسبة المستخدمين الذين يصلون إلى نتيجة عمل (الحجز، إنشاء تذكرة).
- معدل الرجوع إلى الوضع السابق حسب نوع الرسالة: تتبع ما إذا كانت عمليات الرجوع إلى الوضع السابق ترتفع بشكل حاد بالنسبة للغات أو حملات معينة.
- معدل التسليم البشري والأسباب: استخدام الفئات (الفواتير، والحالات الخاصة، والإساءة) لتحديد أولويات التدريب.
- زمن الوصول (ص50/ص90): حافظ على زمن الوصول من البداية إلى النهاية أقل من 2 إلى 3 ثوانٍ لاستجابات النصوص.
ابدأ بلوحة معلومات خفيفة الوزن: الجلسات اليومية، والمستخدمين الفريدين، ومعدل الإكمال، والخيارات البديلة، ومتوسط الرسائل لكل جلسة.
دليل البدء السريع (مسار لمدة أسبوع واحد)
اليوم الأول – الهيكل العظمي
- الوقوف على خطاف الويب (FastAPI/Express).
- إنشاء مشروع Rasa (أو مساحة عمل Botpress).
- سلك واتساب → ويب هوك → بوت → واتساب.
اليوم الثاني – النوايا والأشكال
- قم بتحديد 10 نوايا و3 كيانات؛ وأضف 20 عينة/نية.
- قم بإنشاء نموذج واحد (على سبيل المثال، الحجز: التاريخ، المدينة، البريد الإلكتروني للاتصال).
- أضف حدًا أدنى للسياسة؛ قم بتوجيه الثقة المنخفضة إلى الخيار البديل.
اليوم الثالث – المعرفة
- فهرس 10-20 وثيقة أساسية مع Haystack + FAISS.
- أضف نية "سؤال/kb" التي تؤدي إلى تشغيل RAG مع أعلى 3 استشهادات.
اليوم الرابع – تسليم البشر
- تنفيذ أمر التصعيد وصندوق وارد للوكيل (حتى لو كان بريدًا إلكترونيًا مشتركًا/جسرًا على Slack في البداية).
- سجل النصوص مع العلامات ("يحتاج إلى تصعيد").
اليوم الخامس – حلقة التقييم
- قم بإجراء مجموعة صغيرة من الاختبارات؛ وجمع الرسائل المصنفة بشكل خاطئ.
- إعادة التدريب؛ مقارنة F1 ومصفوفة الارتباك.
اليوم السادس – القوالب وساعات العمل الإضافية
- أضف قوالب رسائل WhatsApp للتدفقات التي تبدأها الأعمال.
- ردود تعتمد على الوقت ("سنعود في الساعة 09:00") مع مهمة متابعة صباحية.
اليوم السابع – التصلب
- أضف عمليات إعادة المحاولة وتسجيل الأخطاء والفحوصات الصحية والتصدير اليومي إلى التخزين.
- توثيق خط الأنابيب ومجموعات البيانات وخطوات الإصدار.
نصائح حول التكلفة والأداء
- النماذج: ابدأ باستخدام الهياكل الأساسية للمحولات الضوئية (فئة DistilBERT) أو حتى SVM/fastText الكلاسيكي للنوايا إذا كانت الميزانية محدودة.
- البحث عن المتجه: عادةً ما يكون FAISS على وحدة المعالجة المركزية كافياً لـ <500 ألف مقطع.
- التخزين المؤقت: تخزين الإجابات المتكررة (على سبيل المثال، أوقات التسليم) لتقليل الحوسبة.
- الدفعات: إذا قمت ببث الإشعارات (رسائل القالب)، فقم بإرسال الطلبات الدفعية بطريقة مسؤولة واحترم حدود المعدلات.
الأخطاء الشائعة (وكيفية تجنبها)
- تضخم النوايا: وجود أكثر من 30 نية دقيقة في وقت مبكر جدًا يزيد من الارتباك. دمج الكيانات واستخدامها لتحسين الأداء.
- تجاوز حدود التعبيرات العادية: الأنماط الواسعة للغاية تخلق نتائج إيجابية خاطئة؛ قم بالتقييد باستخدام حدود الكلمات والتحقق من السياق.
- حل بديل واحد يناسب الجميع: قم بتحديد الحلول البديلة ذات الطبقات: التوضيح → إعادة الصياغة → تقديم أفضل النوايا → التصعيد.
- تجاهل الواقع المتعدد اللغات: إضافة الكشف المبكر عن اللغة؛ الطريق إلى خط الأنابيب الصحيح.
- سياق غير محدود: حافظ على نوافذ الجلسة معقولة؛ تلخيص الخيوط الطويلة لتجنب انحراف النموذج.
جمع كل ذلك معًا
بوت معالجة اللغة الطبيعية مفتوح المصدر لواتساب ليس مشروعًا بحثيًا، بل هو مجموعة من الأجزاء العملية القابلة للتركيب، والتي يمكنك تجميعها بسرعة وتطويرها بأمان. ابدأ بخطاف ويب مُوثّق لواتساب، واختر وقت تشغيل يناسب فريقك (راسا للتدفقات المُوجّهة بالسياسات، بوت بريس للتنسيق المرئي، هايستاك/لانغ تشين للاسترجاع)، وصمّم محادثات تسأل فقط عما هو مطلوب، خطوة بخطوة. قِس النتائج، وأعِد التدريب أسبوعيًا من نصوص حقيقية، ثمّ صعّد إلى فريق العمل عندما يكون ذلك مفيدًا حقًا.
افعل ذلك، وستمتلك خريطة الطريق الخاصة بك، وبياناتك، وتكاليفك - بينما يستمتع المستخدمون بتجربة WhatsApp سريعة وطبيعية ومفيدة.
.png)
.webp)

