1. نظرة عامة
في عالم البيع بالتجزئة السريع الوتيرة اليوم، من المهم تقديم خدمة عملاء استثنائية مع توفير تجارب تسوّق مخصّصة. سنُصطحبك في رحلة فنية عبر إنشاء تطبيق دردشة يستند إلى المعرفة ومصمَّم للإجابة عن أسئلة العملاء وتوجيه استكشاف المنتجات وتخصيص نتائج البحث. ويجمع هذا الحل المبتكر بين فعالية AlloyDB لتخزين البيانات، ومحرك تحليلات داخل الشركة لفهم السياق، وGemini (نموذج لغوي كبير) للتحقق من مدى الصلة بالموضوع، وأداة Agent Builder من Google لبدء التشغيل السريع للمساعد الحواري الذكي.
التحدي: يتوقّع عملاء البيع بالتجزئة في الوقت الحالي الحصول على إجابات فورية واقتراحات للمنتجات تتوافق مع الخيارات المفضَّلة لديهم. وغالبًا ما لا توفر طرق البحث التقليدية هذا المستوى من التخصيص.
الحل: يعالج تطبيق المحادثات المستند إلى المعرفة هذا التحدي مباشرةً. وتستفيد هذه الميزة من قاعدة معلومات غنية مستمَدة من بيانات البيع بالتجزئة لفهم نية العملاء والردّ عليهم بذكاء وتقديم نتائج ملائمة للغاية.
ما ستُنشئه
كجزء من هذا التمرين المعملي (الجزء 2)، سوف:
- إنشاء وكيل في Vertex AI Agent Builder
- دمج أداة AlloyDB مع موظّف الدعم
المتطلبات
2. البنية
تدفق البيانات: لنلقِ نظرة فاحصة على كيفية انتقال البيانات عبر نظامنا:
الاستيراد:
يتم تحميل بيانات البيع بالتجزئة (المستودع وأوصاف المنتجات وتفاعلات العملاء) باستمرار في AlloyDB.
محرك الإحصاءات:
سنستخدم AlloyDB كمحرّك إحصاءات لتنفيذ ما يلي:
- استخراج السياق: يحلّل المحرّك البيانات المخزّنة في AlloyDB لفهم العلاقات بين المنتجات والفئات وسلوك العملاء وما إلى ذلك حسب الاقتضاء.
- تضمين العناصر: يتم إنشاء عمليات التضمين (تمثيلات رياضية للنص) لكل من طلب بحث المستخدم والمعلومات المخزّنة في AlloyDB.
- البحث المتجه: يجري المحرك عملية بحث عن التشابه، ويقارن طلبات البحث بتضمين أوصاف المنتجات والمراجعات والبيانات الأخرى ذات الصلة. ويحدد ذلك "الجار الأقرب" الـ 25 الأكثر صلة.
التحقّق من Gemini:
يتم إرسال هذه الردود المحتملة إلى Gemini لتقييمها. ويحدِّد Gemini ما إذا كانت هذه المراجع ملائمة وآمنة للمشاركة مع المستخدم.
إنشاء الردود:
يتم تنظيم الردود التي تم التحقّق منها في صفيف JSON ويتم تجميع المحرّك بالكامل في دالة Cloud Run بدون خادم يتمّ استدعاؤها من "أداة إنشاء موظّفي الدعم".
سبق أن تم تناول الخطوات المذكورة أعلاه في الجزء الأول من التمرين.
ناقشنا التفاصيل الفنية لإنشاء محرّك تحليلات يستند إلى المعرفة ويدعمه مساعد التسوّق الذكي. والآن، لنستكشف كيف نستفيد من سحر أداة Agent Builder لإضفاء الحيوية على هذا المحرك من خلال واجهة محادثة. تأكَّد من توفّر عنوان URL لنقطة النهاية قبل بدء الجزء 2. في ما يلي الخطوة التي نتناولها في هذا التمرين المعملي:
التفاعل الحواري:
تقدِّم أداة Agent Builder الردود على المستخدمين بتنسيق لغة طبيعية، ما يسهِّل المحادثة المتبادلة.
3- قبل البدء
إنشاء مشروع
- في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
- تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع .
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ومزوّدة مسبقًا بـ bq. انقر على "تفعيل Cloud Shell" في أعلى "وحدة تحكّم Google Cloud".
- بعد الاتصال بخدمة Cloud Shell، عليك التحقّق من أنّك سبق أن تم مصادقة حسابك وأنّه تم ضبط المشروع على معرّف مشروعك باستخدام الأمر التالي:
gcloud auth list
- شغّل الأمر التالي في Cloud Shell للتأكد من معرفة الأمر gcloud بمشروعك.
gcloud config list project
- إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
- تفعيل واجهات برمجة التطبيقات المطلوبة يمكنك استخدام وحدة التحكّم للبحث عن كل منتج أو استخدام هذا الرابط كبديل لأمر gcloud.
وفي حال عدم تضمين أيّ واجهة برمجة تطبيقات، يمكنك تفعيلها دائمًا خلال عملية التنفيذ.
يمكنك الرجوع إلى المستندات حول أوامر gcloud واستخدامها.
ملاحظة مهمة: تأكَّد أيضًا من إكمال الجزء 1 من الدرس التطبيقي لإكمال هذا الإجراء.
4. إنشاء وكيل
التعرّف على أداة "إنشاء موظّف دعم"
Agent Builder هي أداة فعالة وبسيطة تتيح لنا إنشاء وكلاء المحادثة بسرعة وكفاءة. ويسهّل ذلك عملية تصميم مسارات المحادثات ودمج قواعد المعلومات والاتصال بواجهات برمجة التطبيقات الخارجية. في حالتنا، سنستخدم أداة إنشاء الوكلاء للاتصال بسلاسة بنقطة نهاية Cloud Function التي صممناها في الجزء الأول، ما يتيح لمساعد التسوّق الوصول إلى قاعدة المعلومات لدينا في مجال البيع بالتجزئة والردّ على استفسارات العملاء بذكاء.
إنشاء الوكيل
لنبدأ بإنشاء هذا الوكيل الجديد للإجابة عن أسئلة المستخدمين بشأن منتجات الملابس.
- ابدأ بتسجيل الدخول إلى منصّة Agent Builder. إذا طُلب منك تفعيل واجهة برمجة التطبيقات، انقر على متابعة وتفعيل واجهة برمجة التطبيقات.
- انقر على "CREATE APP" (إنشاء تطبيق) واعطاء وكيلك اسمًا وصفيًا (على سبيل المثال، "مساعِد التسوّق في المتاجر").
- انقر على "نوع التطبيق" "وكيل".
- . أدخِل اسمًا وصفيًا لوكيلك، مثل "مساعد التسوّق للبيع بالتجزئة". وتعيين المنطقة كـ us-central1
- أدخِل تفاصيل موظّف الدعم:
- غيِّر اسم موظّف الدعم إلى "موظّف دعم التسوّق في المتاجر".
- إضافة "الهدف" أدناه:
You are a shopping assistant agent! Your job is to help the customer search for their ideal apparels, allow them to add items to their cart, remove items from their cart, and review items in their cart. Once a user is done searching, open the search results in a user friendly html page.
- احفظ النموذج في هذه المرحلة واترك تعليمات الإعداد فارغة في الوقت الحالي.
- بعد ذلك، انقر على "الأدوات" من قائمة التنقّل، ثم على "إنشاء".
إدخال اسم الأداة: أداة تسويق البيع بالتجزئة
إدخال وصف الأداة:
This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.
إدخال المخطط: OpenAPI بتنسيق YAML:
هذا هو الجزء الذي نستخدم فيه نقطة نهاية الواجهة الخلفية لتشغيل موظّف الدّعم. انسخ مواصفات OpenAPI التالية واستبدِل العنصر النائب لعنوان URL (المحاط بأقواس زاوية) بنقطة نهاية Cloud Function:
openapi: 3.0.0
info:
title: AlloyDB Product Matcher
description: A Cloud Function to query AlloyDB for product matches based on user search text.
version: 1.0.0
servers:
- url: <<https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/alloy-gem>>
paths:
/:
post:
summary: Find matching products based on search text.
operationId: apparelSearch
requestBody:
description: JSON object containing the search text.
required: true
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: The user's search query for product matching.
responses:
'200':
description: Successful response with a JSON array of matching products.
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
description: Product ID.
category:
type: string
description: Product category.
sub_category:
type: string
description: Product sub-category.
uri:
type: string
description: Product URI or URL.
description:
type: string
description: Product description.
literature:
type: object
description: JSON object containing match information from the ML model.
properties:
MATCH:
type: string
description: Whether the product matches the search query (YES/NO).
PERCENTAGE:
type: string
description: Percentage of match.
DIFFERENCE:
type: string
description: Description of differences between the search and product.
'500':
description: Internal server error.
اترك الإعدادات الأخرى على قيمها التلقائية وانقر على "حفظ".
- نريد إضافة إعدادات "الأداة" إلى "تعليمات" موظّف الدعم، لذا ننصحك بالرجوع إليه في هذه المرحلة. أضف ما يلي إلى العنصر النائب للتعليمات (تذكر أن المسافات البادئة مهمة في تحديد التدفق):
- Greet the user and answer their question to the best of your knowledge.
- Summarize the user's request and ask them to confirm that you understood correctly.
- Check if the request has details like gender, color, material, style and other key apparel details already.
- If not, seek clarifying details.
- If the search request is very broad, then ask the user to narrow down the request with specific details that you believe could be personal preferences.
- Once all the necessary details are met, summarize your final understanding of the request with the user.
- Use ${TOOL: Retail Shopping Tool} to help the user with their task.
- If the request has unrelated input text, gracefully convey that you don't have information on that topic.
- Do not give product availability information outside the source that is provided to you in ${TOOL: Retail Shopping Tool}.
- Do not assist with any information unless you are certain that you know the answer and it is grounded in the source of truth.
- Thank the user for their business and say goodbye.
تأكَّد من اختيار الأداة "أداة التسوّق للبيع بالتجزئة" في قسم "الأدوات المتاحة"، ثم احفظ الوكيل مرة أخرى.
5- اختبار الوكيل
في الجزء الأيسر، من المفترض أن يظهر لك قسم "وكيل المعاينة" الذي يتيح لك اختبار الوكيل.
كما ترون في لقطة الشاشة أدناه، لقد أحرزت مستخدمًا وبدأت محادثتي بطلب الحصول على قميص أبيض بمطبوعات زرقاء:
في ما يلي استجابة JSON:
هذه هي نتيجة JSON الأولية من دالة Cloud التي تعالج البحث عن التشابه في AlloyDB. هذا كل شيء! تم اتخاذ كل الخطوات اللازمة مع الوكيل.
6- نموذج مسار المحادثة
في هذه المرحلة، يمكنك اختبار سير عمل موظّف الدعم الحواري (المحادثي) وتكراره:
User: I'm looking for women's boots for winter.
Agent: (OpenAPI call to Cloud Function that works with AlloyDB Similarity Search)
Cloud Function: (Processes query, returns JSON array)
Agent: Based on your preferences, here are some options: [Product 1, Product 2, Product 3]. Would you like to see more details about any of these?
User: No, That is all. Bye!
Agent: Have a good day!
طلبات بأمثلة قليلة
لنفترض الآن أنّك تريد عرض النتيجة في موظّف الدعم الحواري بتنسيق رسم معيّن يتضمّن الصور والروابط. وسنفعل ذلك باستخدام أمثلة على المحادثات المعروفة أيضًا باسم "طلبات التوجيه باستخدام عبارات قصيرة".
وهذا يعني أنّنا نريد إضافة بعض الأمثلة إلى أداة إنشاء موظّفي الدعم للحصول على تنسيق نتائج متّسق.
في إحدى لقطات الشاشة السابقة في قسم اختبار موظّف الدعم، يظهر ردّ موظّف الدعم على النحو التالي: "أرى ذلك. أنت تبحث عن قميص أبيض بطبعة زرقاء...". انتقِل إلى هذا الردّ أو أنشِئ محادثة اختبارية جديدة من الجزء الأيسر من صفحة الوكيل:
- اكتب ما يلي في الحقل "إدخال إدخال المستخدم" :
سيظهر لك ردّ مماثل لما يلي:
وسترى أيضًا مصفوفة JSON التي تعرضها نقطة نهاية واجهة برمجة التطبيقات.
- انقر الآن على "اسم الوكيل" (كما هو موضّح في الصورة أدناه المميّزة بعلامة اختيار حمراء) في هامش قسم المعاينة وسيتم تمييز جميع علامات التبويب في قسم معاينة المحادثة. الآن، انقر على "حفظ المثال" في أعلى يسار قسم المعاينة. ستظهر
- احفظ المحادثة باسم معروض "ردّ يتضمّن صورًا" أو ما شابه، ثم انقر على "إنشاء".
- انتقل الآن إلى علامة تبويب الرد المميزة بعلامة اختيار سوداء في الصورة أعلاه واستبدل النص "أرى. أنت تبحث عن صندل أصفر. هل هذا صحيح؟" مع ما يلي:
I see you are looking for yellow sandals. Here are a few options for you:
<!DOCTYPE html>
<html>
<body>
<h2>Featured Sandals</h2>
<table style="overflow-x: auto; white-space: nowrap;">
<tr>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/d27dbd8e9666b9af2d72fbfde315f76d_images.jpg" alt="Yellow sandals from Estd. 1977" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/b7a479fe5f56457e930541a789c5df68_images.jpg" alt="Yellow sandals from Gliders" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/b6c813734b29b89d1055fd000ea50743_images.jpg" alt="Yellow sandals from Rocia" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/ee0e918c229e76e0e7e61712e9d2ecb3_images.jpg" alt="Yellow flip flops from Numero Uno" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/5bdd4c9e739205e28ee134ff7849bc60_images.jpg" alt="Yellow flip flops from Numero Uno" width="300">
</td>
</tr>
</table>
</body>
</html>
- انقر على "حفظ" في أعلى الصفحة.
كرِّر العملية لعدد النماذج الذي تريده مع استخدام صيغ مختلفة وسير مختلف للمحادثة.
الآن، يمكنك اختبارها باستخدام إدخال مستخدم:
في ما يلي بعض الأنواع الأخرى من الردود:
ما مِن إجراءات أخرى مطلوبة. لقد أنشأنا واختبرنا "وكيل حواري" لتطبيقنا للبيع بالتجزئة.
7- النشر والدمج
بعد أن تصبح راضيًا عن الوكيل، يمكنك نشره بسهولة على قنوات مختلفة باستخدام عمليات الدمج التي توفّرها أداة إنشاء الوكلاء. ويمكنك تضمينه في موقعك الإلكتروني أو دمجه مع منصات المراسلة الرائجة أو حتى إنشاء تطبيق مخصّص للأجهزة الجوّالة. يمكننا أيضًا استخدام واجهة برمجة التطبيقات Agent Builder API مباشرةً في تطبيقات عميل الويب، والتي تناولناها في هذه المدوّنة.
8. تَنظيم
لتجنُّب تحصيل رسوم من حسابك على Google Cloud مقابل الموارد المُستخدَمة في هذه المشاركة، يُرجى اتّباع الخطوات التالية:
9. تهانينا
تهانينا! من خلال دمج إمكانات محرّك الإحصاءات المخصّص مع الواجهة البديهية لتطبيق "أداة إنشاء موظّفي الدعم"، أنشأنا مساعد تسوّق ذكيًا في مجال البيع بالتجزئة يقدّم تجارب مخصّصة ويجيب عن الأسئلة بدقة، ما يؤدي في النهاية إلى زيادة رضا العملاء والمبيعات. من خلال الجمع بين إمكانات AlloyDB وVertex AI والبحث عن المتّجهات، حققنا قفزة كبيرة إلى الأمام في تسهيل الوصول إلى عمليات البحث السياقي والبحث عن المتّجهات وجعلها أكثر فعالية واستنادًا إلى المعنى الحقيقي.