المدوَّنة العربية
تعزيز Amazon Connect وAmazon Lex بقدرات الذكاء الاصطناعي المولّد
أصبحت خدمات العملاء الذاتية ضرورة ملحّة في مراكز الاتصال، لكن تنفيذها بكفاءة عالية يتطلب مواجهة تحديات خاصة. توفر خدمة Amazon Lex لمركز اتصال Amazon Connect الخاص بك خدمات روبوتات محادثة متطورة، بما في ذلك التعرُّف التلقائي على الكلام (ASR) وفهم اللغة الطبيعية (NLU) عبر قنوات الصوت والنص. يقوم النظام بتحليل الكلام أو النص الوارد، ويفهم الغرض منه، ثم يستجيب بالشكل المناسب لتلبية احتياجات المستخدم.
قد يكون لدى المتصلين لهجات مختلفة وطرق نطق متنوعة، إضافة إلى اختلاف أساليبهم في استخدام اللغة. كما أن وجود الضوضاء في الخلفية يزيد من صعوبة التعرف على الكلام وفهم العبارات بدقة. على سبيل المثال، قد يفهم النظام عبارة “أريد تتبع طلبي” خطأً على أنها “أريد طبع طلبي”. هذه الأخطاء في الفهم تؤدي إلى إحباط العملاء، حيث يضطرون إلى تكرار طلباتهم أو يتم توجيههم بشكل خاطئ، أو في النهاية تحويلهم إلى موظفي خدمة العملاء – مما يزيد من تكاليف التشغيل.
يتيح Amazon Bedrock للمطورين الوصول إلى العديد من نماذج الأساس (FM) الفعّالة لبناء وتوسيع نطاق التطبيقات القائمة على الذكاء الاصطناعي المولّد بسهولة. تم تدريب النماذج المتوفرة في Amazon Bedrock، مثل Amazon Nova و Amazon Titan وAnthropic Claude، باستخدام كميات هائلة من البيانات، مما يمنحها قدرات متقدمة، منها القدرة على تصنيف الجمل و التعامل مع الأسئلة والإجابات والفهم الدلالي المحسّن حتى مع وجود أخطاء في التعرف على الكلام.
نستعرض في هذا المقال كيفية الاستفادة من نماذج الأساس (FM) في Amazon Bedrock لتطوير قدرات Amazon Lex على فهم الغرض من طلبات العملاء، مما يساعد على رفع مستوى تجربة الخدمة الذاتية لعملائك.
نظرة عامة على الحل
يعتمد الحل على تكامل الخدمات التّالية من AWS وهي: Amazon Connect وAmazon Lex وAWS Lambda وAmazon Bedrock وتتم العمليّة وفق الخطوات التالية:
- يتكامل مسار اتصال Amazon Connect مع روبوت Amazon Lex عبر خانة
GetCustomerInput.
- عند فشل الروبوت في فهم الغرض من طلب المتصل يتم تشغيل وظيفة Lambda.
- تقوم وظيفة Lambda بتوظيف نموذج أساس من نماذج Amazon Bedrock لتحليل نص العميل.
- يحدد النموذج الغرض من الاتصال باستخدام قدراته المتقدمة في فهم اللغة الطبيعية.
- توجه وظيفة Lambda الروبوت للتعامل مع المكالمة وفقاً للغرض المحدد من قبل نموذج الأساس.
بهذه الخطوات يعزز دمج نماذج الأساس من Amazon Bedrock قدرة روبوتات المحادثة في Amazon Lex على فهم طلبات العملاء بدقة، حتى مع وجود أخطاء في التعرف على الكلام. وينتج عن ذلك معالجة سلسة للمكالمات، مما يقلل من الحاجة إلى تحويل المكالمات لموظفي خدمة العملاء ويجنب العملاء عناء تكرار طلباتهم.
يوضح الرسم التالي بنية الحل وسير العمل.
وفي الأقسام التالية، سنلقي نظرة على المكونات الرئيسية للحل بمزيد من التفصيل.
وظائف Lambda وإطار عمل LangChain
عندما يستدعي روبوت المحادثة ضمن Amazon Lex وظيفة Lambda، فإنه يرسل بيانات تحتوي على معلومات الروبوت ونص العميل. تقوم وظيفة Lambda باسترجاع المعلومات اللازمة وتحليلها باستخدام LangChain، وهو إطار عمل مفتوح المصدر يسهل دمج النماذج اللغوية الكبيرة مع مصادر البيانات والتطبيقات.
تتضمّن عمليّة المُعالجة قيام وظيفة Lambda باستدعاء نموذج أساس من Amazon Bedrock لتحليل البيانات وتحديد طلب العميل ومستوى الدقة في الفهم. فإذا تجاوز مستوى الدقة القيمة المحددة (80% مثلاً)، تقوم وظيفة Lambda بإرسال الطلب المحدد إلى Amazon Lex لمعالجته. أما إذا كان مستوى الدقة أقل من القيمة المحددة، فيتم تفعيل المسار الاحتياطي FallbackIntent
لمعالجة الطلب بشكل بديل.
التعلم السياقي و هندسة التوجيه واستدعاء النماذج
يعتمد الحلّ على تقنية التعلُّم السياقي – in-context learning – لتمكين نماذج الأساس المُستخدمة من معالجة طلبات العملاء بكفاءة عالية. تتميز هذه التقنية بقدرتها على تمكين النماذج اللغوية الكبيرة من فهم المهام وتنفيذها اعتماداً على السياق المقدم في التوجيهات، دون الحاجة إلى تدريب مسبق أو ضبط خاص لكل مهمة.
تبدأ عملية المعالجة بتقديم توجيهات محددة تشرح المهام المطلوبة بوضوح. بعد ذلك، تتولى وظيفة Lambda مهمة استرجاع وإدراج المعلومات الضرورية، بما في ذلك الأغراض المحددة من قبل روبوت المحادثة في Amazon Lex، والعبارات المتوقعة من العملاء. يتم كل ذلك بشكل ديناميكي لضمان دقة النتائج وسرعة الاستجابة.
أجرينا اختبارات شاملة لنموذج التوجيه التالي على أحدث إصدارات Anthropic Claude (v1.2 وv2)، مع إضافة تحسينات مهمة لرفع كفاءة النظام. استخدمنا علامات XML لتحسين دقة النتائج، كما خصصنا مساحة للتحليل المنطقي قبل تحديد الغرض النهائي. يتضمن النظام خانتين رئيسيتين: {intent_block}
لتخزين معرفات وأوصاف الأغراض، و{input}
لاستقبال نص العميل. ولضمان أداء متناسق، أضفنا علامات اقتباس خاصة (“`) وتسلسل <STOP>
للتحكم في المخرجات وحجمها.
بعد استدعاء النموذج، نتلقى الإجابة التّالية:
فرز الأغراض المتاحة وفقاً لمعطيات جلسة الاتصال
يمكن تحسين دقة النظام في تحديد غرض العميل عند استخدامه ضمن مسار اتصال Amazon Connect. يتم ذلك من خلال تعريف خاصية available_intents
في خانة Get customer input، حيث تُحدد قائمة الأغراض المتاحة باستخدام فواصل. هذا التخصيص يوجه وظيفة Lambda لاستخدام الأغراض المحددة فقط في تحليلها، مما يرفع كفاءة النموذج اللغوي ويسرّع عملية المعالجة. وفي حال عدم تحديد خاصية available_intents
، يقوم النظام تلقائياً باستخدام جميع الأغراض المتاحة في روبوت المحادثة.
استجابة وظيفة Lambda لـ Amazon Lex
عندما يتوصل النموذج اللغوي إلى تحديد غرض العميل، تقوم وظيفة Lambda بإرسال استجابة منسقة وفق المتطلبات المحددة من قِبل Amazon Lex.
في حال تجاوز مستوى الثقة في تحديد الغرض القيمة المطلوبة، يقوم النظام بإرسال إجراء Delegate
إلى Amazon Lex. هذا الإجراء يوجه النظام لمعالجة الغرض المحدد ثم إعادة النتيجة النهائية إلى Amazon Connect. تكون صيغة الاستجابة كالتالي:
عندما يقل مستوى الثقة عن القيمة المحددة أو يتعذر تحديد الغرض، يتم إصدار إجراء Close لتوجيه Amazon Lex نحو تنفيذ FallbackIntent
ونقل التحكم إلى Amazon Connect. وتكون صيغة الاستجابة كالتالي:
يمكنكم الاطلاع على البرنامج النصي الكامل لهذا المشروع في مستودع GitHub.
المتطلبات الأساسية
قبل البدء بالمشروع، يجب توفر المتطلبات التالية:
المعرفة التقنية
- إلمام بأساسيات تشغيل مركز اتصال Amazon Connect وتكامله مع Amazon Lex وAmazon Bedrock
متطلبات الحساب
الوسائل والبرمجيات المطلوبة
- واجهة سطر أوامر AWS (AWS CLI) مع الإعدادات المناسبة
- برنامج Docker مثبت ويعمل بشكل صحيح
- Python إصدار 3.9 أو أحدث
- أداة jq لمعالجة البيانات
خطوات تنفيذ الحل
لتنفيذ الحل، اتبع الخطوات التالية:
- قم باستنساخ المستودع البرمجي
- نفّذ الأمر التالي لتهيئة البيئة وإنشاء مستودع Amazon ECR لوظيفة Lambda. حدد منطقة AWS واسم المستودع المطلوب إنشاؤه:
- قم بتحديث قيم
ParameterValue
في ملفscripts/parameters.json
:ParameterKey ("AmazonECRImageUri")
– رابط المستودع من الخطوة السابقةParameterKey ("AmazonConnectName")
– اسم فريد من اختياركParameterKey ("AmazonLexBotName")
– اسم فريد لروبوت المحادثةParameterKey ("AmazonLexBotAliasName")
– الاسم المستعار (القيمة الافتراضية “prodversion”)ParameterKey ("LoggingLevel")
– مستوى التسجيل (القيمة الافتراضية “INFO”، قيم أخرى متاحة: DEBUG، WARN، ERROR)ParameterKey ("ModelID")
– معرّف النموذج (القيمة الافتراضية “anthropic.claude-instant-v1”)ParameterKey ("ConfidenceScore")
– درجة الثقة (القيمة الافتراضية “0.75”)
- قم بتنفيذ الأمر التالي لإنشاء مجموعة CloudFormation ونشر الموارد:
للاستخدام مسار اتصال نموذجي متوفر (بدلاً من إنشائه من الصفر)، استخدم الملف المتوفر في filelocation: /contactflowsample/samplecontactflow.json
:
- سجّل الدخول إلى Amazon Connect instance الخاص بك (تأكد من امتلاك صلاحيات تحرير المسارات)
- من لوحة التحكم، اختر Routing ثم Contact flows
- أنشئ مساراً جديداً مطابقاً للنوع المراد استيراد
- اختر Save and Import flow
- حدد الملف واختر Import
ملاحظة: عند الاستيراد إلى مسار موجود، سيتم تحديث اسم المسار الحالي.
الخطوات النهائية:
- راجع وحدّث المراجع حسب الحاجة
- احفظ المسار المستورد (Save) أو انشره (Save and Publish)
- أكمل الإعدادات التالية:
- حدّث خانات
GetCustomerInput
بمعلومات روبوت Amazon Lex الصحيحة - اضبط رقم الهاتف ضمن إعدادات الإدارة وفقاً لمسار الاتصال أو IVR المستورد
- حدّث خانات
التحقق من الإعدادات
تأكد من أن وظيفة Lambda المنشأة بواسطة مجموعة CloudFormation تمتلك دور IAM يتمتع بالصلاحيات اللازمة لاسترجاع معلومات روبوتات المحادثة والأغراض من Amazon Lex (صلاحيات العرض والقراءة)، بالإضافة إلى صلاحيات Amazon Bedrock المناسبة (صلاحيات العرض والقراءة).
في إعدادات روبوت Amazon Lex الخاص بك، تحقق من صحة إعداد وظيفة Lambda للاسم المستعار واللغة المحددة. بالنسبة لـ FallBackIntent
، تأكد من ضبط خيار Fulfillmentis
على وضع Active
لضمان تشغيل الوظيفة عند تفعيل FallBackIntent
.
في هذه المرحلة، سيقوم روبوت Amazon Lex تلقائياً بتشغيل وظيفة Lambda، وسيعمل الحل بسلاسة.
اختبار الحل
دعونا نلقي نظرة على نموذج إعدادات لغرض في Amazon Lex، ونختبر كفاءة النموذج اللغوي الكبير (LLM) في التعامل مع مدخلات متنوعة تشمل أخطاء إملائية ونحوية، وحتى عبارات بلغات مختلفة.
يعرض الشكل التالي نتائج الاختبار. في الجانب الأيسر نرى اسم الغرض ووصفه مع نموذج بسيط للعبارات المتوقعة. ويظهر الجانب الأيمن قدرة النموذج اللغوي على تحديد الغرض الصحيح بدقة، حتى مع الحد الأدنى من الإعدادات في Amazon Lex. في هذا الاختبار، تظهر رسالة تأكيد بسيطة تدل على نجاح تحديد الغرض.
التنظيف
لحذف جميع الموارد المستخدمة في المشروع، نفّذ الأمر التالي لإزالة مستودع ECR ومجموعة CloudFormation:
الخاتمة
يتيح دمج النماذج اللغوية الكبيرة من Amazon Bedrock مع Amazon Lex تحسين قدرة روبوتات المحادثة على فهم طلبات العملاء بدقة عالية. هذا التكامل يوفر تجربة خدمة ذاتية سلسة تناسب شرائح متنوعة من العملاء، متجاوزاً تحديات اللهجات وأنماط النطق المتنوعة، مما يؤدي إلى تعزيز رضا العملاء بشكل ملموس.
لمعرفة المزيد حول الذكاء الاصطناعي المولّد، نقترح الاطلاع على الموارد التالية:
- كيف يمكن لقادة مراكز الاتصال الاستعداد للذكاء الاصطناعي المولّد.
- تطبيقات عملية للذكاء الاصطناعي المولّد
- استعداد قادة التقنية للذكاء الاصطناعي المولّد
- تهيئة مؤسستك للذكاء الاصطناعي المولّد
- مقدمة إلى الذكاء الاصطناعي المولّد مع سوامي سيفاسوبرامانيان
لاستكشاف المزيد حول تطبيقات حلول الخدمة الذاتية المدعومة بالذكاء الاصطناعي المولّد، يمكنكم الاطلاع على دليل نشر نظام الأسئلة والأجوبة الذاتي باستخدام QnABot على AWS، والمدعوم بـ Amazon Lex مع Amazon Kendra وAmazon Bedrock.