قبل بضعة أشهر ،
أطلقت Yandex إصدارًا تجريبيًا من مساعدها
الصوتي أليس ، حيث فتحت واجهة برمجة التطبيقات الخاصة بها. ومؤخرا فقط قمت بتدوير كل شيء للجمهور. يمكن الآن لملايين المستخدمين إطلاق وظائف وخدمات متنوعة عن طريق الصوت مباشرة من بحث الجوال والملاح ومن متصفح Yandex. ليس من المستغرب ، هناك المزيد والمزيد من مهارات الصوت. ولكن تفترض واجهة برمجة تطبيقات الحوار أنه يجب أن تكون قادرًا على البرمجة ، ويجب أن يكون لديك خادمك الخاص مع HTTPS ، بالإضافة إلى أنه يجب أن تكون قادرًا على معالجة الطلبات بلغة طبيعية ...
وفي الوقت نفسه ، كان لدى Google منذ فترة طويلة مصمم حوار مجاني ومريح إلى حد ما يسمى Dialogflow. بالطبع ، لا يدعم بروتوكول Alice من خارج الصندوق ، لذلك جاءت الفكرة لتصحيح هذا الوضع حتى يتمكن المطورون (وليس فقط) بسرعة وبدون خوادم من إنشاء مهارات لـ Alice التي يمكنها فهم الكلام الطبيعي وسياق الحوار.
ما هو Dialogflow؟
Dialogflow هي خدمة عبر الإنترنت من Google تتيح لك إنشاء روبوتات أو
وظائف الدردشة الخاصة بك
لمساعد Google (يسمى هذا
الوكيل ). هناك بالفعل بعض المقالات الجيدة عن حبري ، والتي تناقش الأدوات الرئيسية لهذا المنتج.
هنا واحد منهمفي الواقع ، يمكن أن يتطابق Dialogflow مع عبارة المستخدم بلغة طبيعية (وبالروسية أيضًا) مع بعض المعنى "غير اللغوي" (يسمى
intent ) والإجابة على شيء ما. بالإضافة إلى ذلك ، يحمل أيضًا سياق الحوار بحيث يمكن الرد على العبارة التالية في سياق الملاحظات السابقة.
الأداة سهلة الإدارة ، ولا تزال تخزن جميع إحصائيات الطلبات ، بحيث يمكنك إعادة تدريب الوكيل بنوايا جديدة أو تجديد النكهات الموجودة بنقرة واحدة. في الواقع ، هذه هي الطريقة التي يحدث بها التدريب - فأنت تعرض فقط أمثلة للطلبات التي تتعلق بقصد معين في وكيلك ، ويقوم Dialogflow تلقائيًا بإنشاء نموذج ويفهم المستخدم بشكل أفضل وأفضل. يمكنه أيضًا تحديد بعض الكيانات من العبارة ، على سبيل المثال ، التواريخ أو المدن ، إذا كنت بحاجة إليها لأداء بعض الوظائف.
لماذا أليس؟
لدى Alice
واجهة برمجة تطبيقات مماثلة لبرقية API. وبعبارة أخرى ، من أجل إنشاء مهارة لـ Alice ، تحتاج إلى رفع خادم سيتلقى طلبًا نصيًا من Alice من المستخدم والرد بالبيانات بالتنسيق المطلوب. يبدو كل شيء بسيطًا ، ولكن من أجل إنشاء أبسط مهارة ، ستحتاج إلى دراسة بروتوكول Alice ، ورفع خادمك العام باستخدام HTTPS ، وكتابة كود يمكنه فهم اللغة البشرية والحفاظ على سياق المحادثة.
حتى لا تضطر إلى القيام بكل هذه الخطوات في كل مرة ، ولكن في نفس الوقت إذا لم تكن مبرمجًا ، وتحتاج حقًا إلى الحصول على المهارات مباشرة ، يمكنك استخدام Dialogflow.
زهرة الحوار

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

قم بإنشاء وكيل

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

ويتم تشغيل هذه النية عندما يقول المستخدم عبارة لا يمكن للوكيل أن ينسبها إلى أي من المقاصد الحالية. أي عندما لا يفهم الوكيل ببساطة طلب المستخدم. هنا يمكنك أيضًا تعيين الإجابات التي ستقدمها أليس عندما لا نعرف ما يجب الإجابة عليه.
نرد على النسخ المتماثلة
إذا قمت بالنقر فوق علامة الزائد بجوار كلمة Intents في القائمة اليسرى ، يمكنك إضافة هدف جديد وتحديد قائمة من العبارات التي تحتاج إلى الإجابة على شيء لها. في قائمة
عبارات التدريب ، أضف العبارات التي من المحتمل أن ينطقها المستخدم. كلما زاد عددهم ، كان ذلك أفضل.
بالطبع ، يفهم Dialogflow اللغة الإنجليزية أفضل من اللغة الروسية. لذلك ، لا تتوقع منه أن يفهم جميع العبارات المترادفة المناسبة في المعنى. في هذا الصدد ، يعمل Aimylogic التناظري لدينا بشكل أفضل ، والذي سأتحدث عنه أدناه.لا تنس أن تضيف إجابات لقصدك وانقر على زر
حفظ . بدونها ، لن يعمل شيء.
يمكنك اختباره هنا - على الجانب الأيمن من الشاشة. اكتب عبارة الاختبار الخاصة بك في حقل جربها الآن وانظر ما أجاب عليه وكيلك.
خلق مهارة
الآن كل شيء جاهز لربط وكيلنا الذي تم إنشاؤه لـ Alice واختباره في وحدة تحكم Yandex Dialog. للقيام بذلك ، انتقل إلى
حوارflower.com وانقر على
إنشاء مهارة . في النافذة التي تظهر ، حدد
رمز وصول العميل من وكيلك. يمكن العثور عليه في صفحة إعدادات الوكيل في Dialogflow. انقر فوق
إنهاء وفي ثانية سيكون لديك
عنوان URL Webhook الذي ننتقل إليه إلى Yandex Dialogs.

ثم أنشئ مهارة جديدة لـ Alice وحدد عنوان URL Webhook في إعداداته. بالإضافة إلى ذلك ، بالنسبة للاختبارات ، تحتاج فقط إلى التوصل إلى اسم المهارة ، جميع الحقول الأخرى ليست مطلوبة بعد. انقر فوق
حفظ وانتقل إلى علامة التبويب
اختبار . هنا يمكنك كتابة شيء والتحقق من أن مهارتك تعمل كما هو متوقع.
نقوم بزيادة الوظائف
الآن مهارتنا جاهزة ، وستؤثر جميع التغييرات على الوكيل في Dialogflow فقط. ما عليك سوى إضافة النوايا وتغييرها ، ولا تنس النقر على الزر حفظ واختبار النتيجة في وحدة تحكم Yandex.Dialogs.
كيفية فهم السياق
يمكن أن ينسج Dialogflow النوايا بحيث تتمكن مهارتك من الاستجابة بشكل مناسب للعبارات المنطوقة في سياق المحادثة. للقيام بذلك ، ما عليك سوى إضافة القصد إلى نية أخرى. للقيام بذلك ، انتقل إلى قائمة النوايا وحرك مؤشر الماوس فوق واحد منهم. تظهر رسالة
نية خافتة
إضافة متابعة على اليمين. انقر عليها وأضف نية ستعمل في سياق السابق.
هذا ، على سبيل المثال ، إذا كان لديك نية تستجيب لعبارات مثل "ما هو الطقس" ، فيمكنك إضافة نية مع عبارات مثل "غدًا". بعد ذلك ، سيعالج الوكيل هذه العبارة فقط إذا طلب المستخدم أولاً معرفة حالة الطقس.
كيفية إضافة أزرار لإجابة أليس
يمكن لـ Alice الاستجابة ليس فقط بالنص ، ولكن أيضًا إظهار الأزرار والروابط. من خلال النقر على الزر ، يشكل المستخدم ، كما هو ، طلبًا جديدًا ، فقط بدون نطقه وبدون كتابة.
لإضافة أزرار إلى الاستجابة ، تحتاج إلى كتابة قطعة JSON بتنسيق تفهمه أليس. للقيام بذلك ، انتقل إلى الهدف المطلوب ، وانتقل إلى الإجابات هناك وانقر على
إضافة ردود - حمولة مخصصة . هنا يمكنك تحديد جزء من الاستجابة من Alice API. على سبيل المثال ، لإضافة أزرار ، اكتب
{"buttons": [ {"title": " ", "hide": true} ]}
هنا تتم إضافة زر واحد ، والذي سيرسل طلبًا "طلب نص" عند الضغط عليه وسيختفي تلقائيًا من سجل الدردشة بعد ذلك. وهنا مثال آخر
{"buttons": [ {"title": " ", "hide": true}, {"title": " ", "url": "https://dialogflower.com"} ]}
ستتم إضافة زرين هنا ، أحدهما رابط لموقع Dialofower.com
بشكل عام ، يمكنك كتابة أي JSON في Payload بتنسيق حقل "الاستجابة" من بروتوكول Alice .
أين المنطق؟
بالطبع ، لا تحتاج دائمًا إلى الإجابة بعبارات عشوائية ولكن ثابتة. لإضافة بعض المنطق ، ستحتاج إلى كتابة رمز صغير. حسنًا ، أو كثيرًا ، الأمر متروك لك. لكن Dialogflow يسمح لك بالقيام بذلك دون استئجار الخوادم.
انتقل إلى علامة التبويب
الوفاء وتشغيل مفتاح تعطيل. هنا يمكنك كتابة شفرة جافا سكريبت التي ستستجيب حسب الحاجة إلى الهدف الذي تم تشغيله وتنفيذ نوع من المنطق قبل إرسال الاستجابة إلى المستخدم. في الواقع ، يمكن إعادة تحديد الإجابة نفسها على الفور في التعليمات البرمجية.
هنا لن أصف كيف وماذا أفعل بهذا الرمز ، سأعطي فقط
مثالًا جيدًا على github ، حيث يمكن للوكيل إنشاء أحداث في تقويم Google ، وتسجيل المستخدم لإصلاح الدراجة في ساعات مجانية.
الميزة الأساسية هنا هي أنه ليس عليك رفع خادم منفصل لتنفيذ نوع من المنطق لوكيلك. ستقوم Google بكل شيء من أجلك مجانًا.
في النهاية
يتم استخدام
أليس من قبل المزيد والمزيد من الناس في البلاد. تعمل في البحث ، وفي المتصفح ، وفي المتصفح ، وقريبًا سيتم طرح
العمود الرئيسي مع أليس على متن الطائرة للبيع.
لدى أليس واجهة برمجة تطبيقات ويظهر لها المزيد والمزيد من المهارات الصوتية كل يوم.
يوفر
Dialogflow من Google أداة جيدة لتطوير التطبيقات الصوتية حتى بدون مهارات البرمجة ومع إمكانية تشغيل التعليمات البرمجية على خوادم Google مجانًا.
يربط
Dialogflower الوكيل في Dialogflow مع أليس بحيث يمكنك إنشاء المهارات والتجربة بسرعة.
إذن ما هو الأمر؟ علاوة على ذلك ، فإن Dialogflower مجاني تمامًا مثل Dialogflow مع Alice.
تحلق في المرهم
كانت هذه كلها زهور تفاعلية ، ولكن ليس كل شيء جميلًا جدًا في العالم الحقيقي. بالطبع ، Dialoglfow هي أداة رائعة ، ولكنها لا تعمل باللغة الروسية كما في اللغة الروسية. حتى الآن ، لا يفهم العديد من المترادفات ، ويجب قتلهم يدويًا عند إنشاء القصد.
عيب آخر هو أنه في Dialogflow يكون من الصعب جدًا إدارة حتى حوار معقد قليلاً. لا يمكنك ببساطة مراجعته ، لأن المقاصد ليست سوى قائمة مسطحة.
منذ بضعة أيام فقط
، تم تقديم أداة ذات وظائف مماثلة على Habré ، والتي تعرف أيضًا كيفية فهم الكلام الروسي الطبيعي ، ولكنها تفعل ذلك بشكل أفضل ، وتفهم المرادفات ، حتى إذا قمت بتدريب الروبوت فقط مع بضع عبارات. لا يوجد العديد من ميزات Dialogflow حتى الآن ، مثل استخراج الكيانات أو الإحصائيات. ولكن هناك محرر مرئي رائع يظهر فيه مسار الحوار بالكامل مع المستخدم على الفور. ويمكنك إضافة منطق دون كتابة التعليمات البرمجية.
ومع ذلك ، يفوز المطورون دائمًا في منافسة نشطة بين الشركات المصنعة لأدوات المطورين.