شعار زيفيرنت

قم بتمكين روبوتات المحادثة للمحادثة للاتصالات الهاتفية باستخدام Amazon Lex و Amazon Chime SDK

التاريخ:

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

Amazon Chime SDK عبارة عن مجموعة من مكونات الاتصالات في الوقت الفعلي التي يمكن للمطورين استخدامها لإضافة الصوت والمراسلة والفيديو ومشاركة الشاشة إلى تطبيقات الويب والجوال. يتيح تكامل الصوت Amazon Chime SDK PSTN مع Amazon Lex للمطورين تطوير واجهات محادثة للمكالمات من شبكة الهاتف العامة أو إليها. يمكنك الآن إنشاء تطبيقات الخدمة الذاتية التي تعمل بالذكاء الاصطناعي مثل المحادثة أنظمة الاستجابة الصوتية التفاعلية (IVRs) والوكلاء الظاهريون وتطبيقات الهاتف الأخرى التي تستخدم بروتوكول بدء الجلسة (SIP) للاتصالات الصوتية.

بالإضافة إلى ذلك ، أطلقنا العديد من الميزات الجديدة. Amazon Voice Focus لـ PSTN يوفر قمعًا عميقًا للضوضاء قائمًا على التعلم لتقليل الضوضاء غير المرغوب فيها على المكالمات. يمكنك الآن أيضًا استخدام ميزة تحويل النص إلى كلام التي تعتمد على التعلم الآلي (ML) في تطبيقك من خلال تكاملنا الأصلي مع الأمازون بولي. تم الآن دمج جميع الميزات مباشرةً مع صوت Amazon Chime SDK PSTN.

في هذا المنشور ، نعلمك كيفية ذلك بناء نظام الرد الصوتي التفاعلي للمحادثة لخدمة سفر وهمية تقبل الحجوزات عبر الهاتف باستخدام Amazon Lex.

حل نظرة عامة

يجعل صوت Amazon Chime SDK PSTN من السهل على المطورين إنشاء تطبيقات هاتفية مخصصة باستخدام خفة الحركة وبساطة التشغيل التي لا تحتاج إلى خادم AWS لامدا الوظائف.

لهذا الحل ، نستخدم المكونات التالية:

  • صوت Amazon Chime SDK PSTN
  • AWS لامدا
  • أمازون ليكس
  • الأمازون بولي

تتكامل Amazon Lex محليًا مع Amazon Polly لتوفير إمكانات تحويل النص إلى كلام. في هذا المنشور ، نقوم أيضًا بتمكين Amazon Voice Focus لتقليل ضوضاء الخلفية على المكالمات الهاتفية. في السابقة آخر، أوضحنا كيفية التكامل مع Amazon Lex v1 باستخدام واجهة API. هذا لم يعد مطلوبا. تم الآن استبدال العبء الثقيل للعمل مع Amazon Lex و Amazon Polly ببعض استدعاءات الوظائف البسيطة.

يوضح الرسم البياني التالي التصميم عالي المستوى لنظام chatbot Amazon Chime SDK Amazon Lex.

لمساعدتك على تعلم الإنشاء باستخدام خدمة الصوت Amazon Chime SDK PSTN ، قمنا بنشر ملف مستودع شفرة المصدر والوثائق شرح كيفية عمل شفرة المصدر. الكود المصدري هو في شكل ورشة عمل ، مع كل برنامج نموذجي مبني على الدرس السابق. الدرس الأخير هو كيفية إنشاء روبوت محادثة كامل يعمل بنظام Amazon Lex عبر الهاتف. هذا هو الدرس الذي نركز عليه في هذا المنشور.

كجزء من هذا الحل ، يمكنك إنشاء الموارد التالية:

  • تطبيق وسائط SIP - كائن مُدار يحدد دالة Lambda للاستدعاء.
  • حكم المسبار - كائن مُدار يحدد رقم هاتف ليتم التشغيل عليه وأي كائن يديره تطبيق وسائط SIP لاستخدامه لاستدعاء وظيفة Lambda.
  • رقم الهاتف (إلزامي) - رقم هاتف Amazon Chime SDK PSTN مخصص لتلقي المكالمات الهاتفية.
  • وظيفة لامدا - وظيفة مكتوبة بتنسيق Typescript تتكامل مع خدمة الصوت PSTN. يتلقى الدعوات من تطبيق وسائط SIP ويرسل الإجراءات التي ترشد تطبيق وسائط SIP لأداء مهام Amazon Polly و Amazon Lex.

يتم نشر الكود التجريبي في جزأين. مثال روبوت الدردشة Amazon Lex هو أحد سلسلة أمثلة ورش العمل التي تعلم كيفية استخدام صوت Amazon Chime SDK PSTN. في هذا المنشور ، أكمل الخطوات عالية المستوى التالية لنشر روبوت المحادثة:

  1. تكوين روبوت الدردشة Amazon Lex.
  2. استنساخ الرمز من مستودع GitHub.
  3. انشر الموارد المشتركة لورشة العمل (بما في ذلك رقم الهاتف).
  4. انشر وظيفة Lambda التي تربط Amazon Lex برقم الهاتف.

نذهب من خلال كل خطوة بالتفصيل.

المتطلبات الأساسية المسبقة

يجب أن تكون لديك المتطلبات الأساسية التالية:

  • العقدة V12 + / npm مثبتة
  • تم تثبيت واجهة سطر أوامر AWS (AWS CLI)
  • تم تثبيت Node Version Manager (nvm)
  • تم تثبيت نصوص الوحدات النمطية للعقدة aws-sdk (باستخدام nvm)
  • تم تكوين بيانات اعتماد AWS للحساب والمنطقة اللذين تستخدمهما لهذا العرض التوضيحي
  • أذونات لإنشاء تطبيقات وسائط Amazon Chime SIP وأرقام الهواتف (تأكد من أن حصة الخدمة الخاصة بك us-east-1 or us-west-2 لأرقام الهواتف والموصلات الصوتية وتطبيقات وسائط SIP وقواعد SIP لم يتم الوصول إليها)
  • يجب أن يتم النشر في us-east-1 or us-west-2 لتتماشى مع موارد الصوت PSTN

للحصول على إرشادات التثبيت التفصيلية ، بما في ذلك برنامج نصي يمكنه أتمتة التثبيت ومشروع AWS Cloud Development Kit (AWS CDK) لإنشاء بيئة تطوير Amazon Elastic Compute Cloud (Amazon EC2) ، راجع تعليمات ورشة العمل.

تكوين روبوت الدردشة Amazon Lex

يمكنك إنشاء روبوت صوتي كامل للمحادثة باستخدام Amazon Lex. في هذا المثال ، تستخدم وحدة تحكم Amazon Lex لإنشاء روبوت. نتخطى الخطوات التي تم من خلالها إنشاء وظيفة Lambda لـ Amazon Lex. ينصب التركيز هنا على كيفية توصيل صوت Amazon Chime PSTN بـ Amazon Lex. للحصول على إرشادات حول إنشاء روبوتات Amazon Lex المخصصة ، يرجى الرجوع إلى أمازون ليكس: كيف يعمل. في هذا المثال ، نستخدم مثال "رحلة الكتاب" المبني مسبقًا.

قم بإنشاء روبوت

لإنشاء روبوت المحادثة الخاص بك ، أكمل الخطوات التالية:

  1. قم بتسجيل الدخول إلى وحدة تحكم Amazon Lex في نفس المنطقة التي قمت بنشر موارد Amazon Chime SDK فيها.

يجب أن يكون هذا في أي منهما us-east-1 or us-west-2، اعتمادًا على مكان نشر موارد Amazon Chime SDK باستخدام AWS CDK.

  1. في جزء التنقل ، اختر البوتات.
  2. اختار إنشاء بوت.
  3. أختار ابدأ بمثال.

  4. في حالة اسم البوت، أدخل اسمًا (على سبيل المثال ، BookTrip).
  5. في حالة الوصف، أدخل وصفًا اختياريًا.
  6. تحت أذونات IAM، حدد أنشئ دورًا باستخدام أذونات Amazon Lex الأساسية.
  7. تحت قانون حماية خصوصية الأطفال على الإنترنت، حدد لا.

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

  1. تحت مهلة جلسة الخمول¸ اضبط مهلة الجلسة على دقيقة واحدة.
  2. يمكنك تخطي ملف الإعدادات المتقدمة والقسم الخاص به.
  3. اختار التالى.

  1. في حالة اختر اللغة، اختر لغتك المفضلة (لهذا المنشور ، نختار الإنجليزية (الولايات المتحدة)).
  2. في حالة التفاعل الصوتي، اختر الصوت الذي تريد استخدامه.
  3. يمكنك إدخال عينة صوتية والاختيار بلايستشن لاختبار العبارة والتأكيد على أن الصوت يرضيك.
  4. اترك الإعدادات الأخرى على وضعها الافتراضي.
  5. اختار تم. .

  1. في مجلة تحقيق قسم ، أدخل النص التالي للإنجاز الناجح:
Thank you!  We'll see you on {CheckInDate}.

  1. تحت الاستجابات الختامية، أدخل النص التالي للرسالة:

Goodbye!

  1. اختار حفظ القصد.
  2. اختار البناء.

تستغرق عملية البناء بضع لحظات حتى تكتمل. عند الانتهاء ، يمكنك اختبار الروبوت على وحدة تحكم Amazon Lex.

قم بإنشاء نسخة

لقد قمت الآن ببناء الروبوت. بعد ذلك ، نقوم بإنشاء نسخة.

  1. انتقل إلى إصدارات صفحة الروبوت الخاص بك (تحت اسم الروبوت في جزء التنقل).
  2. اختار إنشاء نسخة.
  3. اقبل كل القيم الافتراضية واختر إنشاء.

نسختك الجديدة مدرجة الآن في إصدارات .

قم بإنشاء اسم مستعار

بعد ذلك ، نقوم بإنشاء اسم مستعار.

  1. في جزء التنقل ، اختر الأسماء المستعارة.
  2. اختار إنشاء الاسم المستعار.
  3. في حالة الاسم المستعار الاسم ، أدخل اسمًا (على سبيل المثال ، إنتاج).
  4. تحت محام مع إصدار ، اختر نسخة 1 في القائمة المنسدلة.

إذا كان لديك أكثر من إصدار واحد من الروبوت ، فيمكنك اختيار الإصدار المناسب هنا.

  1. اختار إنشاء.

الاسم المستعار مدرج الآن في ملف الأسماء المستعارة .

  1. على الأسماء المستعارة الصفحة ، اختر الاسم المستعار الذي أنشأته للتو.
  2. تحت السياسة القائمة على الموارد، اختر تعديل.
  3. أضف السياسة التالية ، التي تسمح لصوت Amazon Chime SDK PSTN باستدعاء Amazon Lex نيابةً عنك:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMALexAccess", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": "lex:StartConversation", "Resource": "<Resource-ARN-for-the-Alias>", "Condition": { "StringEquals": { "AWS:SourceAccount": "<account-num>" }, "ArnEquals": { "AWS:SourceArn": "arn:aws:voiceconnector:<region>:<account-num>:*" } } } ]
}

في الكود السابق ، قدم المورد ARN (الموجود أعلى مربع النص مباشرةً) ، وهو ARN لاسم الروبوت المستعار. قدم أيضًا رقم حسابك وحدد المنطقة التي تنشر فيها (us-east-1 or us-west-2). يحدد ذلك ARN لمستوى التحكم في الصوت PSTN في حسابك.

  1. اختار حفظ لتخزين السياسة.
  2. اختار نسخ بجوار مورد ARN لاستخدامه في خطوة لاحقة.

تهانينا! لقد قمت بتكوين روبوت Amazon Lex!

في تطبيق روبوت محادثة حقيقي ، من شبه المؤكد أنك ستنفذ وظيفة Lambda لمعالجة النوايا. يركز هذا البرنامج التجريبي على شرح كيفية الاتصال بصوت Amazon Chime SDK PSTN ، لذلك لا ندخل في هذا المستوى من التفاصيل. للمزيد من المعلومات، قم بالإشارة إلى إضافة وظيفة Lambda باعتبارها Code Hook.

استنساخ مستودع GitHub

يمكنك الحصول على رمز ورشة العمل بأكملها عن طريق استنساخ المستودع:

git clone https://github.com/aws-samples/amazon-chime-sdk-pstn-audio-workshop
cd amazon-chime-sdk-pstn-audio-workshop

انشر الموارد المشتركة لورشة العمل

تستخدم ورشة العمل هذه AWS CDK لأتمتة نشر جميع الموارد المطلوبة (باستثناء الروبوت Amazon Lex ، وهو ما قمت به بالفعل). للنشر ، قم بتشغيل الكود التالي من جهازك الطرفي:

cdk bootstrap
yarn deploy

تنشر AWS CDK الموارد. نقوم بخطوة التمهيد للتأكد من تهيئة AWS CDK بشكل صحيح في المنطقة التي تنشر فيها. لاحظ أن هذه الأمثلة تستخدم الإصدار 2 من AWS CDK.

يحتوي المستودع على سلسلة من الدروس المصممة لشرح كيفية تطوير تطبيقات الصوت PSTN. نوصي بمراجعة هذه المستندات لفهم الأساسيات باستخدام نماذج البرامج القليلة الأولى. يمكنك بعد ذلك مراجعة مجلد برنامج نموذج Lambda. أخيرًا ، اتبع الخطوات لتكوين الكود الخاص بك ثم نشره. في المحطة ، أدخل الأمر التالي:

cd lambdas/call-lex-bot

قم بتكوين وظيفة Lambda الخاصة بك لاستخدام Amazon Lex bot ARN

فتح src/index.ts ملف شفرة المصدر لوظيفة Lambda وتحرير المتغير botAlias بالقرب من أعلى الملف (قدم ARN الذي نسخته سابقًا):

const botAlias = "<Resource-ARN-for-the-Alias>";

يمكنك الآن نشر الروبوت مع نشر الغزل وتبديل وظيفة Lambda الجديدة في صوت PSTN مع تبديل الغزل. يمكنك أيضًا ملاحظة النص الترحيبي في ملف startBotConversationAction موضوع:

const startBotConversationAction = { Type: "StartBotConversation", Parameters: { BotAliasArn: "none", LocaleId: "en_US", Configuration: { SessionState: { DialogAction: { Type: "ElicitIntent" } }, WelcomeMessages: [ { ContentType: "PlainText", Content: "Welcome to AWS Chime SDK Voice Service. Please say what you would like to do. For example: I'd like to book a room, or, I'd like to rent a car." }, ] } }
}

يبدأ Amazon Lex الروبوت ويستخدم Amazon Polly لقراءة هذا النص. هذا يعطي المتصل تحية ، ويخبرهم بما يجب عليهم فعله بعد ذلك.

كيف يعمل

يضيف المثال التالي المزيد من الإجراءات إلى ما تعلمناه في درس الاتصال والجسر. NEW_INBOUND_CALL يصل الحدث ويتم معالجته بنفس الطريقة. نقوم بتمكين Amazon Voice Focus (الذي يعزز قدرة Amazon Lex على فهم الكلمات) ثم نقوم على الفور بتسليم المكالمة الواردة إلى الروبوت باستخدام StartBotConversation عمل. مثال على هذا الإجراء يشبه الكائن التالي:

{ "SchemaVersion": "1.0", "Actions": [ { "Type": "Pause", "Parameters": { "DurationInMilliseconds": "1000" } }, { "Type": "VoiceFocus", "Parameters": { "Enable": true, "CallId": "2947dfba-0748-46fc-abc5-a2c21c7569eb" } }, { "Type": "StartBotConversation", "Parameters": { "BotAliasArn": "arn:aws:lex:us-east-1:<account-num>:bot-alias/RQXM74UXC7/ZYXLOINIJL", "LocaleId": "en_US", "Configuration": { "SessionState": { "DialogAction": { "Type": "ElicitIntent" } }, "WelcomeMessages": [ { "ContentType": "PlainText", "Content": "Welcome to AWS Chime SDK Voice Service. Please say what you would like to do. For example: I'd like to order flowers." } ] } } } ]
}

عندما يعيد الروبوت ملف ACTION_SUCCESSFUL في الحدث ، يتم تضمين البيانات التي تم جمعها بواسطة برنامج Amazon Lex bot في الحدث. يتم تضمين البيانات التي تم جمعها من الروبوت ، ويمكن لوظيفة Lambda استخدام تلك البيانات إذا لزم الأمر. ومع ذلك ، فإن الممارسة الشائعة لبناء تطبيقات Amazon Lex هي معالجة البيانات بالوظيفة المرتبطة ببرنامج Amazon Lex bot. يتم توفير أمثلة عن الحدث والإجراء الذي تم إرجاعه في ملف توثيق ورشة العمل لهذه الدورة.

مخطط تسلسل

يوضح الرسم البياني التالي تسلسل المكالمات التي تم إجراؤها بين صوت PSTN ووظيفة Lambda:

للحصول على شرح أكثر تفصيلاً للعملية ، يرجى الرجوع إلى وثائق ورشة العمل.

تنظيف

لتنظيف الموارد المستخدمة في هذا العرض التوضيحي وتجنب تكبد المزيد من الرسوم ، أكمل الخطوات التالية:

  1. في الوحدة الطرفية ، أدخل الرمز التالي:
yarn destroy

  1. ارجع إلى مجلد ورشة العمل (cd ../../) وأدخل الرمز التالي:
yarn destroy

تم تدمير مكدس AWS CloudFormation الذي تم إنشاؤه بواسطة AWS CDK ، وإزالة جميع الموارد المخصصة.

وفي الختام

في هذا المنشور ، تعلمت كيفية إنشاء ملف استجابة صوتية تفاعلية تحادثية (IVR) باستخدام صوت Amazon Lex و Amazon Chime SDK PSTN. يمكنك استخدام هذه الأساليب لبناء نظامك الخاص لتقليل أوقات حل مكالمات العملاء وأتمتة الاستجابات الإعلامية لمكالمات عملائك.

لمزيد من المعلومات، راجع مستودع جيثب المشروع و استخدام خدمة Amazon Chime SDK PSTN Audio.


عن المؤلف

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

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟