Botframework-solutions: لم يتم إنشاء QnAMakerDialog للغات مختلفة

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

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

المساعد الافتراضي والمهارات

بأي لغة هذه؟

المطبوع

ماذا يحدث؟

عندما يتم إنشاء QnAMakerDialog بلغة معينة (مثل DE) ، فسيتم حل هذه اللغة دائمًا على الرغم من تغيير اللغة أو استخدام مستخدم آخر لغة مختلفة (مثل EN).

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

المستخدم 1 : يرسل الكلام إلى الروبوت (DE) ؛
بوت: إن بوت يحل الكلام كما سين جيم نية، وخلق QnADialog جديدة، مع knowledgebaseId كما إيد من الحوار:

`` private registerQnADialog(knowledgebaseId: string, cognitiveModels: ICognitiveModelSet, locale: string): void { const qnaEndpoint: QnAMakerEndpoint | undefined = cognitiveModels.qnaConfiguration.get(knowledgebaseId); if (qnaEndpoint == undefined){ throw new Error( تعذر العثور على تكوين قاعدة معارف QnA Maker بالمعرف: $ {KnowledgebaseId} .`)؛
}

    if (this.dialogs.find(knowledgebaseId) == undefined) {
        const qnaDialog: QnAMakerDialog = new QnAMakerDialog(
            qnaEndpoint.knowledgeBaseId,
            qnaEndpoint.endpointKey,
            // The following line is a workaround until the method getQnAClient of QnAMakerDialog is fixed
            // as per issue https://github.com/microsoft/botbuilder-js/issues/1885
            new URL(qnaEndpoint.host).hostname.split('.')[0],
            this.templateEngine.generateActivityForLocale('UnsupportedMessage', locale) as Activity,
            // Before, instead of 'undefined' a '0.3' value was used in the following line
            undefined,
            this.templateEngine.generateActivityForLocale('QnaMakerAdaptiveLearningCardTitle', locale).text,
            this.templateEngine.generateActivityForLocale('QnaMakerNoMatchText', locale).text
        );

        qnaDialog.id = knowledgebaseId;

        this.addDialog(qnaDialog);
    }
}

""

الروبوت : يرسل إجابة QnA إلى المستخدم 1 في لغة المستخدم 1 (DE)
المستخدم 2 : يرسل الكلام إلى الروبوت (بالإنكليزية) ؛
بوت: إن بوت يحل الكلام كما سين جيم نية (نفسه إرسالها المستخدم 1)، يتم إنشاء أي QnaMakerDialog جديدة لحوار واحد مع نفسه knowledgebaseId موجود بالفعل.
الروبوت : يبدأ الروبوت مرة أخرى في حوار QnA (مضاف من المستخدم 1 التكرار) ويحصل على الإجابة من قاعدة المعرفة (DE) للمستخدم الأول ؛
البوت : يرسل رسالة إلى المستخدم 2 في لغة المستخدم 1.

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

سيتم إنشاء QnAMakerDialog آخر باستخدام اللغة الصحيحة ومعرف قاعدة المعرفة الصحيح.

Bot Services Kobuk bug customer-replied-to customer-reported in-progress

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

مرحبًا @ Batta32 ،

شكراً لدعمكم ، يبدو أن المشكلة قد تم حلها من خلال مكتبة حلول الروبوت الجديدة التي قمت بدمجها من فرعكم :) هل لديك تقدير تقريبي لموعد إصدارها؟

ال 22 كومينتر

شكرا @ tommyJimmy87. بمجرد حصولنا على أي تحديث يتعلق بتنفيذ Dependency Injection ، سنعود إليك!

مرحبًا @ tommyJimmy87 ، أنشأنا PR # 3559 الذي يحل هذه المشكلة بدمج حقن التبعية في الروبوتات.

إذا كنت لطيفًا جدًا ، فهل يمكنك التحقق من صحة التغييرات باتباع خطوات إعادة المحاولة هذه واستخدام هذا الفرع :

  1. اذهب إلى مكتبة حلول الروبوتات
  2. قم بتنفيذ npm install لتثبيت التبعيات
  3. نفّذ npm run build لتجميع الحل
  4. نفّذ npm pack لإنشاء ملف tgz
  5. انتقل إلى نموذج المساعد الظاهري
  6. استخدام TGZ إنشاؤها في مساعد الظاهري package.json على النحو التالي:

    "bot-Solutions": "PATH TO BOT-SOLUTIONS TGZ"

  7. انشر المساعد الافتراضي بلغات متعددة

  8. اتبع الخطوات لإعادة إنتاج سيناريو QnAMakerDialog الذي ذكرته

أخيرًا وليس آخرًا ، كما ذكرنا ، تحتوي العلاقات العامة على التغييرات التالية:

  1. تنفيذ حقن التبعية (مكتبة inversifyjs ) في المساعد الافتراضي ومهارة TypeScript
  2. تحديث القوالب

سنهتم بإجابتك 😊.

مرحبًا @ Batta32 ،

شكراً لدعمكم ، يبدو أن المشكلة قد تم حلها من خلال مكتبة حلول الروبوت الجديدة التي قمت بدمجها من فرعكم :) هل لديك تقدير تقريبي لموعد إصدارها؟

HI @ Batta32 ، لقد لاحظت أنه عندما أحاول إجراء اختبارات الوحدة ، يظهر لي خطأ: TypeError: Reflect.hasOwnMetadata is not a function .
هل هذا لأنك لم تقم بترحيل الاختبارات لاستخدام العكس؟

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

مرحبًا @ Batta32 ، لقد حللنا هذه المشكلة بإضافة هذا الاستيراد إلى ملف js الأساسي للاختبار: require('reflect-metadata');

مرحبًا @ tommyJimmy87 - لم نتمكن من إعادة

توصلنا إلى أسئلة :

  1. هل تستخدم فرعنا للتحقق من هذه التغييرات؟
  2. ما المكون الذي لديك المشكلة؟
  3. هل يمكنك مشاركة خطوات repro التي اتبعتها؟

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

  • نحن نستخدم هذا الفرع : feature/southworks/dependency-injection-implementation
  • نموذج مساعد ظاهري من TypeScript
  • نموذج مهارة TypeScript

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

  1. اذهب إلى مكتبة حلول الروبوتات
  2. قم بتنفيذ npm install لتثبيت التبعيات
  3. نفّذ npm run build لتجميع الحل
  4. نفذ npm pack لإنشاء .tgz
  5. انتقل إلى نموذج المساعد الظاهري
  6. استخدم .tgz الذي تم إنشاؤه في حزمة Virtual Assistant.json على النحو التالي:
  7. "حلول الروبوت": ""
  8. قم بتنفيذ npm install لتثبيت التبعيات
  9. نفّذ npm run build لتجميع الحل
  10. نفّذ npm run test لتجميع الحل
  11. تحقق من تنفيذ الاختبار

image

image

مرحبًا @ tommyJimmy87 - أضفنا التغييرات المقترحة في PR # 3559.

قمنا بتحديث Virtual Assistant & Skill bots بإضافة ملفات اختبارات الاستيراد التالية: require('reflect-metadata'); وجه التحديد في BotTestBase و SkillTestBase ، من أجل تجنب المشكلة التي ذكرتها فيما يتعلق باختبارات الوحدة.

يمكنك متابعة هذه الخطوات لاختبار التغييرات في Virtual Assistant and Skill.

شكرا،
دييغو.

مرحبًا @ Batta32 و @ DiegoCardozo94 ،

لدي سؤال عام ولكن بما أنني أستخدم هذا الفرع في مشروعنا بالفعل على الرغم من أنه لم يتم إصداره ، فسأطرحه هنا.

في السيناريو الخاص بنا ، لدينا MS Teams باعتبارها القناة الوحيدة ، أرى أن TeamsActivityHandler يُستخدم فقط في VA وليس في عينة المهارة ، فهل هذا صحيح؟ لأنني ربما كنت أتوسع أيضًا في مهارة TeamsActivityHandler والتي دفعتني إلى مشكلة واحدة على وجه التحديد: في الأساس لا يتم استدعاء طريقة endOfConversation بعد cancel في المهارة DefaultActivityHandler . ولكن ربما ينبغي علي التحول إلى ملحق ActivityHandler "العادي" ضمن المهارات. هل يمكنك مساعدتي أو بالأحرى إعطائي ملاحظات على هذا؟

شكرا

مرحبًا @ tommyJimmy87 ، تم TeamsActivityHandler من ActivityHandler والذي يضيف دعمًا لأحداث وتفاعلات Microsoft Teams المحددة.

المساعد الافتراضي هو الذي يتفاعل مع قناة Microsoft Teams في مخطط المساعد الافتراضي المتصل بالمهارات ، لذلك يجب أن يمتد DefaultActivityHandler للمساعد الظاهري من TeamsActivityHandler ، وليس المهارة في هذا المخطط المذكور ، كما ترون في العينات.

ينفذ DefaultActivityHandler الخاص بالمساعد الظاهري في القوالب / العينات TeamsActivityHandler الذي يتيح سيناريوهات Teams خارج الصندوق.

لقد بحثنا في الوثائق التالية التي يمكنك أيضًا مراجعتها:

أخبرنا إذا كان هذا يساعدك.

هذه المشكلة قديمة لأنها كانت مفتوحة لمدة 30 يومًا بدون أي نشاط. أزل التسمية أو التعليق الذي لا معنى له وإلا فسيتم إغلاق هذا في غضون 5 أيام

@ Batta32 لم يتم تحرير هذا بعد أليس كذلك؟

مرحبًا @ tommyJimmy87 - نحن بصدد وضع اللمسات الأخيرة على خطة لإصدار حزم جديدة. بمجرد حصولنا على أي تحديث ، سنعود إليك هنا 😊.

@ Batta32 أي تحديثات؟

مرحبًا cwhitten ، تم إصلاح هذه المشكلة بالفعل مع PR # 3559 والذي تم تحديثه بالتغييرات المطلوبة لـ peterinnesmsft .

بمجرد دمج PR ، ستكون التغييرات موجودة في الفرع next .

ما هي حالة # 3559؟ @ batta32

آخر تحديث لها كان في 11 سبتمبر

شكرا

مرحبًا tonyanziano ، PR # 3559 جاهز للمراجعة ودمج التغييرات المطلوبة لـpeterinnesmsft.

بمجرد دمج PR ، ستكون التغييرات موجودة في الفرع next .

هذه المشكلة قديمة لأنها كانت مفتوحة لمدة 30 يومًا بدون أي نشاط. أزل التسمية أو التعليق الذي لا معنى له وإلا فسيتم إغلاق هذا في غضون 5 أيام

joshgummersall ما هي حالة # 3752؟ متى تتوقع دمج ذلك؟

بمجرد أن يقوم شخص آخر بمراجعته والموافقة عليه!

@ joshgummersall ،

هل يمكنك العمل على دمج العلاقات العامة حتى يمكن إغلاق هذه التذكرة؟

@ virtual-josh ، إنها تنتظر مراجعة واحدة أخرى للعلاقات العامة ؛ تمت الموافقة عليه من قبل مراجع واحد بالفعل. لست متأكدًا من الذي يتعين عليه إجراء اختبار ping لإجراء مراجعة ثانية.

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