كيفية إنشاء برنامج الروبوت الخاص بك دون مهارات البرمجة وربطه بـ Yandex.Alice


كما كتبنا في مقالتنا الأولى ، نحن في Just AI متخصصون في تقنيات الذكاء الاصطناعي لفهم اللغة الطبيعية (NLU). لدينا منصة خاصة بنا لتطوير مساعدين للمحادثة ، نصًا وصوتًا. طورت المنصة وظائف لحل مشاكل البرمجة اللغوية العصبية (تجميع السجلات ، والبحث عن عبارات قريبة من الدلالة ، وما إلى ذلك) ولغة التطوير الخاصة بها (Just AI DSL). باستخدام DSL ، يكتب فريق من المطورين اللغويين رمز البرنامج النصي Chatbot ، ووحدات التكامل للتواصل مع الأنظمة الخارجية ، بالإضافة إلى الاختبارات التلقائية.

في هذه المقالة ، سنتحدث عن الأداة التي أنشأناها لتطوير برامج الروبوت لمنصات مختلفة ، بما في ذلك Yandex Dialogs ، دون معرفة مهارات DSL والبرمجة.

يمكن أن تتضمن المشاريع الكبيرة ، مثل المحول التلقائي لدعم عملاء مشغلي الاتصالات أو المساعد الصوتي كامل الميزات ، أكثر من 1000 نية للمستخدم المصنف وعشرات الأدلة لاستخراج الكيانات وتتضمن عمليات دمج مع العديد من الخدمات الخارجية. لذلك ، يتم تنفيذ التطوير في وقت واحد من قبل العديد من اللغويين والمطورين ، باستخدام أنظمة وأدوات التحكم في الإصدار لاختبار الإجهاد ، بمشاركة كاتبي الحقوق ومصممي UX.

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

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

سواء نجحنا أم لم ننجح في الحكم عليك (توجد روابط للتسجيل في المصمم والمراسلات في المجتمع في نهاية المقالة). ونتيجة لذلك ، ظهر منتج Aimylogic - مصمم مرئي يمكنك من خلاله تجميع برنامج دردشة ذكي يفهم اللغة الطبيعية من الكتل البسيطة: النسخ المتماثلة للمستخدم ، واستجابات الروبوت ، والمكالمات إلى الأنظمة الخارجية. لا يتطلب العمل مع Aimylogic معرفة بمنصة DSL الأساسية والمهارات في أنماط الكتابة للتعرف على النوايا والاختبارات الذاتية.

الحالة: إنشاء برنامج chatbot لقسم الموارد البشرية


سننظر اليوم في حالة بسيطة إلى حد ما: إنشاء برنامج chatbot للموارد البشرية ، والذي يقدم المشورة للموظفين حول العمليات الداخلية للشركة من خلال Telegram ، أو موقع الشركة على الويب أو Yandex.Alisa ، يمكنه قبول الطلبات (للعطلة ، VHI ، وما إلى ذلك) وإرسالها إلى المجلس في Trello.

يمكن تقسيم العملية برمتها إلى المراحل التالية:

  1. إنشاء برنامج نصي لحوار بوت الموارد البشرية مع موظف الشركة ؛
  2. تكوين مجموعة طلب المستخدم (سنستخدم Trello) ؛
  3. اختبار الروبوت
  4. نشر بوت في Telegram أو على موقع الويب أو في Yandex.Alice.

لذا ، أول شيء أولاً ...

1. إنشاء سيناريو للتواصل مع الموظفين


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

تأتي عملية إنشاء برنامج نصي في Aimylogic لإضافة كتل وإنشاء انتقالات بينها.

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

بعد إنشاء الكتلة بنص الترحيب ، سنضيف كتلة "العبارات" في برنامج الروبوت الخاص بنا ، مما يسمح لنا بتدريب الروبوت باستخدام أمثلة لطلبات المستخدمين. في كتلة "العبارات" ، أضف مجموعات منفصلة من العبارات التي تتوافق مع نوايا (نوايا) المستخدمين واملأ كل منهم بأمثلة عن الاستعلامات.

في هذا المثال ، سننشئ عدة مجموعات من العبارات:

  • ربط مشروع الراتب ؛
  • برنامج شركة VHI
  • طلب اجازة
  • الحصول على شهادات من المحاسبة والموارد البشرية ؛
  • تعويض الطاقة.

في مجموعات من العبارات نحدد مجموعات من الأمثلة بناءً على الطلبات الحقيقية للموظفين لقسم الموارد البشرية. على سبيل المثال ، بالنسبة لمجموعة "VHI Corporate Program" ، ستكون هذه الطلبات:

  • كيفية التقدم بطلب للحصول على DMS؟
  • أنا مهتم بالتأمين الصحي
  • كيف تحصل على سياسة VHI؟

يمكن استكمال مجموعات العبارات بأمثلة في أي وقت ، مما يسمح لك بإعادة تدريب الروبوت بسرعة أثناء التشغيل.

لكل مجموعة من العبارات ، قم بإنشاء تسلسل الإجراءات الخاص بك في البرنامج النصي. على سبيل المثال ، بالنسبة لمجموعة العبارات "تطبيق العطلة" ، ننفذ طلبًا للحصول على بيانات إضافية من المستخدم ونحفظ تطبيقه في Trello لمزيد من المعالجة بواسطة موظف قسم الموارد البشرية.

لطلب بيانات من المستخدم ، سنضيف تسلسلًا إلى البرنامج النصي لطلب اسم الموظف وتواريخ الإجازة المطلوبة.



يتم تخزين المعلومات التي أدخلها المستخدم في المتغيرات $ Name و $ vacation_date وتصبح متاحة للاستخدام الإضافي في البرنامج النصي. على سبيل المثال ، لإرسال هذه البيانات إلى نظام خارجي.

في الإصدارات المستقبلية من Aimylogic لتلقي البيانات من أنواع مختلفة (نص ، أرقام ، رقم هاتف) ، ستظهر الكتل المقابلة في النظام ، والتي تتحقق تلقائيًا من إدخال المستخدم.

الآن سنقوم بتكوين دمج الروبوت مع Trello ، حيث سيتم حفظ التطبيقات المجمعة من المستخدمين.

2. حفظ طلبات المستخدم في Trello


يوفر Trello واجهة برمجة تطبيقات للتكامل مع أدواته ، ولكن هناك خدمات ، بما في ذلك خدمات مجانية ، تسمح لك باستخدامها دون إضاعة الوقت في كتابة رمز التكامل. إحدى هذه الخدمات هي IFTTT. يرسل برنامج الدردشة الآلي الذي أنشأناه في Aimylogic البيانات إلى IFTTT ويظهر في Trello.

للقيام بذلك ، قم بإنشاء برنامج Webhook في IFTTT ، والذي ، عند تلقي طلب HTTP من الروبوت ، سيضع البيانات من نص الطلب على اللوحة في Trello. في برنامج bot script في Aimylogic ، أضف كتلة "طلب HTTP" ، التي ستنقل البيانات إلى التطبيق الصغير.

إنشاء التطبيق الصغير


في واجهة IFTTT ، أنشئ تطبيقًا صغيرًا جديدًا (تطبيقاتي الصغيرة -> تطبيق صغير جديد) قم بتعيين مشغل التطبيق الصغير ليتم تشغيله (بالنقر فوق + هذا ). في البحث الذي يظهر ، اكتب "webhook" وحدد المشغل الموجود تحت اسم "Webhooks".

انقر على "تلقي طلب ويب" وقم بتعيين اسم حدث التشغيل (اكتبه باللاتينية بدون مسافات في حقل "اسم الحدث"). انقر فوق "إنشاء الزناد".

الآن نقوم بتكوين الإجراء الذي سيحدث عندما يرسل البوت طلبًا إلى التطبيق الصغير من البرنامج النصي الذي قمنا بتكوينه للتو - انقر فوق " هذا " في التطبيق الصغير.

تكوين تكامل IFTTT مع Trello


بعد النقر على " هذا " في IFTTT ، يظهر البحث مرة أخرى. نحن نبحث عن Trello هناك وتسجيل الدخول إلى هذه الخدمة.

بعد إصدار أذونات للوصول إلى حسابك في Trello ، حدد الإجراء "إنشاء بطاقة" في IFTTT.

بعد ذلك ، وضح اللوحة التي ستظهر عليها البطاقات ، في حقل "العنوان" (اسم البطاقة) ، أشر إلى "القيمة 1" - هذا متغير من نص الطلب من الروبوت الذي سيتم فيه إرسال جوهر طلب الموظف ("<اسم الموظف> يريد الذهاب في إجازة < فترة الإجازة> ").
انقر على "إنشاء إجراء" عندما يتم تكوين كل شيء كما نحتاج. التالي هو "إنهاء".
الآن ، عندما يرسل البوت طلب HTTP إلى webhook الذي قمنا بتكوينه ، سيأخذ IFTTT متغير "Value1" من هذا الطلب ويضيف تلقائيًا بطاقة بهذا الاسم إلى Trello.

الحصول على عنوان الرد التلقائي في IFTTT


ربما يكون هذا هو الجزء الأكثر تافهة من التكامل.

انقر على قائمة "بحث" أعلى صفحة IFTTT. بعد ذلك ، ابحث عن "webhook". انقر فوق Webhooks الموجودة. بعد ذلك ، انقر فوق "الإعدادات".

تفتح الصفحة بعنوان URL. هذا ليس عنوان webhook حتى الآن! تحتاج إلى نسخ عنوان URL هذا وفتحه في علامة تبويب متصفح جديدة.


تفتح صفحة اختبار الرد التلقائي على الويب. هنا يمكنك ملء اسم حدث الزناد (الحدث الذي فكرنا به عند إنشاء التطبيق الصغير في قسم "إنشاء التطبيق الصغير") وقيمة المتغير "Value1". الآن إذا نقرت على "اختبارها" ، فستتم إضافة بطاقة بقيمة المتغير "Value1" في الرأس إلى Trello.


الآن قم بنسخ عنوان URL الخاص بالشبكة الإلكترونية (في السطر الأخير ، أعلى زر "اختباره") - هذا هو عنوان الرد التلقائي الذي يجب أن نستخدمه في طلب HTTP في برنامج التتبُّع.

تكوين طلب HTTP في Aimylogic


نضيف كتلة مع طلب HTTP إلى البرنامج النصي عندما نجمع بالفعل بيانات من المستخدم (في المتغيرات $ Name و $ vacation_date).

في إعدادات طلب HTTP ، كعنوان URL ، نحدد عنوان الرد التلقائي الذي تلقيناه من IFTTT.


نضع قيمة المتغير "Value1" في نص الطلب - ونشكل نصًا به مع اسم $ المتغير ، حيث يتم تخزين اسم المستخدم ، بالإضافة إلى المتغير $ vacation_date ، الذي يتم فيه تخزين تواريخ الإجازة. أي أنه يجب أن يتحول إلى ما يلي:

{ "value1" : "$Name     $vacation_date" } 

الآن ، عند تنفيذ هذا الطلب ، سيقوم البوت باستبدال القيم $ Name و $ vacation_date في نص الطلب وإرسال الطلب إلى برنامج IFTTT الصغير. سيؤدي ذلك بدوره إلى إنشاء بطاقة على لوحة Trello.

3. اختبار البوت


بعد إعداد نص حوار ، يمكنك التحقق منه على الفور في Aimylogic بالنقر على زر "اختبار". ستظهر القطعة على الشاشة حيث يمكنك الدردشة مع الروبوت. يدعم عنصر واجهة المستخدم كلاً من إدخال النص واستخدام الأزرار ، إذا تم توفيره بواسطة البرنامج النصي. على سبيل المثال ، في أليس من المعتاد تقديم أزرار المستخدم كتلميحات لتعريفه بقدرات المهارة.

في هذه المرحلة ، يمكنك تصحيح الحوار والتحقق من مدى صحته وفهمه دون استخدام أدوات نماذج أولية إضافية.

يرجى ملاحظة أنه بفضل تقنيات NLU (بما في ذلك المرادفات المتطابقة ، وأشكال الكلمات العادية ، وتمثيل المتجهات ، وهياكل الاستعلام النحوي) ، فإن البوت لن يفهم فقط العبارات التي تتطابق مع الأمثلة ، ولكن أيضًا قريب منها في المعنى. إذا لم يحدث ذلك ، يمكنك تدريب البوت عن طريق توسيع قائمة الأمثلة ذات الصلة.

الآن أصبح برنامج الدردشة قادرًا على التواصل مع الموظف وحفظ البيانات في Trello. يبقى وضع البوت في القناة المطلوبة.

4. نشر برنامج دردشة


باستخدام Aimylogic ، يمكن وضع البوت المُنشأ في قناة واحدة أو عدة قنوات. متوفر حاليًا في Aimylogic: أداة الدردشة للموقع أو Telegram أو المساعد الصوتي Yandex.Alice.

قريباً سنضيف قنوات جديدة: VK و Facebook و Slack وغيرها. في كل مكان ، سيكون السيناريو السلوكي لبوت HR هو نفسه تقريبًا ، وستنتقل التطبيقات من جميع القنوات إلى لوحة Trello.


وفقًا للقناة المحددة ، سيقوم Aimylogic تلقائيًا بإنشاء برنامج نصي ليتم إدراجه في موقع الويب أو عنوان الرد على الويب لتحديده في Yandex.Dialogs. لاستخدام Telegram ، يكفي الإشارة إلى الرمز المميز لبوت Telegram المستلم من BotFather.

يعرض Aimylogic جميع القنوات المتصلة بالبوت وحالاتها.

أين يمكنني اختباره؟


نحن نفتح Aimylogic في وضع بيتا. بصراحة ، لا يزال "رطبًا" ، ولكن يمكنك اختباره وتجربة حالات مختلفة: إنشاء نصوص مربعات حوار في قنوات مختلفة ، وتجربة ربط الأنظمة الخارجية ، وبناء روبوتات الأسئلة الشائعة مع فهم اللغة الطبيعية.

سيتضمن إصدار الإصدار التالي دلائل الكيانات المسماة ، والتي ستوسع بشكل كبير من قدرات المنتج.

بدأنا في صنع Aimylogic ، محاولين تسهيل الأمر على المستخدمين لإنشاء روبوتات بسيطة على منصتنا ، مع الحفاظ على الوصول إلى وظائفه الرئيسية - NLU ، وسهولة التكامل مع الأنظمة والقنوات الخارجية. سنستمر في تطوير المنتج ، وتحسين تجربة المستخدم الخاصة به ، ورمي ميزات مفيدة جديدة من المنصة الرئيسية. نحن نتطلع إلى التعليقات والاقتراحات.

يمكنك اختبار المنصة هنا: app.aimylogic.com

يمكنك الدردشة معنا أو مطورين آخرين في قناة البرقية . أو ببساطة اكتب "Aimylogic" في بحث Telegram.

Source: https://habr.com/ru/post/ar412557/


All Articles