المدوَّنة العربية
تعزيز HAQM Connect وHAQM Lex بقدرات الذكاء الاصطناعي المولّد
أصبحت خدمات العملاء الذاتية ضرورة ملحّة في مراكز الاتصال، لكن تنفيذها بكفاءة عالية يتطلب مواجهة تحديات خاصة. توفر خدمة HAQM Lex لمركز اتصال HAQM Connect الخاص بك خدمات روبوتات محادثة متطورة، بما في ذلك التعرُّف التلقائي على الكلام (ASR) وفهم اللغة الطبيعية (NLU) عبر قنوات الصوت والنص. يقوم النظام بتحليل الكلام أو النص الوارد، ويفهم الغرض منه، ثم يستجيب بالشكل المناسب لتلبية احتياجات المستخدم.
قد يكون لدى المتصلين لهجات مختلفة وطرق نطق متنوعة، إضافة إلى اختلاف أساليبهم في استخدام اللغة. كما أن وجود الضوضاء في الخلفية يزيد من صعوبة التعرف على الكلام وفهم العبارات بدقة. على سبيل المثال، قد يفهم النظام عبارة “أريد تتبع طلبي” خطأً على أنها “أريد طبع طلبي”. هذه الأخطاء في الفهم تؤدي إلى إحباط العملاء، حيث يضطرون إلى تكرار طلباتهم أو يتم توجيههم بشكل خاطئ، أو في النهاية تحويلهم إلى موظفي خدمة العملاء – مما يزيد من تكاليف التشغيل.
يتيح HAQM Bedrock للمطورين الوصول إلى العديد من نماذج الأساس (FM) الفعّالة لبناء وتوسيع نطاق التطبيقات القائمة على الذكاء الاصطناعي المولّد بسهولة. تم تدريب النماذج المتوفرة في HAQM Bedrock، مثل HAQM Nova و HAQM Titan وAnthropic Claude، باستخدام كميات هائلة من البيانات، مما يمنحها قدرات متقدمة، منها القدرة على تصنيف الجمل و التعامل مع الأسئلة والإجابات والفهم الدلالي المحسّن حتى مع وجود أخطاء في التعرف على الكلام.
نستعرض في هذا المقال كيفية الاستفادة من نماذج الأساس (FM) في HAQM Bedrock لتطوير قدرات HAQM Lex على فهم الغرض من طلبات العملاء، مما يساعد على رفع مستوى تجربة الخدمة الذاتية لعملائك.
نظرة عامة على الحل
يعتمد الحل على تكامل الخدمات التّالية من AWS وهي: HAQM Connect وHAQM Lex وAWS Lambda وHAQM Bedrock وتتم العمليّة وفق الخطوات التالية:
- يتكامل مسار اتصال HAQM Connect مع روبوت HAQM Lex عبر خانة
GetCustomerInput.
- عند فشل الروبوت في فهم الغرض من طلب المتصل يتم تشغيل وظيفة Lambda.
- تقوم وظيفة Lambda بتوظيف نموذج أساس من نماذج HAQM Bedrock لتحليل نص العميل.
- يحدد النموذج الغرض من الاتصال باستخدام قدراته المتقدمة في فهم اللغة الطبيعية.
- توجه وظيفة Lambda الروبوت للتعامل مع المكالمة وفقاً للغرض المحدد من قبل نموذج الأساس.
بهذه الخطوات يعزز دمج نماذج الأساس من HAQM Bedrock قدرة روبوتات المحادثة في HAQM Lex على فهم طلبات العملاء بدقة، حتى مع وجود أخطاء في التعرف على الكلام. وينتج عن ذلك معالجة سلسة للمكالمات، مما يقلل من الحاجة إلى تحويل المكالمات لموظفي خدمة العملاء ويجنب العملاء عناء تكرار طلباتهم.
يوضح الرسم التالي بنية الحل وسير العمل.
وفي الأقسام التالية، سنلقي نظرة على المكونات الرئيسية للحل بمزيد من التفصيل.
وظائف Lambda وإطار عمل LangChain
عندما يستدعي روبوت المحادثة ضمن HAQM Lex وظيفة Lambda، فإنه يرسل بيانات تحتوي على معلومات الروبوت ونص العميل. تقوم وظيفة Lambda باسترجاع المعلومات اللازمة وتحليلها باستخدام LangChain، وهو إطار عمل مفتوح المصدر يسهل دمج النماذج اللغوية الكبيرة مع مصادر البيانات والتطبيقات.
تتضمّن عمليّة المُعالجة قيام وظيفة Lambda باستدعاء نموذج أساس من HAQM Bedrock لتحليل البيانات وتحديد طلب العميل ومستوى الدقة في الفهم. فإذا تجاوز مستوى الدقة القيمة المحددة (80% مثلاً)، تقوم وظيفة Lambda بإرسال الطلب المحدد إلى HAQM Lex لمعالجته. أما إذا كان مستوى الدقة أقل من القيمة المحددة، فيتم تفعيل المسار الاحتياطي FallbackIntent
لمعالجة الطلب بشكل بديل.
التعلم السياقي و هندسة التوجيه واستدعاء النماذج
يعتمد الحلّ على تقنية التعلُّم السياقي – in-context learning – لتمكين نماذج الأساس المُستخدمة من معالجة طلبات العملاء بكفاءة عالية. تتميز هذه التقنية بقدرتها على تمكين النماذج اللغوية الكبيرة من فهم المهام وتنفيذها اعتماداً على السياق المقدم في التوجيهات، دون الحاجة إلى تدريب مسبق أو ضبط خاص لكل مهمة.
تبدأ عملية المعالجة بتقديم توجيهات محددة تشرح المهام المطلوبة بوضوح. بعد ذلك، تتولى وظيفة Lambda مهمة استرجاع وإدراج المعلومات الضرورية، بما في ذلك الأغراض المحددة من قبل روبوت المحادثة في HAQM Lex، والعبارات المتوقعة من العملاء. يتم كل ذلك بشكل ديناميكي لضمان دقة النتائج وسرعة الاستجابة.
أجرينا اختبارات شاملة لنموذج التوجيه التالي على أحدث إصدارات Anthropic Claude (v1.2 وv2)، مع إضافة تحسينات مهمة لرفع كفاءة النظام. استخدمنا علامات XML لتحسين دقة النتائج، كما خصصنا مساحة للتحليل المنطقي قبل تحديد الغرض النهائي. يتضمن النظام خانتين رئيسيتين: {intent_block}
لتخزين معرفات وأوصاف الأغراض، و{input}
لاستقبال نص العميل. ولضمان أداء متناسق، أضفنا علامات اقتباس خاصة (“`) وتسلسل <STOP>
للتحكم في المخرجات وحجمها.
Human: You are a call center agent. You try to understand the intent given an utterance from the caller.
The available intents are as follows, the intent of the caller is highly likely to be one of these.
<intents>{intents_block} </intents>
The output format is:
<thinking></thinking>
<output>{{"intent_id": intent_id, "confidence": confidence}}</output>
<STOP>
For the given utterance, you try to categorize the intent of the caller to be one of the intents in <intents></intents> tags.
If it does not match any intents or the utterance is blank, respond with FALLBCKINT and confidence of 1.0.
Respond with the intent name and confidence between 0.0 and 1.0.
Put your thinking in <thinking></thinking> tags before deciding on the intent.
Utterance: {input}
Assistant:
بعد استدعاء النموذج، نتلقى الإجابة التّالية:
<thinking> The given utterance is asking
for checking where their shipment is.It matches the intent order status.
</thinking>
{
"intent": "ORDERSTATUSID",
"confidence": 1.0
}
فرز الأغراض المتاحة وفقاً لمعطيات جلسة الاتصال
يمكن تحسين دقة النظام في تحديد غرض العميل عند استخدامه ضمن مسار اتصال HAQM Connect. يتم ذلك من خلال تعريف خاصية available_intents
في خانة Get customer input، حيث تُحدد قائمة الأغراض المتاحة باستخدام فواصل. هذا التخصيص يوجه وظيفة Lambda لاستخدام الأغراض المحددة فقط في تحليلها، مما يرفع كفاءة النموذج اللغوي ويسرّع عملية المعالجة. وفي حال عدم تحديد خاصية available_intents
، يقوم النظام تلقائياً باستخدام جميع الأغراض المتاحة في روبوت المحادثة.
استجابة وظيفة Lambda لـ HAQM Lex
عندما يتوصل النموذج اللغوي إلى تحديد غرض العميل، تقوم وظيفة Lambda بإرسال استجابة منسقة وفق المتطلبات المحددة من قِبل HAQM Lex.
في حال تجاوز مستوى الثقة في تحديد الغرض القيمة المطلوبة، يقوم النظام بإرسال إجراء Delegate
إلى HAQM Lex. هذا الإجراء يوجه النظام لمعالجة الغرض المحدد ثم إعادة النتيجة النهائية إلى HAQM Connect. تكون صيغة الاستجابة كالتالي:
{
"sessionState": {
"dialogAction": {
"type": "Delegate"
},
"intent": {
"name": intent,
"state": "InProgress"
}
}
}
عندما يقل مستوى الثقة عن القيمة المحددة أو يتعذر تحديد الغرض، يتم إصدار إجراء Close لتوجيه HAQM Lex نحو تنفيذ FallbackIntent
ونقل التحكم إلى HAQM Connect. وتكون صيغة الاستجابة كالتالي:
{
"sessionState": {
"dialogAction": {
"type": "Close"
},
"intent": {
"name": intent,
"state": "Fulfilled",
}
}
}
يمكنكم الاطلاع على البرنامج النصي الكامل لهذا المشروع في مستودع GitHub.
المتطلبات الأساسية
قبل البدء بالمشروع، يجب توفر المتطلبات التالية:
المعرفة التقنية
- إلمام بأساسيات تشغيل مركز اتصال HAQM Connect وتكامله مع HAQM Lex وHAQM Bedrock
متطلبات الحساب
الوسائل والبرمجيات المطلوبة
- واجهة سطر أوامر AWS (AWS CLI) مع الإعدادات المناسبة
- برنامج Docker مثبت ويعمل بشكل صحيح
- Python إصدار 3.9 أو أحدث
- أداة jq لمعالجة البيانات
خطوات تنفيذ الحل
لتنفيذ الحل، اتبع الخطوات التالية:
- قم باستنساخ المستودع البرمجي
git clone http://github.com/aws-samples/amazon-connect-with-amazon-lex-genai-capabilities
cd amazon-connect-with-amazon-lex-genai-capabilities
- نفّذ الأمر التالي لتهيئة البيئة وإنشاء مستودع HAQM ECR لوظيفة Lambda. حدد منطقة AWS واسم المستودع المطلوب إنشاؤه:
bash ./scripts/build.sh region-name repository-name
- قم بتحديث قيم
ParameterValue
في ملفscripts/parameters.json
:ParameterKey ("HAQMECRImageUri")
– رابط المستودع من الخطوة السابقةParameterKey ("HAQMConnectName")
– اسم فريد من اختياركParameterKey ("HAQMLexBotName")
– اسم فريد لروبوت المحادثةParameterKey ("HAQMLexBotAliasName")
– الاسم المستعار (القيمة الافتراضية “prodversion”)ParameterKey ("LoggingLevel")
– مستوى التسجيل (القيمة الافتراضية “INFO”، قيم أخرى متاحة: DEBUG، WARN، ERROR)ParameterKey ("ModelID")
– معرّف النموذج (القيمة الافتراضية “anthropic.claude-instant-v1”)ParameterKey ("ConfidenceScore")
– درجة الثقة (القيمة الافتراضية “0.75”)
- قم بتنفيذ الأمر التالي لإنشاء مجموعة CloudFormation ونشر الموارد:
bash ./scripts/deploy.sh region cfn-stack-name
للاستخدام مسار اتصال نموذجي متوفر (بدلاً من إنشائه من الصفر)، استخدم الملف المتوفر في filelocation: /contactflowsample/samplecontactflow.json
:
- سجّل الدخول إلى HAQM Connect instance الخاص بك (تأكد من امتلاك صلاحيات تحرير المسارات)
- من لوحة التحكم، اختر Routing ثم Contact flows
- أنشئ مساراً جديداً مطابقاً للنوع المراد استيراد
- اختر Save and Import flow
- حدد الملف واختر Import
ملاحظة: عند الاستيراد إلى مسار موجود، سيتم تحديث اسم المسار الحالي.
الخطوات النهائية:
- راجع وحدّث المراجع حسب الحاجة
- احفظ المسار المستورد (Save) أو انشره (Save and Publish)
- أكمل الإعدادات التالية:
- حدّث خانات
GetCustomerInput
بمعلومات روبوت HAQM Lex الصحيحة - اضبط رقم الهاتف ضمن إعدادات الإدارة وفقاً لمسار الاتصال أو IVR المستورد
- حدّث خانات
التحقق من الإعدادات
تأكد من أن وظيفة Lambda المنشأة بواسطة مجموعة CloudFormation تمتلك دور IAM يتمتع بالصلاحيات اللازمة لاسترجاع معلومات روبوتات المحادثة والأغراض من HAQM Lex (صلاحيات العرض والقراءة)، بالإضافة إلى صلاحيات HAQM Bedrock المناسبة (صلاحيات العرض والقراءة).
في إعدادات روبوت HAQM Lex الخاص بك، تحقق من صحة إعداد وظيفة Lambda للاسم المستعار واللغة المحددة. بالنسبة لـ FallBackIntent
، تأكد من ضبط خيار Fulfillmentis
على وضع Active
لضمان تشغيل الوظيفة عند تفعيل FallBackIntent
.
في هذه المرحلة، سيقوم روبوت HAQM Lex تلقائياً بتشغيل وظيفة Lambda، وسيعمل الحل بسلاسة.
اختبار الحل
دعونا نلقي نظرة على نموذج إعدادات لغرض في HAQM Lex، ونختبر كفاءة النموذج اللغوي الكبير (LLM) في التعامل مع مدخلات متنوعة تشمل أخطاء إملائية ونحوية، وحتى عبارات بلغات مختلفة.
يعرض الشكل التالي نتائج الاختبار. في الجانب الأيسر نرى اسم الغرض ووصفه مع نموذج بسيط للعبارات المتوقعة. ويظهر الجانب الأيمن قدرة النموذج اللغوي على تحديد الغرض الصحيح بدقة، حتى مع الحد الأدنى من الإعدادات في HAQM Lex. في هذا الاختبار، تظهر رسالة تأكيد بسيطة تدل على نجاح تحديد الغرض.
التنظيف
لحذف جميع الموارد المستخدمة في المشروع، نفّذ الأمر التالي لإزالة مستودع ECR ومجموعة CloudFormation:
bash ./scripts/cleanup.sh region repository-name cfn-stack-name
الخاتمة
يتيح دمج النماذج اللغوية الكبيرة من HAQM Bedrock مع HAQM Lex تحسين قدرة روبوتات المحادثة على فهم طلبات العملاء بدقة عالية. هذا التكامل يوفر تجربة خدمة ذاتية سلسة تناسب شرائح متنوعة من العملاء، متجاوزاً تحديات اللهجات وأنماط النطق المتنوعة، مما يؤدي إلى تعزيز رضا العملاء بشكل ملموس.
لمعرفة المزيد حول الذكاء الاصطناعي المولّد، نقترح الاطلاع على الموارد التالية:
- كيف يمكن لقادة مراكز الاتصال الاستعداد للذكاء الاصطناعي المولّد.
- تطبيقات عملية للذكاء الاصطناعي المولّد
- استعداد قادة التقنية للذكاء الاصطناعي المولّد
- تهيئة مؤسستك للذكاء الاصطناعي المولّد
- مقدمة إلى الذكاء الاصطناعي المولّد مع سوامي سيفاسوبرامانيان
لاستكشاف المزيد حول تطبيقات حلول الخدمة الذاتية المدعومة بالذكاء الاصطناعي المولّد، يمكنكم الاطلاع على دليل نشر نظام الأسئلة والأجوبة الذاتي باستخدام QnABot على AWS، والمدعوم بـ HAQM Lex مع HAQM Kendra وHAQM Bedrock.