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

بالنسبة للمحترفين في
VUI ، لن تكون الملاحظة شيئًا جديدًا ، لكن النصائح والتعليقات الجيدة من ذوي الخبرة هي موضع ترحيب. أنا أكتب لأول مرة ، من فضلك لا تحكم بدقة.
لماذا الاهتمام أليس؟لماذا كل هذا: صوت ، مهارات؟كيف تخلق مهارة؟النهج العام والأخطاء الشائعة.عيوب المنصة الحالية.لماذا الاهتمام أليس؟
على الرغم من أن المساعدين الصوتيين في الخارج أصبحوا شائعين بالفعل ، إلا أن العديد من ساعات المحادثات مع الروبوت
تتسرب بالفعل
إلى الشبكة ، ثم ما زلنا على مستوى التفاعل مع المستكشف ، ومحادثة الأطفال مع Alice ، وتدليل المهوسون بالمنازل الذكية. القليل من أصدقائي يقومون بإدخال الملاحظات والتذكير باستخدام Siri ، على الرغم من أن هذا ، في رأيي ، هو أحد أكثر الخيارات ملائمة لاستخدامه. مع احتمال كبير هذا العام ، سيتغير الوضع للأفضل ، لأن الأساس قد تم وضعه بالفعل:
- كانت أليس تبلغ من العمر عامًا واحدًا فقط ، وهي تدرس ، ولكنها تعرف بالفعل كم.
- الخروج من محطة ياندكس - أعتقد أنها ستصبح تدريجية أكثر ذكاءً وأكثر وظيفية.
- ظهور للبيع في ديسمبر لأول مكبرات صوت صغيرة تابعة منخفضة التكلفة.
- تطلق مدرسة أليس لتطوير المهارات للمطورين
- تم الإعلان عن إدخال تحسينات كبيرة على البنية الأساسية لـ Yandex.Dialogs ، على وجه الخصوص ، "مهارات الاكتشاف" - أداة للبحث المريح وترتيب المهارات من مطوري الطرف الثالث
كل هذا يخبرني أننا في بداية تطوير واجهات الصوت في روسيا وبالتالي قررنا البدء في دراسة هذه التقنيات.
لماذا كل هذا: صوت ، مهارات؟
أعتقد أن العديد من الأشخاص يفهمون بالفعل ميزة الواجهات الصوتية في بعض الحالات ، ولكن لن يكون من الضروري تذكرها: في بعض الأحيان يكون هذا هو الخيار الأنسب. على سبيل المثال ، في السيارة أو في المطبخ ، أو أثناء الطهي ، أو في أي نشاط آخر تنشغل فيه يديك ، فمن المريح إعطاء الأوامر عن طريق الصوت. على سبيل المثال ، لفترة طويلة هناك
ممرضات روبوت ، يتم التحكم فيها عن طريق الصوت ، مما يساعد في العمليات الجراحية.
الصوت هو واجهة مألوفة للناس للتفاعل معها. يتعلم كبار السن والأطفال هذه الطريقة دون أي مشاكل للحصول على المعلومات وإدارة الأدوات الذكية.
بالنسبة للأشخاص الذين يعانون من ضعف البصر ، يعد الصوت والسمع قناة أكثر أهمية للتفاعل مع البيئة. إذا حكمنا من خلال
دردشة Yandex.Station ، فإن هذه الفئة من الناس تقدر حقًا ظهور مثل هذا الجهاز الذي جعل حياتهم أسهل.
لن أواصل سرد الحالات ، إذا كانت مثيرة للاهتمام ، فيمكنك معرفة المزيد حول كل هذا من الأدب المتخصص.
Skill هو برنامج يقوم بتنفيذ حوار معين يتم تشغيله بواسطة أمر تنشيط معين في Alice ويوسع قدرات المساعد الصوتي من Yandex.
كيف تخلق مهارة؟
يوجد بالفعل عدد من
مهارات الطرف الثالث الجيدة ، ولكن هناك العديد من المجالات التي يمكنك شغلها وجعل مهارة ممتعة ومفيدة حقًا.
هناك العديد من المقالات حول إنشائها ، بما في ذلك على حبري. هناك
وثائق ، وهناك
توصيات عامة موجزة. لن أتعمق في التفاصيل الفنية للتنفيذ ، لأنه أود أن أشارك المقاربات المشتركة للمبتدئين.
من الناحية الفنية ، فإن المهارة تشبه إلى حد كبير الروبوت ، مع اختلاف أنه لا يمكن إرسال رسالة في حد ذاته ، ولكن الإجابة فقط على طلب المستخدم.
فيما يلي قائمة قصيرة بالموارد التي تساعدك في البدء:
المكتبات والموارد لمحادثات ياندكس
الأسئلة الشائعة غير الرسمية حول العمل مع حوارات ياندكس.
يحتوي المستند على روابط وأسئلة وأجوبة ذات صلة وليست ذات صلة.
الدردشة أعلاه
ياندكس الحوار .
لبدء التطوير ، فأنت بحاجة إلى حساب على Yandex ، وهو خادم سيتم وضع رمز برنامجنا عليه وتنفيذه ، وخادم الويب والتطبيق نفسه ، مكتوبًا بأية لغة ملائمة لك ويمكن أن توفر العمل عبر
بروتوكول https .
لن أعطي تفاصيل عن تنفيذ مهاراتي هنا ، إذا كان هناك طلب من المجتمع ، فسوف أبدي الانتباه إلى ذلك في مقالة منفصلة. علاوة على ذلك ، هذه المواد موجودة بالفعل.
سأترك فقط
مثالًا على مهارة بسيطة في PHP مع تعليقات ، والتي أعتقد أنها ستسمح للمبتدئين بالبدء السريع.
يحتوي المستودع على برنامج نصي لإنشاء بيئة تطوير بسيطة تقوم بتشغيل خادم الويب المدمج في PHP واستخدام خدمة
serveo.net مما يجعل المنفذ المحلي متاحًا من الإنترنت:

احفظ عنوان url https: //******.serveo.net - سيكون عنوان urhook على الويب. على عكس
ngrok ، لا يتغير عنوان URL هذا مع مرور الوقت ، ولا تحتاج إلى تغييره في إعدادات الحوار. يمكنك التحقق من توفر webhook عن طريق إدخال عنوان URL هذا في المتصفح - يجب أن تعود json مع وجود خطأ. هذا أمر طبيعي ، ونحن لم نقل المعلمات اللازمة للبرنامج النصي.
بعد ذلك ، سجل المهارة نفسها عبر
الرابط :

حدد العنصر "Skill in Alice"

نملأ جميع الحقول وفقًا لطلبات مربعات الحوار وتوثيقها:

في حقل url hook ، أدخل عنوان URL الذي تم استلامه مسبقًا.
نحاول حفظه ، إذا اتبعنا الإرشادات الموضحة ، فيجب أن ينجح كل شيء في المرة الأولى.
في هذه المقالة الخاصة بالتنفيذ ، أنصحك فقط بإيلاء اهتمام خاص لنظام تسجيل إجراءات المستخدم. أواجه جميع مشكلات مشكلة تفاعل المستخدم ، على سبيل المثال ، أتوقع "نعم | لا ، لكني حصلت على شيء آخر ، اكتبه إلى السجل وأبثه على الفور (كعملية منفصلة لسرعة webhook) إلى قناة التلغراف لتتبع العمليات والاستجابة لها.
النهج العام والأخطاء الشائعة.
كما كنت أتوقع ، فإن الطرق المعتادة لتطوير الشبكة التقليدية أو تطوير روبوت التلغراف ليست مناسبة هنا. الفرق الرئيسي هو عدم القدرة على التنبؤ المتكرر للإجابات. تسمح لك منصة الحوار بإضافة أزرار مع إجابات واضحة على السؤال ، لكن المستخدم لا يجيب على الإطلاق على الإطلاق عما يتوقعه مبرمج معتاد على اتباع المنطق الواضح.
مثال
هل تريد أن تتعلم قصيدة أخرى؟
[نعم] [لا]
نتوقع أن يجيب الشخص بنعم أو لا ، لكن خيارات أخرى كثيرة جاءت إلينا:
- نعم
- نعم نعم
- بالطبع اريد
- نعم يا أمي ، ماذا علينا أن نأكل؟
- تعبت من
- كيف هو الطقس في نوفوسيبيرسك؟
كل هذا يحدث لعدة أسباب. يمكن لأي شخص استخدام عبارات إيجابية مختلفة: "بالطبع" ، "نعم" ، "نعم" ، "هيا" ، إلخ. وكذلك السلبية. يحدث أنه لم يبدأ في الإجابة على السؤال في الوقت المحدد ، أليس ما زالت لا تستمع إلى الإجابة ، وبدأ الشخص بالفعل في التحدث ، وفي النهاية نسمع جزءًا من العبارة. أو بالعكس ، بعد إجابة شخص ما ، يواصل المحادثة مع محاور آخر "في الحياة الحقيقية". أيضًا ، قد لا يفهم مستخدم المهارة ببساطة ما هو داخل حوار الطرف الثالث ، ويجعل طلبات aliso المعتادة دون ترك الأمر "كافٍ".
إذا قمنا ببساطة بتكرار نفس السؤال دون التعرف على الإجابة الصحيحة ، فإن هذا قد يزعج المستخدم ويؤدي إلى خيبة أمل في مهارتك وفي واجهات الصوت بشكل عام. لذلك ، يجب أن تولي اهتمامًا خاصًا لرسائل الخطأ ، وفي بعض الأحيان يكون من الأفضل إعادة صياغة السؤال وتوضيحه وعدم طرحه مرة أخرى. من المرجح أن يجيب المستخدم على نفس السؤال بنفس الدرجة ، بصوت أعلى.
يجب أيضًا محاولة توفير خيارات متعددة لاستجابات المستخدم ، مع تمييز الجزء الدلالي. اعتمادًا على الموقف ، من الأفضل في بعض الأحيان ارتكاب خطأ مرة واحدة لصالح الاعتراف غير الصحيح بالإجابة ، وعدم إجبار المستخدم على الرد بوضوح. إذا أضفت شيئًا ذا نمط إلى الإجابات المتوقعة (نعم *) ، فستعمل غالبًا كما ينبغي ، وستكون الحالات التي قيل لنا فيها "اتركني وحدي بالفعل" استثناءً ولن يحدث شيء بالغ الأهمية في منطق البرنامج. إذا كنا ، بالطبع ، في حاجة إلى إجابة دقيقة ، نظرًا للاعتراف غير الصحيح الذي ستكون هناك عواقب لا رجعة فيها في النظام ، فعلينا الحصول على إجابة واضحة من المستخدم. أو إذا لم نكن متأكدين من الإجابة ، فيمكننا طلب معلومات إضافية مفقودة.
يجب النظر في كل حالة من حالات التفاعل بشكل منفصل.
في المثال أعلاه ، نواجه حقيقة أن المستخدمين يطلبون قصيدة أقصر أو عن شخصية معينة ("هل هناك أقصر؟" ، "دعونا نتحدث عن عذراء الثلج").
هنا لدينا خيارات - إما إضافة مستويات قائمة جديدة ، ولكن لا تنسَ "إنسانية" الحوار أو تستجيب لمثل هذه الطلبات وفقًا لتوقعات المستخدم ، ولكن لا تقدمها بشكل صريح.
بغض النظر عن الطريقة التي فكرنا بها من خلال جزء الحوار هذا في البداية ، أدركنا أن الاستخدام الحقيقي من شأنه أن يُظهر رغبات المستخدم بشكل أفضل ، لأننا بدأنا مهارتنا الأولى مع الحد الأدنى من الوظائف ، مضيفًا تدريجيًا إمكانيات Snow Maiden ، بالإضافة إلى ردود الفعل على الطلبات التي لم نطلبها من قبل.
باستخدام واجهات برمجة التطبيقات لجهة خارجيةلقد لاحظنا أنه من أجل توفير بعض الوظائف المفيدة في مهاراتهم ، يلجأ المطورون أحيانًا إلى الاستخدام المفرط لواجهات برمجة التطبيقات الخاصة بالجهات الخارجية. ومع ذلك ، لا تنسَ أن لا يتجاوز زمن الاستجابة لسجل الويب الخاص بك 1.5 ثانية. في بعض الأحيان ، يمكن أن يتسبب ذلك في تجربة مستخدم سلبية بمهارة تجب إما بشكل صحيح أو تكتب: "حدث خطأ ما".
ميزات التعرف على الكيانات المسماة : ليس كل الأسماء ، يتم التعرف على المدن بشكل صحيح ، وبالتالي فمن المستحسن أن توفر هذا في المهارات الخاصة بك. حتى الآن ، من أجل عدم حرمان الطفل من اسم ياندكس غير معروف من التواصل مع Snow Maiden ، كان علينا اللجوء إلى بعض "العكازات". خذ هذا في الاعتبار على الفور عند التطوير ، حتى لا تزعج المستخدمين بأسماء Glory أو Hope ، على سبيل المثال. نأمل أن ياندكس إصلاح هذا قريبا.
نطق الكلماتلا تتطابق
أداة اختبار تركيب الكلام الحالية دائمًا مع ما لديك بالفعل في مهارتك. لا تكون كسول لتوفير آليات لإضافة النص إلى أي من إجاباتك. لقد اعتمدنا على محرك Yandex ، وأصبح من الصعب الآن
تسمية بعض العبارات في مهارتنا (بدون تغييرات كبيرة في الكود). سوف ننظر للمستقبل.
وظائف PHP بسيطة ولكنها فعالة
لمقارنة الكلمات المشوشة ساعدت كثيراً:
similar_text () ،
levenshtein () ، لغات أخرى لديها أيضا أدوات مماثلة. حسنا ، وبطبيعة الحال ، التعبيرات العادية ، حيث بدونها.
سمحت هذه الوظائف ، على سبيل المثال ، بقبول الإجابة الصحيحة على اللغز بإجابة صحيحة جزئياً - لم يتم التعرف عليها بالضبط ، في حالات انحراف مختلفة.
هذا ، بالطبع ، للمتخصصين في
البرمجة اللغوية العصبية (معالجة اللغة الطبيعية) لن يبدو جديًا ، ولكن مرة أخرى ، ملاحظة - للمبتدئين.
نقاط الضعف الحالية منصة
سأوجز بإيجاز المطالبات الرئيسية للمطورين لـ Yandex Dialogs ، وهو ما لاحظته في الدردشة.
طويلة ، وغالبا ما يبدو غير منطقي ، والاعتدال. يحدث أن مهارتك لا تخضع للاعتدال نظرًا لأن لديك ، على سبيل المثال ، اسم مهارة شائع جدًا ، على سبيل المثال ، "الطقس في شبه جزيرة القرم" ، على الرغم من أن لديك بالفعل مهارة تحمل اسمًا مشابهًا - "Weather in Severodvinsk". لذا ، فأنا أفهم أن هذا يرجع إلى حقيقة أن متطلبات الأسماء وكلمات التنشيط كانت أبسط في وقت سابق وأن
ابن صديقة والدته كان محظوظًا بالنسبة للرجل ، ولن تنجح. ابحث عن عبارة مختلفة أو حاول استخدام
علامة تجارية .
الوثائق ليست دائما صحيحة. تتطور المنصة نفسها بسرعة ، ولا تتم متابعة الوثائق ، ويتم تفسيرها أحيانًا بشكل مختلف من قبل المستخدمين وممثلي Yandex.
يوفر النظام الأساسي حتى الآن
الأدوات الأساسية فقط لمهارات تصحيح الأخطاء .
عندما تضيف مهارة إلى لوحة المطورين ، يجب أن يستجيب webhook بالفعل بشكل صحيح ، أو سيحدث خطأ في التحقق من الصحة. أي نوع من الخطأ ، والذي تم إرسال JSON والذي جاء - لن نرى. إذا تمكنت من إضافة المهارة ، فستحصل على الحد الأدنى من اللوحة مع محتويات آخر طلب استجابة - وهذا كل شيء! لا توجد وسيلة للتحقق من كيفية عمل هذا الصوت في الواقع على الجهاز قبل التعديل. يوجد
محاكي تابع لجهة خارجية يعمل بشكل غير مستقر إلى حد ما ، وليس في جميع المتصفحات ، ولا يتوافق مع البروتوكول الحالي.
هناك رغبات وطلبات أخرى من المطورين ، مثل: التكامل مع المنزل الذكي ، وتحديد المحاور من خلال صوته ، والقدرة على اختيار أصوات للمهارات مع توليد أفضل ، وتكامل أنظمة الدفع ، والتكامل مع حساب ياندكس ، بما في ذلك العمل بمهارة مع أجهزة مختلفة تحت مستخدم واحد ، ونظام مدروس من المهارات الخاصة. ولكن هذه وظائف تتطلب دراسة متأنية ، ومن وجهة نظر السلامة والراحة. أعتقد أن Yandex ستكون قادرة على توفير هذه الفرص عندما تنفذها في المستوى المناسب. ومع ذلك ، يمكن أن تتداخل بشكل كبير مع المبتدئين للتعود على النظام الأساسي مشاكل في الاعتدال وتصحيح الأخطاء والوثائق غير ذات الصلة في بعض الأحيان.
يساعد ذلك في دعم
الدردشة على الاستجابة بشكل مطرد ، كما تم تنظيم مجتمع أقل خبرة واستجابة ، مما ساعدني كثيرًا ، وسوف يساعدك. يستجيب الدعم للعديد من المطالبات بسرعة كبيرة مع رسائل "يحيط علما" ، "نحن نعرف عن الوثائق ، ونحن سوف إصلاحه" ، "نحن نقرر الاعتدال". حسنا ، نحن نتطلع إلى ذلك.
لبداية سريعة ،
أنصحك بنشر مهارة خاصة ، حيث يتم فحصها الآن بالحد الأدنى من المتطلبات:
- يتم التحقق من المهارة لمعرفة الاسم وعبارة التنشيط ، لأن القاعدة شائعة لجميع المطورين.
- يجب أن يستجيب Webhook للطلبات بشكل صحيح .
- يجب أن تبلغ المهارة الخاصة عن إغلاق المهارة في عنوان الترحيب. بحيث يتم إخطار المستخدم الذي أطلق بطريق الخطأ.
نصيحة الدردشة:
بمجرد استخدام مهارة منشورة لاختبار مربعات حوارها الأخرى تحسباً للاعتدال عن طريق إرسال الطلبات من خط بحث منشور إلى كتاب مطور ، مع التصفية حسب user_id.
الخاتمة
بشكل عام ، تبدو الواجهة الصوتية نفسها موضوعًا مثيرًا للاهتمام ، وتزايد الطلب عليها في المستقبل ، وأخطط للتعمق فيه ، وقراءة الأدبيات الخاصة ، والتعليمات والنصائح من الخدمات الأجنبية المشابهة (Google ، Amazon ، Siri ، إلخ).
اسمحوا لي أن أذكرك مرة أخرى بمدرسة أليس في ياندكس ، إذا كان شخص مثلي مهتمًا بهذا الموضوع.
عدد قليل من الروابط ذات الصلة:
ياندكس الحوار مدونةقناة يوتيوبحوار سهلكتاب تصميم واجهات المستخدم الصوتيناتاشا: مكتبة لاستخراج الكيانات المسماةقناة Telegram تبلغ عن مهارات جديدةكتالوج المهارة غير الرسمي