AlloyDB और Vertex AI Agent Builder की मदद से स्मार्ट शॉपिंग असिस्टेंट बनाएं - पार्ट 2

1. खास जानकारी

आज के भाग-दौड़ वाले खुदरा कारोबार में, बेहतरीन ग्राहक सेवा देना और पसंद के मुताबिक खरीदारी का अनुभव चालू करना सबसे अहम है. हम आपको जानकारी देने वाले चैट ऐप्लिकेशन को बनाने की तकनीकी यात्रा पर ले जाएंगे. इसमें आपको ग्राहकों के सवालों के जवाब देने, प्रॉडक्ट खोजने में मदद करने, और खोज के बेहतर नतीजे दिखाने की सुविधा मिलेगी. इस नई सुविधा में कई सुविधाएं हैं. इनमें डेटा सेव करने के लिए AlloyDB, संदर्भ के हिसाब से जानकारी पाने के लिए इन-हाउस ऐनलिटिक्स इंजन, और काम की जानकारी के लिए Gemini (लार्ज लैंग्वेज मॉडल) शामिल है. इसके अलावा, इसमें Google के Agent Builder की मदद से, स्मार्ट तरीके से बातचीत करने वाले असिस्टेंट को फटाफट चालू किया जा सकता है.

चुनौती: आधुनिक खुदरा दुकानदारों को तुरंत जवाब चाहिए. साथ ही, उन्हें अपनी पसंद के मुताबिक प्रॉडक्ट के सुझाव भी चाहिए. खोज के पारंपरिक तरीकों से, अक्सर इस लेवल पर खोज के नतीजे मनमुताबिक नहीं मिल पाते.

समाधान: हमारा नॉलेज-ड्रिवन चैट ऐप्लिकेशन, इस चुनौती का सीधा मुकाबला करता है. यह आपके खुदरा डेटा से मिले नॉलेज बेस का फ़ायदा उठाता है, ताकि ग्राहक के इंटेंट को समझा जा सके, बेहतर जवाब दिए जा सकें, और ज़्यादा काम के नतीजे दिए जा सकें.

आपको क्या बनाना है

इस लैब (पार्ट 2) के हिस्से के तौर पर, आपको:

  1. Vertex AI Agent Builder एजेंट बनाना
  2. AlloyDB टूल को एजेंट के साथ इंटिग्रेट करें

ज़रूरी शर्तें

  • Chrome या Firefox जैसा ब्राउज़र
  • आपके पास ऐसा Google Cloud प्रोजेक्ट होना चाहिए जिसमें बिलिंग की सुविधा चालू हो.

2. आर्किटेक्चर

डेटा फ़्लो: आइए देखते हैं कि हमारे सिस्टम में, डेटा कैसे ट्रांसफ़र होता है:

डेटा डालना:

रीटेल डेटा (इन्वेंट्री, प्रॉडक्ट की जानकारी, खरीदारों की गतिविधियां) को AlloyDB में लगातार लोड किया जाता है.

Analytics इंजन:

हम नीचे दी गई कार्रवाइयां करने के लिए, Analytics Engine के तौर पर AlloyDB का इस्तेमाल करेंगे:

  1. कॉन्टेक्स्ट निकालना: इंजन, AlloyDB में सेव किए गए डेटा का विश्लेषण करता है, ताकि प्रॉडक्ट, कैटगरी, ग्राहक के व्यवहार वगैरह के बीच के संबंधों को समझा जा सके.
  2. एम्बेडिंग बनाना: उपयोगकर्ता की क्वेरी और AlloyDB में सेव की गई जानकारी, दोनों के लिए एम्बेडिंग (टेक्स्ट का गणितीय रूप) जनरेट किए जाते हैं.
  3. वेक्टर सर्च: यह इंजन, मिलती-जुलती चीज़ों को खोजता है. इसके लिए, क्वेरी एम्बेडिंग की तुलना प्रॉडक्ट के ब्यौरे, समीक्षाओं, और काम के दूसरे डेटा के एम्बेडिंग से की जाती है. इससे, सबसे ज़्यादा काम के 25 "नज़दीकी नेबर" की पहचान की जाती है.

Gemini की पुष्टि करना:

इन संभावित जवाबों को Gemini के पास आकलन के लिए भेजा जाता है. Gemini यह तय करता है कि ये जानकारी, उपयोगकर्ता के लिए सही और सुरक्षित है या नहीं.

जवाब जनरेट करना:

पुष्टि किए गए जवाबों को JSON कलेक्शन में बांटा जाता है. साथ ही, पूरे इंजन को बिना सर्वर वाले Cloud Run फ़ंक्शन में पैकेज किया जाता है, जिसे Agent Builder से शुरू किया जाता है.

ऊपर बताए गए चरण पहले ही लैब के पार्ट 1 में शामिल हैं.

हमने स्मार्ट शॉपिंग असिस्टेंट को बेहतर बनाने के लिए, जानकारी पर आधारित आंकड़े देने वाले इंजन को बनाने की तकनीकी जानकारी के बारे में बातचीत की. अब, आइए जानें कि हम बातचीत वाले इंटरफ़ेस में इस इंजन को लाने के लिए, एजेंट बिल्डर का इस्तेमाल कैसे करते हैं. दूसरा चरण शुरू करने से पहले, पक्का करें कि आपके पास एंडपॉइंट यूआरएल तैयार है. इस लैब में हम अगले चरण के बारे में बताएंगे:

बातचीत वाला इंटरैक्शन:

एजेंट बिल्डर, उपयोगकर्ता को सामान्य भाषा के फ़ॉर्मैट में जवाब देता है. इससे, उपयोगकर्ता और एजेंट के बीच आसानी से बातचीत हो पाती है.

3. शुरू करने से पहले

प्रोजेक्ट बनाना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें.
  3. इसके लिए, आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है, जिसमें bq पहले से लोड होता है. Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell को चालू करें पर क्लिक करें.

Cloud Shell बटन की इमेज को चालू करें

  1. Cloud Shell से कनेक्ट होने के बाद, यह जांच करें कि आपकी पुष्टि पहले ही हो चुकी है या नहीं. साथ ही, यह भी देखें कि प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है या नहीं. इसके लिए, यह कमांड इस्तेमाल करें:
gcloud auth list
  1. Cloud Shell में यह कमांड चलाकर पुष्टि करें कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. ज़रूरी एपीआई चालू करें. gcloud कमांड के बजाय, कंसोल में जाकर हर प्रॉडक्ट को खोजें या इस लिंक का इस्तेमाल करें.

अगर कोई एपीआई छूट जाता है, तो लागू होने के दौरान उसे कभी भी चालू किया जा सकता है.

gcloud के निर्देशों और इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

अहम जानकारी: यह भी पक्का करें कि इसे पूरा करने के लिए, लैब का पार्ट 1 पूरा हो गया हो.

4. एजेंट बनाना

पेश है एजेंट बिल्डर

एजेंट बिल्डर एक ऐसा बेहतरीन टूल है जिसमें कम कोड का इस्तेमाल किया जाता है. इसकी मदद से, बातचीत वाले एजेंट को तुरंत और आसानी से बनाया जा सकता है. इसकी मदद से, डायलॉग फ़्लो डिज़ाइन करने, नॉलेज बेस को इंटिग्रेट करने, और बाहरी एपीआई से कनेक्ट करने की प्रोसेस आसान हो जाती है. हमारे मामले में, हम एजेंट बिल्डर का इस्तेमाल करके, पहले पार्ट में बनाए गए Cloud Function एंडपॉइंट के साथ आसानी से कनेक्ट करेंगे. इससे हमारा शॉपिंग असिस्टेंट, अपने खुदरा नॉलेज बेस को ऐक्सेस कर पाएगा और ग्राहकों के सवालों का बेहतर तरीके से जवाब दे पाएगा.

एजेंट को तैयार करना

आइए, कपड़ों के प्रॉडक्ट के लिए उपयोगकर्ताओं के सवालों के जवाब देने वाला यह नया एजेंट बनाना शुरू करते हैं.

  1. एजेंट बिल्डर प्लैटफ़ॉर्म में लॉग इन करके शुरुआत करें. अगर आपसे एपीआई चालू करने के लिए कहा जाता है, तो 'जारी रखें और एपीआई चालू करें' पर क्लिक करें.
  2. "ऐप्लिकेशन बनाएं" पर क्लिक करें और अपने एजेंट को जानकारी देने वाला कोई नाम दें (उदाहरण के लिए, "रीटेल शॉपिंग असिस्टेंट").
  3. ऐप्लिकेशन टाइप "एजेंट" पर क्लिक करें.

462bb48664e9a14e.png

  1. . अपने एजेंट को "रीटेल शॉपिंग असिस्टेंट" जैसा कोई नाम दें और क्षेत्र को us-central1 के तौर पर सेट करें

10eceef44b1600d1.png

  1. एजेंट की जानकारी डालें:
  2. एजेंट का नाम बदलकर "रीटेल शॉपिंग एजेंट" करें.
  3. नीचे दिया गया "लक्ष्य" जोड़ें:
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.

537a87a842aae897.png

  1. इसे अभी सेव करें और निर्देशों को अभी के लिए खाली छोड़ दें.
  2. इसके बाद, नेविगेशन मेन्यू में जाकर टूल पर क्लिक करें और फिर बनाएं पर क्लिक करें.

2ffae953bbad38e5.png

टूल का नाम डालें: रीटेल शॉपिंग टूल

टूल की जानकारी डालें:

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.

YAML फ़ॉर्मैट में स्कीमा — OpenAPI डालें:

इस हिस्से में, हम एजेंट को बेहतर बनाने के लिए बैकएंड एंडपॉइंट का इस्तेमाल कर रहे हैं. नीचे दिया गया OpenAPI स्पेसिफ़िकेशन कॉपी करें और यूआरएल प्लेसहोल्डर (ऐंगल ब्रैकेट में शामिल) को अपने 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.

दूसरे कॉन्फ़िगरेशन को उनकी डिफ़ॉल्ट वैल्यू पर रहने दें और "सेव करें" पर क्लिक करें.

  1. अब एजेंट पर वापस जाएं, क्योंकि हमें एजेंट के "निर्देशों" में "टूल" कॉन्फ़िगरेशन जोड़ना है. नीचे दिए गए निर्देश प्लेसहोल्डर में, इंडेंट जोड़ें (ध्यान रखें कि फ़्लो तय करने के लिए, इंडेंट ज़रूरी हैं):
- 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. एजेंट की जांच करना

दाईं ओर मौजूद पैनल में, आपको 'झलक दिखाने वाले एजेंट' सेक्शन दिखेगा. इसमें अपने एजेंट को टेस्ट किया जा सकता है.

जैसा कि नीचे दिए गए स्क्रीनशॉट में देखा जा सकता है, मैंने एक उपयोगकर्ता के तौर पर आपका स्वागत किया है. साथ ही, मैंने नीले प्रिंट वाली सफ़ेद शर्ट के लिए अनुरोध किया और चैट की शुरुआत की:

63ac3ef6d1f0f614.png

यह JSON का जवाब है:

acf3cb0e2be2ed91.png

यह Cloud Function से मिला JSON का रॉ नतीजा है जो 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!

कुछ शॉट प्रॉम्प्ट

अब मान लीजिए कि आपको बातचीत एजेंट में नतीजे को एक खास ग्राफ़िक फ़ॉर्मैट में देखना है जिसमें तस्वीरें और लिंक भी शामिल हैं. हम बातचीत के उदाहरणों का इस्तेमाल करके ऐसा करेंगे. इसे फ़्यू फ़्रेम प्रॉम्प्टिंग भी कहा जाता है.

इसका मतलब है कि हम एजेंट बिल्डर में कुछ उदाहरण जोड़ना चाहते हैं, ताकि नतीजे का फ़ॉर्मैट एक जैसा रहे.

"एजेंट की जांच करें" सेक्शन में मौजूद हमारे पिछले स्क्रीनशॉट में, हमें एजेंट का जवाब "मुझे पता है. तुम्हें नीले प्रिंट वाली सफ़ेद शर्ट चाहिए...". उस जवाब पर जाएं या एजेंट के दाएं पैनल से, नई जांच के लिए बातचीत बनाएं:

  1. नीचे "उपयोगकर्ता इनपुट डालें" में लिखें सेक्शन:

dc8c010c36400e64.png

आपको इस तरह का जवाब दिखेगा:

e31d9f53bf5564c8.png

साथ ही, आपको एपीआई एंडपॉइंट से मिली JSON अरे भी दिखेगी.

  1. अब झलक सेक्शन के मार्जिन से, एजेंट के नाम (जैसा कि नीचे दी गई इमेज में लाल रंग के सही के निशान से हाइलाइट किया गया है) पर क्लिक करें. इसके बाद, चैट की झलक दिखाने वाले सेक्शन में मौजूद आपके सभी टैब हाइलाइट हो जाएंगे. अब झलक वाले सेक्शन में सबसे ऊपर दाएं कोने में मौजूद, "उदाहरण सेव करें" पर क्लिक करें. यह कुछ ऐसा दिखाई देगा:

1e0a9f6815f63bf9.png

  1. इस बातचीत को डिसप्ले नेम "इमेज से जवाब" के साथ सेव करें या इससे मिलते-जुलते कुछ शब्द सेट करें और "बनाएं" पर क्लिक करें.
  2. अब ऊपर दी गई इमेज में, काले रंग के सही के निशान से हाइलाइट किए गए जवाब टैब पर जाएं और "मुझे दिख रहा है" टेक्स्ट को बदल दें. आपको पीली सैंडल की तलाश है. क्या यह सही है?" होगा:
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>
  1. सबसे ऊपर, "सेव करें" पर क्लिक करें.

बातचीत के अलग-अलग वैरिएशन और फ़्लो के साथ, जितने चाहें उतने उदाहरणों के लिए यह प्रोसेस दोहराएं.

अब आगे बढ़ें और उपयोगकर्ता के इनपुट की मदद से इसे आज़माएं:

450166a929645353.png

जवाब के कुछ अन्य टाइप:

be8908c99cd33730.png

हो गया. हमने अपने रीटेल ऐप्लिकेशन के लिए, बातचीत करने वाला एजेंट बनाया और उसकी जांच कर ली है.

7. डिप्लॉयमेंट और इंटिग्रेशन

एजेंट बनाने के बाद, उसे आसानी से अलग-अलग चैनलों पर डिप्लॉय किया जा सकता है. इसके लिए, एजेंट बिल्डर के इंटिग्रेशन का इस्तेमाल करें. इसे अपनी वेबसाइट में एम्बेड किया जा सकता है, लोकप्रिय मैसेज सेवा प्लैटफ़ॉर्म के साथ इंटिग्रेट किया जा सकता है या इसके लिए एक खास मोबाइल ऐप्लिकेशन भी बनाया जा सकता है. हम Agent Builder API का इस्तेमाल सीधे अपने वेब क्लाइंट ऐप्लिकेशन में भी कर सकते हैं. इसके बारे में, हमने इस ब्लॉग में बताया है.

8. व्यवस्थित करें

इस पोस्ट में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते पर शुल्क न लगे, इसके लिए यह तरीका अपनाएं:

  1. Google Cloud Console में, मैनेज करें पर जाएं
  2. संसाधन पेज पर जाएं.
  3. प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
  4. डायलॉग बॉक्स में, प्रोजेक्ट आईडी लिखें और फिर प्रोजेक्ट मिटाने के लिए शट डाउन करें पर क्लिक करें.

9. बधाई हो

बधाई हो! हमने अपने हिसाब से तैयार किए गए आंकड़ों के इंजन को, एजेंट बिल्डर के आसान इंटरफ़ेस के साथ इंटिग्रेट करके, रीटेल शॉपिंग असिस्टेंट बनाया है. यह आपकी पसंद के मुताबिक अनुभव देता है, आपके सवालों के सही जवाब देता है, और ग्राहकों की संतुष्टि के साथ-साथ बिक्री बढ़ाने में भी मदद करता है. AlloyDB, Vertex AI और वेक्टर खोज की क्षमताओं को मिलाकर, हमने प्रासंगिक और वेक्टर खोजों को ऐक्सेस करने लायक, कुशल, असल में अर्थों से प्रेरित और एजेंटी बनाने की दिशा में एक बड़ा कदम उठाया है!