स्टोर से ऑनलाइन पिकअप खरीदें: बोनसेज का खाना - पहला भाग - शुरू करना

1. परिचय

637766505206e0a1.png c604dca3ca211399.png

पिछले अपडेट की तारीख: 11-05-2022

Business Messages में आपका स्वागत है!

इस कोडलैब में, Business Messages के साथ इंटिग्रेट करने के बारे में बताया गया है. इससे ग्राहक, Google Search और Maps पर आपके मैनेज किए जा रहे कारोबारों से जुड़ सकते हैं. ऐसा हो सकता है कि आप कोई ऐसा कारोबार हों जिसे सीधे तौर पर Business Messages के साथ इंटिग्रेट करना हो. यह भी हो सकता है कि आप किसी इंडिपेंडेंट सॉफ़्टवेयर वेंडर के लिए काम करते हों और आपको उन कारोबारों के लिए मैसेजिंग समाधान बनाने हों जिनके साथ आप काम करते हैं. इसके अलावा, यह भी हो सकता है कि आपको Business Messages के बारे में अभी-अभी पता चला हो और आपको इस प्लैटफ़ॉर्म पर काम करना हो.

चाहे आप किसी भी वजह से यहां आए हों, यह कोडलैब शुरू करने का एक शानदार तरीका है. इस प्रोसेस के आखिर तक, आपके पास अपना पहला डिजिटल एजेंट होगा, जिससे लोग इंटरैक्ट कर सकेंगे. अगर आपको Business Messages पर लॉन्च करने से पहले, अपने चैटबॉट को और बेहतर बनाना है, तो आपके पास लाखों ग्राहकों तक पहुंचने का मौका होगा.

डिजिटल एजेंट को अच्छा क्यों माना जाता है?

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

आपको क्या बनाने को मिलेगा

इस कोडलैब में, आपको Business Messages पर एक डिजिटल एजेंट बनाना है. यह एजेंट, Bonjour Meal नाम की एक काल्पनिक कंपनी के लिए बनाया जाएगा. यह डिजिटल एजेंट, कुछ आसान सवालों के जवाब देगा. जैसे, "आपकी दुकान कितने बजे बंद होती है?" या "क्या ऑनलाइन खरीदारी की जा सकती है?".

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

इस कोडलैब में, आपका ऐप्लिकेशन

  • सुझाव वाले चिप की मदद से सवालों के जवाब देना
  • उपयोगकर्ता को ऐसे सवाल पूछने के लिए गाइड करें जिनके जवाब आपका डिजिटल एजेंट दे सकता है
  • बातचीत को दिलचस्प बनाने के लिए, बातचीत से जुड़ी बेहतर सुविधाएं उपलब्ध कराएं

883b5a7f9f266276.png

आपको क्या सीखने को मिलेगा

  • Google Cloud Platform पर App Engine पर वेब ऐप्लिकेशन डिप्लॉय करने का तरीका. इसके अलावा, अपने लोकल ऐप्लिकेशन को सार्वजनिक तौर पर टेस्ट करने के लिए, ngrok का इस्तेमाल किया जा सकता है.
  • लोगों से मैसेज पाने के लिए, वेब ऐप्लिकेशन वेबहुक के साथ Business Messages खाते को कॉन्फ़िगर करने का तरीका
  • Business Messages API की मदद से, कार्ड, कैरसेल, और बातचीत के सुझाव जैसी बेहतर सुविधाएं भेजने का तरीका
  • Business Messages आपके मैसेज कैसे भेजता है

इस कोडलैब में, आपका पहला डिजिटल एजेंट बनाने पर फ़ोकस किया गया है.

आपको इन चीज़ों की ज़रूरत होगी

  • बिना किसी शुल्क के Business Communications डेवलपर खाते के लिए रजिस्टर करना
  • इसे लागू करने के निर्देशों के लिए, हमारी डेवलपर साइट देखें
  • Android 5 या इसके बाद के वर्शन वाला Android डिवाइस या Google Maps ऐप्लिकेशन वाला iOS डिवाइस
  • वेब ऐप्लिकेशन प्रोग्रामिंग का अनुभव
  • इंटरनेट कनेक्शन!

2. सेट अप करना

एपीआई चालू करना

इस कोडलैब के लिए, हम Django ऐप्लिकेशन के साथ काम करेंगे. इसलिए, ऐप्लिकेशन को App Engine पर डिप्लॉय करने के लिए, हम Cloud Build API का इस्तेमाल करेंगे. इसके अलावा, अगर ngrok का इस्तेमाल किया जा रहा है, तो Cloud Build API को चालू करने की ज़रूरत नहीं है.

Cloud Build API को चालू करने के लिए:

  1. Google Cloud Console में Cloud Build API खोलें.
  2. चालू करें पर क्लिक करें.

सेवा खाता बनाना

Business Communications और Business Messages API को ऐक्सेस करने के लिए, आपको एक सेवा खाता बनाना होगा. Business Communications डेवलपर कंसोल में, सेवा खाता बनाने के लिए दस्तावेज़ में दिया गया तरीका अपनाएं.

Django Python EchoBot के स्टार्टर कोड को डिप्लॉय करना

टर्मिनल में, Django Echo Bot Sample को अपने प्रोजेक्ट की वर्किंग डायरेक्ट्री में क्लोन करें. इसके लिए, यह निर्देश इस्तेमाल करें:

$ git clone https://github.com/google-business-communications/bm-bonjour-meal-django-starter-code

सेवा खाते के लिए बनाई गई JSON क्रेडेंशियल फ़ाइल को, सैंपल के resources फ़ोल्डर में कॉपी करें. इसके बाद, क्रेडेंशियल का नाम बदलकर "bm-agent-service-account-credentials.json" करें.

bm-bonjour-meal-django-starter-code/bonjourmeal-codelab/step-1/resources/bm-agent-service-account-credentials.json

टर्मिनल में, सैंपल के पहले चरण की डायरेक्ट्री पर जाएं.

सैंपल को डिप्लॉय करने के लिए, टर्मिनल में ये कमांड चलाएं:

$ gcloud config set project PROJECT_ID*
$ gcloud app create
$ gcloud app deploy
  • PROJECT_ID, उस प्रोजेक्ट का आईडी है जिसका इस्तेमाल आपने एपीआई के साथ रजिस्टर करने के लिए किया था.

आखिरी कमांड के आउटपुट में, डिप्लॉय किए गए ऐप्लिकेशन का यूआरएल नोट करें:

Deployed service [default] to [https://PROJECT_ID.appspot.com]

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

अपने वेबहुक को कॉन्फ़िगर करना

सेवा को डिप्लॉय करने के बाद, आपको ऐप्लिकेशन के यूआरएल का इस्तेमाल करके, Business Communications Developer Console में खाता सेटिंग पेज पर अपना वेबुक यूआरएल सेट करना होगा.

वेबबुक यूआरएल, ऐप्लिकेशन का यूआरएल + "/callback/" होगा. उदाहरण के लिए, यह कुछ इस तरह का हो सकता है: https://PROJECT_ID.appspot.com/callback/

Business Communications Console के खाता सेटिंग पेज पर जाएं. सबसे ऊपर दाएं कोने में मौजूद नेविगेशन बार के नीचे, आपको अपने GCP प्रोजेक्ट का नाम दिखेगा. अगर आपको ड्रॉपडाउन दिखता है, तो पक्का करें कि आपने अपना GCP प्रोजेक्ट चुना हो.

तकनीकी सहायता के लिए संपर्क व्यक्ति की जानकारी भरें. इसके बाद, डिप्लॉय किए गए ऐप्लिकेशन के लिए वेबुक यूआरएल के साथ वेबुक को अपडेट करें.

ceb66c905ded40be.png

अपने GCP प्रोजेक्ट के रेफ़रंस के बगल में मौजूद, सेव करें पर क्लिक करें.

3. अपना पहला एजेंट बनाना

Business Communications डेवलपर कंसोल का इस्तेमाल करके

Business Communications Console में, सबसे ऊपर बाईं ओर मौजूद लोगो पर क्लिक करें. इससे आपको कंसोल के डैशबोर्ड पर वापस ले जाया जाएगा. इसके बाद, एजेंट बनाएं पर क्लिक करें. एजेंट बनाते समय ही ब्रैंड बनाया जाता है. एजेंट का टाइप के लिए, Business Messages चुनें. साथ ही, पक्का करें कि पार्टनर की जानकारी सही हो.

ब्रैंड में, उस ब्रैंड का नाम डालें जिसके लिए आपको एजेंट बनाना है. ब्रैंड वह कारोबार होता है जिसके साथ मिलकर आपको काम करना है. साथ ही, उपभोक्ता एजेंट के साथ बातचीत कर सकते हैं. एजेंट का नाम में, यह बताएं कि आपको Business Messages बातचीत में उपयोगकर्ताओं को क्या दिखाना है. उदाहरण के लिए, काल्पनिक कंपनी Bonjour Meal के मामले में, Bonjour Rail एक रेलवे कंपनी है. यह Bonjour Meal रेस्टोरेंट को मैनेज करती है. इसलिए, मैं ब्रैंड के तौर पर Bonjour Rail और एजेंट के तौर पर Bonjour Meal को चुनूंगा.

एजेंट, बातचीत करने वाली इकाई होती है. यह ब्रैंड का प्रतिनिधित्व करती है.

88a9798e6546eb4e.png

एजेंट बनाएं पर क्लिक करें. इसके बाद, कंसोल को कुछ समय दें. इस अनुरोध में कुछ सेकंड लगते हैं. इस दौरान, Business Communications API को कई अनुरोध भेजे जाते हैं, ताकि ब्रैंड और एजेंट बनाया जा सके. एजेंट और ब्रैंड बनाने के लिए, सीधे तौर पर Business Communications API का इस्तेमाल किया जा सकता है. दस्तावेज़ देखें. इसमें बताया गया है कि कंसोल में किए जा रहे कामों को पूरा करने के लिए, कर्ल अनुरोध कैसा दिखेगा.

पहली बार बातचीत करना

अभी-अभी बनाए गए एजेंट को खोलें. आपको खास जानकारी वाला पेज दिखेगा. इस पेज पर, एजेंट की जानकारी की समीक्षा की जा सकती है. एजेंट के टेस्ट यूआरएल देखें. इन यूआरएल का इस्तेमाल, आपके डिवाइस पर बातचीत वाली सुविधा को चालू करने के लिए किया जाता है.

f6bd8ded561db36f.png

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

मोबाइल डिवाइस पर, लिंक पर टैप करने से Business Messages एजेंट लॉन्चर खुल जाता है. इसमें आपके एजेंट का टेस्ट यूआरएल पहले से भरा होता है.

अपने एजेंट के बातचीत वाले प्लैटफ़ॉर्म को शुरू करने के लिए, लॉन्च करें पर टैप करें.

2bf9f282e09062de.png

एजेंट के साथ इंटरैक्ट करें और जानें कि वह क्या-क्या कर सकता है. ज़्यादातर मामलों में, आपको दिखेगा कि बातचीत वाली सुविधा सिर्फ़ आपके मैसेज को दोहराएगी. इसे "Hello, World!" जैसा कुछ भेजें. आपको दिखेगा कि एजेंट ने वही मैसेज आपको वापस भेज दिया है.

डिप्लॉय किए गए ऐप्लिकेशन में, Business Messages पर उपलब्ध बेहतर सुविधाओं को दिखाने के लिए भी कुछ लॉजिक शामिल होता है.

  • "कार्ड" भेजने पर, आपको एक रिच कार्ड दिखेगा
  • "चिप" भेजने पर, सुझाव वाले चिप दिखेंगे
  • "कैरोसेल" भेजने पर, रिच कार्ड का कैरोसेल दिखेगा

बधाई हो! यह आपके एजेंट की पहली बातचीत है, जो आपसे हो रही है!

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

स्वागत संदेश अपडेट करना और बातचीत के लिए उपलब्ध चिप का इस्तेमाल करना

आइए, Developer Console का इस्तेमाल करने का तरीका जानें. साथ ही, एजेंट के वेलकम मैसेज में बदलाव करने का तरीका जानें. इसके अलावा, सुझाव वाले चिप का इस्तेमाल करके, उपयोगकर्ता को बातचीत करने में मदद करने का तरीका जानें.

एजेंट की खास जानकारी वाले पेज पर जाएं और एजेंट की जानकारी चुनें. नीचे की ओर स्क्रोल करके, वेलकम मैसेज और बातचीत शुरू करने वाले सेक्शन पर जाएं.

4323f988216fa054.png

वेलकम मैसेज (पीला इनपुट फ़ील्ड) को अपडेट करके यह मैसेज डालें:

Bonjour Meal starter agent में आपका स्वागत है. मैं आपके मैसेज को दोहरा सकता हूं और आपको प्लैटफ़ॉर्म पर उपलब्ध कुछ बेहतर सुविधाएं दिखा सकता हूं. इन सुझावों को आज़माएं!

सुझाव वाले चिप, कैरसेल, और कार्ड को चालू करने के लिए, बातचीत शुरू करने के विकल्प जोड़ें. इसके लिए, ऊपर दी गई इमेज में बैंगनी बॉक्स में दिए गए + बातचीत शुरू करने का नया विकल्प जोड़ें पर क्लिक करें. जो बातचीत शुरू करने वाले सुझाव जोड़े जाते हैं उनमें टेक्स्ट कॉम्पोनेंट और postbackData कॉम्पोनेंट होना चाहिए. टेक्स्ट वह जानकारी होती है जो उपयोगकर्ता को दिखती है. वहीं, पोस्टबैक डेटा वह जानकारी होती है जो आपके एजेंट के वेबुक को भेजी जाती है. वेबहुक, पोस्टबैक डेटा को पार्स करता है और उपयोगकर्ता को सही जवाब भेजता है. 906bc74668a1b215.png

बदलाव के बाद, कंसोल में एजेंट की जानकारी इस तरह दिखती है:

8e96b0a10edd20af.png

कंसोल की दाईं ओर, आपको एजेंट की झलक दिखेगी. क्या आपने ध्यान दिया कि वेलकम मैसेज में, अभी-अभी किए गए बदलाव दिख रहे हैं और इसके नीचे सुझाव वाले चिप दिख रहे हैं?

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

माफ़ करें, हम बातचीत में इन बदलावों को तुरंत नहीं देख पाएंगे, क्योंकि पिछला डेटा Business Messages के इन्फ़्रास्ट्रक्चर में कैश मेमोरी में सेव होता है. कैश मेमोरी को करीब-करीब हर दो घंटे में मिटाया जाता है. इसलिए, आपको कल यह सुविधा आज़माने का मौका मिलेगा.

इस बीच, आइए देखें कि यह सुविधा कैसे काम करती है.

4. स्टार्टर कोड का विश्लेषण करना

सोर्स कोड की खास जानकारी

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

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

हाई लेवल पर, Django यूआरएल को व्यू पर रूट करेगा. साथ ही, व्यू लॉजिक एक ऐसा टेंप्लेट बनाएगा जो ब्राउज़र में रेंडर होता है. आइए, प्रोजेक्ट के urls.py पर एक नज़र डालें.

bm-django-echo-bot/bmcodelab/urls.py [Lines 31-37]

from django.urls import include, path
import bopis.views as bopis_views

urlpatterns = [
    path('', bopis_views.landing_placeholder),
    path('callback/', bopis_views.callback),
]

यहां दो रास्तों के बारे में बताया गया है. इसलिए, अगर Django को इन दो यूआरएल के बारे में पता चलता है, तो वह लॉजिक को लागू कर सकता है. अगर प्रोजेक्ट का यूआरएल https://PROJECT_ID.appspot.com/ है, तो प्रोजेक्ट को इन रास्तों के बारे में पता होता है:

  • https://PROJECT_ID.appspot.com/
  • https://PROJECT_ID.appspot.com/callback/

दोनों यूआरएल रूट, bopis_views को रेफ़र करते हैं. यह bopis/views.py से है. आइए, देखते हैं कि इस फ़ाइल में क्या हो रहा है. शुरू करने से पहले, आइए सबसे पहले bopis_views.landing_placeholder के बारे में जानते हैं.

bm-django-echo-bot/bonjourmeal-codelab/step-1/bopis/views.py [Lines 302-309]

... 
def landing_placeholder(request):
    return HttpResponse("<h1>Welcome to the Bonjour Meal Codelab</h1>
    <br/><br/>
    To message your Bonjour Meal agent, go to the Developer Console and retrieve
    the Test URLs for the agent you have created as described in the codelab
    <a href='https://codelabs.developers.google.com/codelabs/'>here</a>.")
...

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

दूसरा यूआरएल, callback नाम के फ़ंक्शन पर ले जाता है. यह फ़ंक्शन भी bopis/views.py में मौजूद है. इसलिए, आइए उस फ़ंक्शन के बारे में जानते हैं.

bm-django-echo-bot/bopis/views.py [Lines 60-101]

...
def callback(request):
    """
    Callback URL. Processes messages sent from user.
    """
    if request.method == "POST":
        request_data = request.body.decode('utf8').replace("'", '"')
        request_body = json.loads(request_data)

        print('request_body: %s', request_body)

        # Extract the conversation id and message text
        conversation_id = request_body.get('conversationId')
        print('conversation_id: %s', conversation_id)

        # Check that the message and text body exist

        if 'message' in request_body and 'text' in request_body['message']:
            message = request_body['message']['text']

            print('message: %s', message)
            route_message(message, conversation_id)
        elif 'suggestionResponse' in request_body:
            message = request_body['suggestionResponse']['postbackData']

            print('message: %s', message)
            route_message(message, conversation_id)
        elif 'userStatus' in request_body:
            if 'isTyping' in request_body['userStatus']:
                print('User is typing')
            elif 'requestedLiveAgent' in request_body['userStatus']:
                print('User requested transfer to live agent')

        return HttpResponse("Response.")

    elif request.method == "GET":
        return HttpResponse("This webhook expects a POST request.")
...

यहां मौजूद लॉजिक, अनुरोध के मुख्य हिस्से में मौजूद मैसेज या suggestionResponse को पार्स करता है. इसके बाद, उस जानकारी को route_message नाम के फ़ंक्शन में पास करता है. इसके बाद, HttpResponse को Business Messages के इन्फ़्रास्ट्रक्चर में वापस भेजता है, ताकि मैसेज मिलने की पुष्टि की जा सके.

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

b10113f9d037e6a5.png

Business Messages, मैसेज के कॉन्टेंट को JSON पेलोड के तौर पर आपके वेबहुक पर भेजता है. यहां से इसे लाइव एजेंट या बॉट के तौर पर जवाब देने के लिए किसी लॉजिक पर भेजा जाता है. इस मामले में, राउटिंग का यह तरीका route_message है. आइए इस पर एक नज़र डालें.

bm-django-echo-bot/bopis/views.py [Lines 105-122]

...
def route_message(message, conversation_id):
    '''
    Routes the message received from the user to create a response.

    Args:
        message (str): The message text received from the user.
        conversation_id (str): The unique id for this user and agent.
    '''
    normalized_message = message.lower()

    if normalized_message == CMD_RICH_CARD:
        send_rich_card(conversation_id)
    elif normalized_message == CMD_CAROUSEL_CARD:
        send_carousel(conversation_id)
    elif normalized_message == CMD_SUGGESTIONS:
        send_message_with_suggestions(conversation_id)
    else:
        echo_message(message, conversation_id)
...

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

bm-django-echo-bot/bopis/views.py [Lines 40-42]

...
# Set of commands the bot understands
CMD_RICH_CARD = 'card'
CMD_CAROUSEL_CARD = 'carousel'
CMD_SUGGESTIONS = 'chips'
...

इसका मतलब है कि बॉट, उन मैसेज को पार्स करता है जिनमें खास तौर पर, वे स्ट्रिंग शामिल होती हैं जिन्हें हमने इस कोडलैब के पिछले चरण में, बातचीत शुरू करने वाले मैसेज के postback_data में रखा था. अगर इनमें से कोई भी स्ट्रिंग नहीं दिखती है, तो यह मैसेज को echo_message नाम के फ़ंक्शन को पास कर देता है. यह फ़ंक्शन, मैसेज को दोहराता है.

मैसेज भेजना

इसलिए, अब तक आपको यह पता चल गया होगा कि वेब ऐप्लिकेशन को मैसेज कैसे मिलते हैं. यह सब वेबहुक की मदद से किया जाता है.

हालांकि, Business Messages का इस्तेमाल करके ऐप्लिकेशन, किसी उपयोगकर्ता को आउटबाउंड मैसेज कैसे भेजता है?

a9475b1da93a83e8.png

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

Business Messages API की लाइब्रेरी, Python, Node.js, और Java में उपलब्ध हैं. हमारे पास एक REST API भी है. अगर आपका इन्फ़्रास्ट्रक्चर ऐसी भाषा में है जिसके लिए हमारे पास लाइब्रेरी नहीं है, तो सीधे तौर पर इस API से अनुरोध किए जा सकते हैं. किसी बातचीत के आईडी पर मैसेज भेजने के लिए, cURL का इस्तेमाल कैसे किया जाता है, यह जानने के लिए मैसेज भेजना लेख पढ़ें.

इस कोडलैब के लिए, हम Python क्लाइंट लाइब्रेरी का इस्तेमाल करने पर फ़ोकस करेंगे. यह लाइब्रेरी, Bonjour Meal के स्टार्टर कोड में पहले से ही इंटिग्रेट की गई है. इस कोड को आपके GCP प्रोजेक्ट पर App Engine में डिप्लॉय किया गया है या इसे ngrok के ज़रिए लोकल तौर पर चलाया जा रहा है.

आइए, echo_message फ़ंक्शन को देखें और जानें कि Business Messages को मैसेज भेजने के लिए, हम एपीआई के साथ कैसे इंटरैक्ट करते हैं.

bm-django-echo-bot/bopis/views.py [Lines 199-212]

...
def echo_message(message, conversation_id):
    '''
    Sends the message received from the user back to the user.

    Args:
        message (str): The message text received from the user.
        conversation_id (str): The unique id for this user and agent.
    '''
    message_obj = BusinessMessagesMessage(
        messageId=str(uuid.uuid4().int),
        representative=BOT_REPRESENTATIVE,
        text=message)

    send_message(message_obj, conversation_id)
...

इस फ़ंक्शन में, BusinessMessagesMessage को मैसेज वैरिएबल के साथ इंस्टैंशिएट किया जाता है. यह वैरिएबल, echo_message फ़ंक्शन में पास किया जाता है. ऑब्जेक्ट को इंस्टैंटिएट करने के बाद, इसे बातचीत के आईडी के साथ send_message को पास किया जाता है.

bm-django-echo-bot/bopis/views.py [Lines 214-236]

...
def send_message(message, conversation_id):
    '''
    Posts a message to the Business Messages API, first sending
    a typing indicator event and sending a stop typing event after
    the message has been sent.

    Args:
        message (obj): The message object payload to send to the user.
        conversation_id (str): The unique id for this user and agent.
    '''
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        SERVICE_ACCOUNT_LOCATION,
        scopes=['https://www.googleapis.com/auth/businessmessages'])

    client = bm_client.BusinessmessagesV1(credentials=credentials)

    # Create the message request
    create_request = BusinessmessagesConversationsMessagesCreateRequest(
        businessMessagesMessage=message,
        parent='conversations/' + conversation_id)

    bm_client.BusinessmessagesV1.ConversationsMessagesService(
        client=client).Create(request=create_request)
...

send_message फ़ंक्शन, आपके सेवा खाते के क्रेडेंशियल का इस्तेमाल करके यह पुष्टि करता है कि आपके पास इस बातचीत में मैसेज भेजने का अधिकार है. साथ ही, यह Business Messages क्लाइंट को इंस्टैंटिएट करता है और दिए गए conversation ID को मैसेज भेजने का अनुरोध बनाता है.

ज़्यादा बेहतर सुविधाओं में भी इस send_message फ़ंक्शन का इस्तेमाल किया जाता है. हालांकि, इनसे बनाए गए मैसेज, रिच कार्ड, कैरसेल, और सुझाव वाले चिप के हिसाब से होते हैं. रिच कार्ड और कैरसेल में ग्राफ़िकल ऐसेट शामिल हो सकती हैं. वहीं, सुझाव वाले चिप में postback_data होता है, ताकि कॉलबैक लॉजिक इसे सही तरीके से पार्स कर सके.

अब हमने देख लिया है कि मैसेज कैसे भेजा जाता है. अब यह देखते हैं कि सैंपल, रिच कार्ड, कैरसेल, और सुझाव वाले चिप कैसे भेजता है. यहां दिए गए सेक्शन में, हम सोर्स कोड में बदलाव करेंगे, ताकि इन रिच सुविधाओं के साथ मैसेज भेजे जा सकें.

जब आप तैयार हों, तो Bonjour Meal एजेंट को पसंद के मुताबिक बनाएं.

5. अपने एजेंट को पसंद के मुताबिक बनाना

अगर आपने अब तक कोड सीखने की इस प्रक्रिया को पूरा कर लिया है, तो आपको अपना शानदार एजेंट दिखेगा.

906bc74668a1b215.png

ठीक है, यह उतना अच्छा नहीं दिख रहा है. यह कुछ हद तक खाली दिख रहा है और इससे हमारे कारोबार के बारे में भी ठीक से पता नहीं चल रहा है. अच्छी बात यह है कि हमारे पास एजेंट को सपोर्ट करने वाले कोड की बुनियादी जानकारी है. साथ ही, हमारे पास ऐसे टूल हैं जिनकी मदद से हम अपने एजेंट को अपनी ज़रूरत के हिसाब से किसी भी तरह से पसंद के मुताबिक बना सकते हैं.

इस कोडलैब के बाकी बचे हिस्से में, हम एजेंट को इन सुविधाओं के साथ बेहतर बनाएंगे:

  • असली लोगो शामिल करें
  • वेलकम मैसेज को बेहतर बनाया गया है
  • कारोबार के खुले होने के समय की जानकारी देना
  • उपयोगकर्ता को बताएं कि ऑनलाइन खरीदारी करने की सुविधा जल्द ही उपलब्ध होगी
  • बातचीत को आसान बनाने के लिए, बातचीत के सुझाव वाले चिप का इस्तेमाल करना

हम Business Communications Console का इस्तेमाल करके, लोगो और वेलकम मैसेज को अपडेट करेंगे. हालांकि, आपके पास Business Communications API का इस्तेमाल करके, सीधे तौर पर ऐसा करने का विकल्प हमेशा होता है. इसके बाद, हमें सोर्स कोड को अपडेट करना होगा, ताकि कारोबार के खुलने और बंद होने के समय के बारे में सही मैसेज भेजे जा सकें. साथ ही, यह जानकारी भी दी जा सके कि Bonjour Meal जल्द ही ऑनलाइन शॉपिंग की सुविधा देने वाला है. इसके बाद, हम Business Communications Console पर वापस जाएंगे और बातचीत के सुझाव वाले चिप बनाएंगे. इससे बातचीत को ऐसे पाथ पर ले जाने में मदद मिलेगी जो डिजिटल एजेंट के साथ बेहतर अनुभव दे सकें.

Business Communications Console में जाकर, अपना एजेंट चुनें और एजेंट की जानकारी पर जाएं. हमें कारोबार का लोगो अपडेट करना है. इसके बारे में नीचे पीले रंग से बताया गया है.

eb6b8ac6b62387ee.png

अपलोड करें पर क्लिक करें. इसके बाद, आपको अपलोड करने के लिए कोई इमेज चुनने या यूआरएल से इंपोर्ट करने का विकल्प मिलेगा.

अपने लोगो इस्तेमाल करने के लिए, हमारे सुझाए गए सबसे सही तरीकों के बारे में जानने के लिए, दस्तावेज़ में लोगो डिज़ाइन करने के दिशा-निर्देश देखें.

आइए, उस लोगो को अपलोड करें जो इस कोडलैब की शुरुआत में क्लोन किए गए सोर्स कोड में मौजूद है. यह आपको रिपॉज़िटरी की ./assets/ डायरेक्ट्री में मिलेगा. इस फ़ाइल का नाम "bonjour_meal-logo.png" है. फ़ाइल को वेब ब्राउज़र पर मौजूद मोडल में खींचकर छोड़ें. इसके बाद, इमेज की क्वालिटी में बदलाव करने और उसे काटने के लिए, एक लाइट एडिटिंग टूल दिखेगा. इमेज के रिज़ॉल्यूशन को अडजस्ट करें और उसे इस तरह से काटें कि उसका साइज़ 50 केबी से ज़्यादा न हो. इमेज पसंद आने पर, पुष्टि करने के लिए नीले सर्कल में मौजूद सही के निशान पर क्लिक करें. इसके बाद, मोडल में सबसे नीचे मौजूद चुनें पर क्लिक करें.

1856081f59623ae2.png

आखिर में, एजेंट की जानकारी पेज के सबसे ऊपर दाईं ओर मौजूद, सेव करें पर क्लिक करें. इस बदलाव को आपके डिवाइस पर दिखने में कुछ समय लगेगा, क्योंकि एजेंट की जानकारी हमारे सर्वर में कैश मेमोरी में सेव होती है. इसलिए, बदलाव होने के दो घंटे के अंदर यह जानकारी दिखनी चाहिए.

वेलकम मैसेज अपडेट करना

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

Business Communications Console में, अपना एजेंट चुनें और एजेंट की जानकारी पर जाएं. नीचे की ओर तब तक स्क्रोल करें, जब तक आपको वेलकम मैसेज का इनपुट फ़ील्ड न दिख जाए. यहां मैसेज को अपडेट किया जा सकता है.

6598fec47021136e.png

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

"Bonjour Meal में आपका स्वागत है. मैं एक असिस्टेंट हूं. मैं Bonjour Meal के बारे में आपके सवालों के जवाब दे सकती हूं. इनमें से कोई विकल्प आज़माएं."

आखिर में, एजेंट की जानकारी पेज के सबसे ऊपर दाईं ओर मौजूद, सेव करें पर क्लिक करें. इस बदलाव को दिखने में कुछ समय लगेगा. ऐसा इसलिए, क्योंकि हम कैश मेमोरी का इस्तेमाल करते हैं, ताकि आपको तुरंत नतीजे मिल सकें!

कारोबार के खुले होने के समय की जानकारी देना

उपयोगकर्ताओं को यह जानकारी देने के लिए, हम Business Messages API का इस्तेमाल करके, उपयोगकर्ता को कस्टम मैसेज भेजेंगे.

आपको याद होगा कि मैसेज को route_message फ़ंक्शन में पार्स किया जाता है. यह फ़ंक्शन views.py का हिस्सा है. यह फ़ंक्शन, सबसे पहले स्ट्रिंग को सामान्य करता है. इसके बाद, यह जांच करता है कि सामान्य किया गया मैसेज, हार्ड कोड किए गए किसी पैरामीटर से मेल खाता है या नहीं. आसान बनाने के लिए, हम एक और शर्त जोड़ते हैं. इसमें हम यह देखेंगे कि सामान्य किया गया मैसेज, नए कॉन्स्टेंट CMD_BUSINESS_HOURS_INQUIRY के बराबर है या नहीं. इसमें "business-hours-inquiry" वैल्यू शामिल होगी. अगर शर्त सही होती है, तो हम send_message_with_business_hours नाम के फ़ंक्शन को शुरू करेंगे.

route_message फ़ंक्शन अब ऐसा दिखेगा:

bm-django-echo-bot/bopis/views.py

...
def route_message(message, conversation_id):
    '''
    Routes the message received from the user to create a response.

    Args:
        message (str): The message text received from the user.
        conversation_id (str): The unique id for this user and agent.
    '''
    normalized_message = message.lower()

    if normalized_message == CMD_RICH_CARD:
        send_rich_card(conversation_id)
    elif normalized_message == CMD_CAROUSEL_CARD:
        send_carousel(conversation_id)
    elif normalized_message == CMD_SUGGESTIONS:
        send_message_with_suggestions(conversation_id)
    elif normalized_message == CMD_BUSINESS_HOURS_INQUIRY:
        send_message_with_business_hours(conversation_id)
    else:
        echo_message(message, conversation_id)
...

कोड को काम करने के लिए, हमें दो और बदलाव करने होंगे. पहला बदलाव यह है कि हमें अन्य कॉन्स्टेंट के साथ-साथ CMD_BUSINESS_HOURS_INQUIRY को भी तय करना होगा. दूसरा बदलाव यह है कि हमें send_message_with_business_hours फ़ंक्शन को तय करना होगा और Business Messages API का इस्तेमाल करके एक मैसेज भेजना होगा.

आइए, सबसे पहले फ़ाइल के सबसे ऊपर मौजूद कॉन्स्टेंट को अन्य कॉन्स्टेंट के साथ तय करें:

bm-django-echo-bot/bopis/views.py

...
# Set of commands the bot understands
CMD_RICH_CARD = 'card'
CMD_CAROUSEL_CARD = 'carousel'
CMD_SUGGESTIONS = 'chips'
CMD_BUSINESS_HOURS_INQUIRY = 'business-hours-inquiry'
...

अब, send_message_with_business_hours की परिभाषा के बारे में जानते हैं. इस फ़ंक्शन को फ़ाइल में कहीं भी तय किया जा सकता है. इसके लिए, Python के सही सिंटैक्स का इस्तेमाल करें. यह फ़ंक्शन सिर्फ़ एक मैसेज भेजता है. यह echo_message की तरह ही काम करता है. इसलिए, इस फ़ंक्शन को टेंप्लेट के तौर पर इस्तेमाल किया जा सकता है.

bm-django-echo-bot/bopis/views.py

...
def send_message_with_business_hours(conversation_id):

    message = '''Thanks for contacting us! The hours for the store are:\n
    MON 8am - 8pm\n
    TUE 8am - 8pm\n
    WED 8am - 8pm\n
    THU 8am - 8pm\n
    FRI 8am - 8pm\n
    SAT 8am - 8pm\n
    SUN 8am - 8pm
    '''

    message_obj = BusinessMessagesMessage(
        messageId=str(uuid.uuid4().int),
        representative=BOT_REPRESENTATIVE,
        text=message)

    send_message(message_obj, conversation_id)
...

इसके बाद, जब कोई व्यक्ति "business-hours-inquiry" मैसेज भेजे, तो हमारा बॉट उसे कारोबार के खुले होने के समय के बारे में जानकारी दे पाएगा. आपको इस तरह का मैसेज मिल सकता है:

125802166995afd5.png

सोर्स कोड को GCP पर डिप्लॉय करने के बाद, बदलाव तुरंत दिखने लगेंगे. हम वेब ऐप्लिकेशन को Google Cloud Platform में उसी तरह से कैश मेमोरी में सेव नहीं करते जिस तरह से एजेंट की जानकारी को कैश मेमोरी में सेव किया जाता है. इसलिए, आपको इस सुविधा को तुरंत आज़माने का विकल्प मिलेगा.

सोर्स में बदलाव करने के लिए, हमें यहां कुछ और काम करना है. इसलिए, एक और बदलाव करते हैं. इससे उपयोगकर्ता को ऑनलाइन शॉपिंग के बारे में पूछताछ करने की सुविधा मिलेगी. आपका डिजिटल एजेंट जवाब देगा कि यह सुविधा अभी उपलब्ध नहीं है. हालांकि, वह आपको बाद में वापस आकर देखने के लिए कहेगा.

उपयोगकर्ता को यह जानकारी देना कि ऑनलाइन खरीदारी की सुविधा जल्द ही उपलब्ध होगी

हम उसी तरह का बदलाव करेंगे जैसा हमने कारोबार के समय के बारे में उपयोगकर्ता को बताने के लिए किया था. इस बार, जानकारी को एक दिलचस्प इमेज के साथ रिच कार्ड में रखते हैं.

सामान्य किए गए मैसेज को पार्स करें और CMD_ONLINE_SHOPPING_INQUIRY नाम के कॉन्स्टेंट के लिए, "online-shopping-inquiry" पर सेट की गई वैल्यू की शर्त की जांच करें. अगर शर्त सही होती है, तो send_online_shopping_info_message को कॉल करें.

bm-django-echo-bot/bopis/views.py

...
# Set of commands the bot understands
CMD_RICH_CARD = 'card'
CMD_CAROUSEL_CARD = 'carousel'
CMD_SUGGESTIONS = 'chips'
CMD_BUSINESS_HOURS_INQUIRY = 'business-hours-inquiry'
CMD_ONLINE_SHOPPING_INQUIRY = 'online-shopping-inquiry'
...
...
...
def route_message(message, conversation_id):
    '''
    Routes the message received from the user to create a response.

    Args:
        message (str): The message text received from the user.
        conversation_id (str): The unique id for this user and agent.
    '''
    normalized_message = message.lower()

    if normalized_message == CMD_RICH_CARD:
        send_rich_card(conversation_id)
    elif normalized_message == CMD_CAROUSEL_CARD:
        send_carousel(conversation_id)
    elif normalized_message == CMD_SUGGESTIONS:
        send_message_with_suggestions(conversation_id)
    elif normalized_message == CMD_BUSINESS_HOURS_INQUIRY:
        send_message_with_business_hours(conversation_id)
    elif normalized_message == CMD_ONLINE_SHOPPING_INQUIRY:
        send_online_shopping_info_message(conversation_id)
    else:
        echo_message(message, conversation_id)
...

अब send_online_shopping_info_message की परिभाषा के बारे में जानें. हमें यह मैसेज, इमेज वाले रिच कार्ड में भेजना है. इसलिए, send_rich_card फ़ंक्शन को कॉपी करके, send_online_shopping_info_message को तय करने के लिए टेंप्लेट के तौर पर इस्तेमाल करते हैं.

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

bm-django-echo-bot/bopis/views.py

...
def send_online_shopping_info_message(conversation_id):
    fallback_text = ('Online shopping will be available soon!')

    rich_card = BusinessMessagesRichCard(
        standaloneCard=BusinessMessagesStandaloneCard(
            cardContent=BusinessMessagesCardContent(
                title='Online shopping info!',
                description='Thanks for your business, we are located in SF near the Golden Gate Bridge. Online shopping is not yet available, please check back with us in a few days.',
                suggestions=[],
                media=BusinessMessagesMedia(
                    height=BusinessMessagesMedia.HeightValueValuesEnum.MEDIUM,
                    contentInfo=BusinessMessagesContentInfo(
                        fileUrl=SAMPLE_IMAGES[4],
                        forceRefresh=False
                    ))
                )))

    message_obj = BusinessMessagesMessage(
        messageId=str(uuid.uuid4().int),
        representative=BOT_REPRESENTATIVE,
        richCard=rich_card,
        fallback=fallback_text)

    send_message(message_obj, conversation_id)
...

बहुत बढ़िया! हमारा डिजिटल एजेंट, अब ऑनलाइन शॉपिंग के बारे में पूछताछ करने वाले लोगों को जवाब दे सकता है. फ़िलहाल, हमारा डिजिटल एजेंट ऑनलाइन शॉपिंग की सुविधा नहीं देता है. इसलिए, हम उपयोगकर्ता को एक मैसेज दिखाते हैं. इसमें हम उसे बताते हैं कि यह सुविधा जल्द ही उपलब्ध होगी. जब कोई व्यक्ति ऑनलाइन शॉपिंग के बारे में पूछता है, तो हमारा डिजिटल एजेंट इस तरह दिखता है.

5cd63c57c1b84f9a.png

हमने कारोबार के समय के बारे में उपयोगकर्ता को जानकारी देने के लिए, पहले भी एक बदलाव किया था. इसी तरह, अगर ngrok का इस्तेमाल किया जा रहा है, तो यह बदलाव तुरंत दिखेगा. इसके अलावा, GCP App Engine पर कोड डिप्लॉय करने के तुरंत बाद भी यह बदलाव दिखेगा.

अगले हिस्से में, हम बातचीत शुरू करने के लिए सुझावों और चिप का इस्तेमाल करेंगे, ताकि बातचीत को सही दिशा में ले जाया जा सके.

बातचीत को आगे बढ़ाने के लिए चिप का इस्तेमाल करना

हमने सोर्स कोड में कुछ बदलाव किए हैं और अपडेट किए गए डिजिटल एजेंट को डिप्लॉय कर दिया है. हालांकि, हम कभी भी यह उम्मीद नहीं करते कि लोग कारोबार के बारे में पूछताछ करने के लिए, "business-hours-inquiry" या "online-shopping-info" टाइप करें. आइए, बातचीत शुरू करने के लिए उपलब्ध विकल्पों को अपडेट करें, ताकि बातचीत शुरू होने पर उपयोगकर्ता को न सिर्फ़ एक अच्छा वेलकम मैसेज मिले, बल्कि बातचीत शुरू करने के लिए विकल्प भी मिलें.

Business Communications Console पर जाएं और अपने एजेंट के एजेंट की जानकारी पेज को ऐक्सेस करें. हमने पहले "चिप", "कार्ड", और "कैरसेल" के लिए बातचीत शुरू करने वाले सुझावों को तय किया था. हालांकि, वे अब भी काम करते हैं, लेकिन वे अब हमारे कारोबार के लिए काम के नहीं हैं. इन रिच सुविधाओं को दिखाना जारी रखने के लिए, इन्हें शामिल किया जा सकता है. इसके अलावा, इन्हें हटाया भी जा सकता है, ताकि आपका डिजिटल एजेंट सिर्फ़ Bonjour Meal कारोबार के लिए बातचीत शुरू करने वाले सुझाव दिखाए.

हम बातचीत शुरू करने के लिए दो नए सुझाव तैयार करेंगे. पहले सवाल के लिए, टेक्स्ट को "आपके कारोबार के खुले होने का समय क्या है?" पर सेट करें. साथ ही, पोस्टबैक डेटा को "business-hours-inquiry" पर सेट करें. दूसरी बातचीत शुरू करने के लिए, टेक्स्ट को "क्या यहां खरीदारी की जा सकती है?" पर सेट करें. साथ ही, पोस्टबैक डेटा को "online-shopping-info" पर सेट करें.

नतीजा, इस स्क्रीनशॉट में दिखाए गए कॉन्फ़िगरेशन के जैसा होना चाहिए:

ef6e6888acea93e3.png

Business Communications Console में किए गए अन्य बदलावों की तरह ही, इस बदलाव को लागू होने में कुछ समय लगेगा. इसके बाद ही, आपको अपने फ़ोन या टैबलेट पर बदलाव दिखेंगे.

बातचीत शुरू करने के लिए सवालों के बारे में जानने के बाद, अब हमें यह भी जानना है कि बातचीत शुरू होने के बाद, उपयोगकर्ता को सही तरीके से जवाब कैसे दिया जाए. मैसेज भेजने के बाद, कॉन्टेक्स्ट के हिसाब से चिप का इस्तेमाल किया जा सकता है. इससे उपयोगकर्ता को उन अन्य सुविधाओं के बारे में बताया जा सकता है जो डिजिटल एजेंट के पास उपलब्ध हैं. इसलिए, जब भी कोई व्यक्ति कारोबार के खुले होने के समय या ऑनलाइन शॉपिंग के बारे में पूछता है, तो हम उसे एजेंट के साथ कोई और काम करने का सुझाव देने वाला मैसेज भेजेंगे.

फ़ंक्शन के आखिर में, यह जोड़ें:

bm-django-echo-bot/bopis/views.py

...
def send_online_shopping_info_message(conversation_id):
...
    # at the end of the function, send a message with suggestions
    message_obj = BusinessMessagesMessage(
        messageId=str(uuid.uuid4().int),
        representative=BOT_REPRESENTATIVE,
        text='Let us know how else we can help you:',
        fallback='Please let us know how else we can help you.',
        suggestions=[
            BusinessMessagesSuggestion(
                reply=BusinessMessagesSuggestedReply(
                text='Business hours',
                postbackData='business-hours-inquiry')
            ),
        ])

    send_message(message_obj, conversation_id)
...

# Let's do the same with the business hours
def send_message_with_business_hours(conversation_id):
...
    # at the end of the function, send a message with suggestions
    message_obj = BusinessMessagesMessage(
        messageId=str(uuid.uuid4().int),
        representative=BOT_REPRESENTATIVE,
        text='Let us know how else we can help you:',
        fallback='Please let us know how else we can help you.',
        suggestions=[
            BusinessMessagesSuggestion(
                reply=BusinessMessagesSuggestedReply(
                text='Can I purchase online?',
                postbackData='online-shopping-inquiry')
            ),
        ])

    send_message(message_obj, conversation_id)
...

ध्यान रखें कि BusinessMessagesSuggestion में मौजूद टेक्स्ट फ़ील्ड में ज़्यादा से ज़्यादा 25 वर्ण हो सकते हैं. इसके बारे में दस्तावेज़ में बताया गया है.

बातचीत शुरू करने के लिए अपडेट किए गए सुझावों और सुझाव चिप का रणनीतिक तरीके से इस्तेमाल करने के साथ, यहां उपयोगकर्ता अनुभव के कुछ स्क्रीनशॉट दिए गए हैं.

ef57695e2bacdd20.png

6. बधाई हो

बधाई हो, आपने Business Messages के लिए अपना पहला डिजिटल एजेंट बना लिया है!

आपने Business Messages पर अपने डिजिटल एजेंट को सपोर्ट करने के लिए, एक वेब ऐप्लिकेशन डिप्लॉय किया. साथ ही, एजेंट में बदलाव करने के लिए Business Communications Console का इस्तेमाल किया. इसके अलावा, आपने सोर्स कोड में बदलाव करके, डिजिटल एजेंट के साथ उपयोगकर्ता अनुभव को बेहतर बनाया.

अब आपको Business Messages में इंटरैक्टिव अनुभव बनाने के लिए ज़रूरी मुख्य चरणों के बारे में पता चल गया है. अब आपके पास कई बेहतरीन विकल्प उपलब्ध हैं. आपके एजेंट को इन्वेंट्री लुकअप की सुविधा देने के लिए बढ़ाया जा सकता है. इसके अलावा, शॉपिंग कार्ट की सुविधा भी जोड़ी जा सकती है, ताकि यह ट्रैक किया जा सके कि उपयोगकर्ता किस चीज़ में दिलचस्पी दिखा सकता है. मेन्यू में मौजूद आइटम दिखाने के लिए, कैरसेल का इस्तेमाल किया जा सकता है. साथ ही, सुझावों का इस्तेमाल करके, लोगों को उनकी दिलचस्पी के हिसाब से आइटम चुनने की अनुमति दी जा सकती है.

यहां एक टीज़र दिया गया है, जिसमें बताया गया है कि यह सुविधा कैसी दिख सकती है.

57d2bb7b0ec38c81.png

मैं बातचीत वाली सुविधा को बेहतर कैसे बनाऊं?

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

कॉन्टेक्स्ट देना और उम्मीदें तय करना

संदर्भ देने का मतलब, साफ़ तौर पर यह बताना हो सकता है कि आप उपयोगकर्ता की मदद कैसे कर सकते हैं. इसके अलावा, डिजिटल एजेंट को ऐसे किरदार के तौर पर पेश किया जा सकता है जिससे उपयोगकर्ता जुड़ाव महसूस कर सके. Business Messages पर मौजूद सफल एजेंट, अवतार का इस्तेमाल करके लोगों को यह बताते हैं कि वे किससे बातचीत कर रहे हैं.

उपयोगकर्ता की उम्मीदें, आपके बनाए गए उपयोगकर्ता अनुभव पर निर्भर करती हैं. उदाहरण के लिए, अगर आपका एजेंट इन्वेंट्री लुकअप की सुविधा देता है, तो जवाब देने से पहले उपयोगकर्ता को बताएं कि उपलब्धता कम हो सकती है.

उपयोगकर्ता को सुविधा देना

उपभोक्ता, कारोबारों से हर समय जुड़े रहते हैं. Business Messages की मदद से, उपयोगकर्ता कई तरह के काम कर सकते हैं. जैसे, ऑर्डर का स्टेटस देखना या यह पता लगाना कि कोई आइटम स्टॉक में है या नहीं. कई लोग, कारोबारों की वेबसाइट पर जवाब उपलब्ध होने के बावजूद, अपने सवालों के जवाब पाने के लिए उन्हें फ़ोन करते हैं. इस वजह से, कारोबारों को कॉल की संख्या को मैनेज करने के लिए ज़्यादा संसाधनों का इस्तेमाल करना पड़ता है. ऐसा खास तौर पर छुट्टियों के दौरान होता है.

उपयोगकर्ता की दिलचस्पी बनाए रखना

बातचीत को जारी रखने के लिए, बातचीत वाले टच पॉइंट उपलब्ध कराएं. मैसेज के बीच में, टाइपिंग इंडिकेटर चालू किए जा सकते हैं. इससे उपयोगकर्ता को पता चलेगा कि उसके सवाल का जवाब तैयार किया जा रहा है.

टाइपिंग इंडिकेटर, सुझाव वाले चिप, रिच कार्ड, और कैरसेल जैसी बेहतर सुविधाओं की मदद से, उपयोगकर्ता को आसानी से टास्क पूरा करने में मदद की जा सकती है. जैसे, आइटम के मेन्यू से ऑर्डर करना. इसका मकसद, किसी कारोबार के फ़ोन नंबर पर आने वाले कॉल की संख्या को कम करना है.

यह ज़रूरी है कि बातचीत में उपयोगकर्ता को कोई सुविधा मिले. मैसेजिंग के ज़रिए किसी कारोबार से जुड़ने वाले लोग चाहते हैं कि उनके सवालों के जवाब तुरंत मिलें. अगर डिजिटल एजेंट को सही जानकारी नहीं मिलती है, तो वह बातचीत को आगे नहीं बढ़ा पाता. इससे उपयोगकर्ता का अनुभव खराब हो सकता है. हालांकि, इस समस्या को हल करने के कुछ तरीके हैं. जैसे, बातचीत को लाइव एजेंट को ट्रांसफ़र करना. इसके बारे में हम आने वाले समय में कोडलैब में बताएंगे.

आगे क्या करना है?

जब आप तैयार हों, तो Business Messages में ज़्यादा जटिल इंटरैक्शन के बारे में जानने के लिए, यहां दिए गए कुछ विषयों को देखें

रेफ़रंस दस्तावेज़