Botframework-solutions: غير قادر على إنهاء المهارة بشكل صحيح عندما يلغى المستخدم عند بدء المهارة من مربع الحوار الفرعي في VA

تم إنشاؤها على ١ يونيو ٢٠٢٠  ·  16تعليقات  ·  مصدر: microsoft/botframework-solutions

ما المشروع المتأثر؟

مساعد افتراضي

بأي لغة هذه؟

تيبسكريبت

ماذا يحدث؟

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

ما هي خطوات إعادة إظهار هذه المشكلة؟

إنشاء مهارة و VA. ابدأ المهارة من "حوار الصعود إلى VA. حاول إلغاء المهارة باستخدام المقاطعة وتحقق مما إذا كانت المهارة تتلقى نهاية المحادثة

ماذا كنت تتوقع أن يحدث؟

هل يمكنك مشاركة أي سجلات أو ناتج خطأ وما إلى ذلك؟

بدأت مجموعة حوارات المهارة في مربع حوار فرعي
[{id: 'MainDialog'،
الحالة: {الخيارات: {} ، القيم: [الكائن] ، مؤشر الخطوة: 1}} ،
{id: 'TextPrompt'، state: {options: [Object]، state: {}}}،
{المعرف: "TransferDialog2"،
الحالة: {حوارات: [كائن]} ،
الإصدار: '-43530585'}]

مجموعة مهارات الحوار بدأت من الحوار الرئيسي
[{id: 'MainDialog'،
الحالة: {الخيارات: {} ، القيم: [الكائن] ، مؤشر الخطوة: 2}} ،
{id: 'dlpskill' ، الحالة: {}}]

أي لقطات أو سياق إضافي؟

Needs Triage Bug

التعليق الأكثر فائدة

ال 16 كومينتر

شكرًا لك @ tomSauret847 على الإبلاغ عن هذه المشكلة! بمجرد حصولنا على أي تحديث سنعود إليك 😊.

مرحبا @ tomSauret847! لم ننجح في محاولة إعادة إظهار هذه المشكلة.

لدينا بعض الأسئلة فيما يتعلق بالخطوات الخاصة بك.

  • هل تستخدم المولد[email protected] ؟
  • هل تقوم بتشغيل المهارة بإرسال الكلام المنطوق أثناء
  • هل قمت بتحديث VA من أجل إعادة توجيه النية إلى المهارة؟ إذا كان الأمر كذلك ، فما هي التعديلات التي قمت بها؟
  • ماذا تقصد بـ TransferDialog2 ؟ هل هو مرادف لـ onboardingDialog ؟

لاحظنا أن هناك عملية تحقق في طريقة interruptDialog للحوار الرئيسي لـ VA ، والتي تتحول فقط إلى مهارة أخرى إذا كان مربع الحوار الحالي ينتمي إلى مهارة.
في حالة onboardingDialog إرجاع خطأ ، وبالتالي لا يتم مقاطعته لبدء نموذج Skill.

هذه هي بيئتنا:

لقد اتخذنا الخطوات التالية لإعادة إظهار المشكلة:

  1. نشر المساعد الافتراضي والمهارة
  2. قم بتوصيل المساعد الافتراضي بالمهارة
  3. قم بتشغيل كلا الروبوتين في Bot Emulator
  4. أرسل كلمة مهارة خلال onboardingDialog لـ VA
  5. لم تتم تهيئة المهارة حيث لم يتم الانتهاء من onboardingDialog

image

شكرا!

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

    const identifiedSkill: IEnhancedBotFrameworkSkill | undefined = this.skillsConfig.skills.get('agenttransfer');
    if (identifiedSkill !== undefined) {
        await this.activeSkillProperty.set(sc.context, identifiedSkill);
        return sc.beginDialog('agenttransfer', skillDialogArgs);

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

أنا أستخدم TypeScript VA
مهارة TypeScript
لقد قمت بتحديث كليهما بناءً على التغييرات التي تم نشرها في الفرع "التالي" من الريبو للتأكد من تحديثهما
يتم تشغيل المهارة وتعمل بشكل صحيح ، ولا تتلقى EOC عندما يختار العميل الإلغاء من جميع الحوارات النشطة.

شكرا @ tomSauret847 لجميع المعلومات 😊.
سنستمر في إعادة إظهار المشكلة ، وسنخبرك بأي تحديث.

@ tomSauret847 ، نريد أن نؤكد لك أننا فهمنا المشكلة بشكل صحيح.

بناءً على ما قلته في تعليقك الأخير ، سنعمل على إعادة إنشاء السيناريو التالي:

  1. قم بإنشاء نموذج مساعد افتراضي
  2. قم بإنشاء نموذج مهارة
  3. قم بتعديل VA onboardingDialog حتى يستدعي نموذج المهارة. سنبني تعديلاتنا على المقتطف المشترك.
  4. أرسل إلغاء بمجرد أن يبدأ نموذج المهارة
  5. يجب أن يفشل إلغاء نموذج المهارة

هذا هو مدى فهم أن سير العمل الخاص بك.
image

شكرًا VictorGrycuk هذا هو سير العمل الصحيح للسيناريو الذي نقوم بتنفيذه. يمكننا الحصول على المهارة للعمل بشكل صحيح أثناء المحادثة ، ولكن عندما يقوم العميل بالإلغاء ، لن يتم إعادة تعيين المهارة لأنها لا تتلقى أبدًا نهاية المحادثة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

VladPapacostea-SM picture VladPapacostea-SM  ·  3تعليقات

andhdo picture andhdo  ·  3تعليقات

hansmbakker picture hansmbakker  ·  3تعليقات

kendomen picture kendomen  ·  4تعليقات

waqarghani picture waqarghani  ·  3تعليقات