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 इंजन:

हम नीचे दिए गए काम करने के लिए, एनालिटिक्स इंजन के रूप में AlloyDB का इस्तेमाल करेंगे:

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

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

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

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

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

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

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

बातचीत:

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

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

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

  1. Google Cloud Console में, प्रोजेक्ट सिलेक्टर पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें .
  3. आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला एक कमांड-लाइन एनवायरमेंट है. यह पहले से लोड होकर, Google Cloud में आता है. 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 के लिए कमांड और इसके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

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

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

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

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

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

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

  1. Agent Builder प्लैटफ़ॉर्म पर लॉग इन करके शुरुआत करें. अगर आपसे एपीआई चालू करने के लिए कहा जाता है, तो 'जारी रखें' और 'एपीआई को चालू करें' पर क्लिक करें.
  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 और वेक्टर खोज की क्षमताओं को मिलाकर, हमने प्रासंगिक और वेक्टर खोजों को ऐक्सेस करने लायक, कुशल, असल में अर्थों से प्रेरित और एजेंटी बनाने की दिशा में एक बड़ा कदम उठाया है!