1. परिचय
पिछली बार अपडेट किए जाने की तारीख: 11-05-2022
Business Messages में आपका स्वागत है!
कोडलैब का यह वर्शन Business Messages के साथ इंटिग्रेट करने का शुरुआती नाम है. इसकी मदद से, ग्राहक उन कारोबारों से जुड़ सकते हैं जिन्हें आपकी ओर से मैनेज किया जाता है. इसके लिए, Google Search और Maps का इस्तेमाल किया जाता है. ऐसा हो सकता है कि आपका कारोबार सीधे तौर पर Business Messages के साथ इंटिग्रेट करना हो. इसके अलावा, यह भी हो सकता है कि आपने अपने साथ काम करने वाले कारोबारों के लिए, मैसेजिंग सलूशन बनाने का काम किया हो. इसके अलावा, यह भी हो सकता है कि इस प्लैटफ़ॉर्म का इस्तेमाल शुरू करने के लिए आपने Business Messages ऐप्लिकेशन का इस्तेमाल किया हो.
चाहे आपको यहां क्या मिला हो, यह कोडलैब (कोड बनाना सीखना) शुरू करने का शानदार तरीका है. आखिर में, आपको अपना पहला डिजिटल एजेंट मिल जाएगा, जिससे उपयोगकर्ता इंटरैक्ट कर पाएंगे. अपने कारोबार की जानकारी में थोड़ा और सुधार करने के बाद, जब आप Business Messages पर अपने कारोबार को लॉन्च करने के लिए तैयार होंगे, तो आपके लाखों ग्राहकों तक पहुंचने की संभावना बढ़ जाएगी.
अच्छा डिजिटल एजेंट कैसे बनता है?
Business Messages, बातचीत करने का प्लैटफ़ॉर्म है. यह मोबाइल डिवाइसों पर ऐप्लिकेशन जैसा अनुभव देता है. इसकी मदद से, उपभोक्ता कोई और ऐप्लिकेशन इंस्टॉल किए बिना कारोबारों से जुड़ सकते हैं. डिजिटल एजेंट एक ऐसा लॉजिक है जिससे आपके ग्राहक इंटरैक्ट करते हैं. लॉजिक को ऐसे वेब ऐप्लिकेशन से मैनेज किया जाता है जिसे क्लाउड या आपके इन्फ़्रास्ट्रक्चर में डिप्लॉय किया गया है. यह पूरी तरह से आप पर निर्भर करता है कि आप उपयोगकर्ता को कैसे जवाब देते हैं. बेहतरीन एजेंट लोगों की उम्मीदें तय करने, ग्राहकों की दिलचस्पी बनाए रखने, और उपयोगकर्ताओं की मदद करने के लिए सुविधाएं उपलब्ध कराते हैं ज़रूरतें पूरी करता है.
आपको क्या बनाना होगा
इस कोडलैब में, Bonjour Meal नाम की एक काल्पनिक कंपनी के लिए, Business Messages पर एक डिजिटल एजेंट बनाया जा रहा है. यह डिजिटल एजेंट कुछ आसान सवालों के जवाब देगा. जैसे, "कॉल कितने बजे बंद होता है?" या "क्या ऑनलाइन खरीदारी की जा सकती है?".
इस कोडलैब में, आपके उपयोगकर्ता डिजिटल एजेंट के ज़रिए आइटम खरीद सकेंगे और पैसे इकट्ठा करने के लिए, लोगों को पेमेंट प्रोसेस करने वाली कंपनी की वेबसाइट पर भेज सकेंगे. इसके बाद, वे स्टोर में अपने काल्पनिक आइटम पिक अप करने का शेड्यूल तय कर सकेंगे.
इस कोडलैब में, आपका ऐप्लिकेशन ये काम कर पाएगा
- सुझावों वाले चिप की मदद से सवालों के जवाब दें
- उपयोगकर्ता को ऐसे सवाल पूछने के लिए गाइड करें जिनके जवाब आपका डिजिटल एजेंट दे सकता है
- बातचीत में लोगों की दिलचस्पी बनाए रखने के लिए, बातचीत करने की बेहतरीन सुविधाएं उपलब्ध कराएं
आपको इनके बारे में जानकारी मिलेगी
- Google Cloud Platform पर App Engine पर वेब ऐप्लिकेशन डिप्लॉय करने का तरीका. इसके अलावा, आप अपने स्थानीय ऐप्लिकेशन को सार्वजनिक रूप से टेस्ट करने के लिए, ngrok का इस्तेमाल कर सकते हैं.
- उपयोगकर्ताओं से मैसेज पाने के लिए, वेब ऐप्लिकेशन वेबहुक की मदद से Business Messages खाते को कॉन्फ़िगर करने का तरीका
- Business Messages API का इस्तेमाल करके, कार्ड, कैरसेल, और बातचीत के सुझाव जैसी रिच सुविधाएं कैसे भेजें
- Business Messages से आपको मैसेज कैसे मिलते हैं
इस कोडलैब का फ़ोकस, आपका पहला डिजिटल एजेंट बनाने पर है.
आपको इन चीज़ों की ज़रूरत होगी
- Business Communications डेवलपर खाते के लिए बिना किसी शुल्क के रजिस्टर करें
- अगर आपको यह जानना है कि क्या करना है, तो हमारी डेवलपर साइट पर जाएं
- वर्शन 5 या इसके बाद के वर्शन वाला Android डिवाइस या Google Maps ऐप्लिकेशन वाला iOS डिवाइस
- वेब ऐप्लिकेशन प्रोग्रामिंग का अनुभव
- इंटरनेट कनेक्शन है!
2. सेट अप किया जा रहा है
एपीआई चालू करना
इस कोडलैब के लिए, हम Django ऐप्लिकेशन के साथ काम करेंगे, इसलिए हम ऐप्लिकेशन को App Engine पर डिप्लॉय करने के लिए, Cloud Build API पर भरोसा करेंगे. इसके अलावा, अगर ngrok का इस्तेमाल किया जा रहा है, तो Cloud Build API को चालू करने की ज़रूरत नहीं है.
Cloud Build API को चालू करने के लिए:
- Google Cloud Console में Cloud Build API खोलें.
- चालू करें पर क्लिक करें.
सेवा खाता बनाना
Business Communications और Business Messages के एपीआई ऐक्सेस करने के लिए, आपको सेवा खाता बनाना होगा. Business Communications डेवलपर कंसोल में, सेवा खाता बनाने के दस्तावेज़ में दिए गए निर्देशों का पालन करें.
Django Python EchoBot स्टार्टर कोड को डिप्लॉय करना
किसी टर्मिनल में, यहां दिए गए निर्देश की मदद से, अपने प्रोजेक्ट की काम करने वाली डायरेक्ट्री में Django Echo Bot सैंपल का क्लोन बनाएं:
$ git clone https://github.com/google-business-communications/bm-bonjour-meal-django-starter-code
सेवा खाते के लिए बनाई गई JSON क्रेडेंशियल फ़ाइल को, सैंपल के रिसॉर्स फ़ोल्डर में कॉपी करें. साथ ही, क्रेडेंशियल का नाम बदलकर "bm-agent-service-account-Credentials.json" करें.
bm-bonjour-meal-django-starter-code/bonjourmeal-codelab/step-1/resources/bm-agent-service-account-credentials.json
किसी टर्मिनल में, सैंपल की चरण-1 डायरेक्ट्री पर जाएं.
सैंपल डिप्लॉय करने के लिए, किसी टर्मिनल में इन कमांड को चलाएं:
$ 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 डेवलपर कंसोल में खाता सेटिंग पेज पर अपना वेबहुक यूआरएल सेट करना होगा.
वेबहुक यूआरएल, ऐप्लिकेशन का यूआरएल + "/callback/" होगा. उदाहरण के लिए, यह कुछ ऐसा हो सकता है: https://PROJECT_ID.appspot.com/callback/
Business Communications कंसोल के खाता सेटिंग पेज पर जाएं. सबसे ऊपर दाएं कोने में नेविगेशन बार के नीचे, आपको अपने GCP प्रोजेक्ट का नाम दिखेगा. अगर आपको ड्रॉपडाउन दिखता है, तो अपना GCP प्रोजेक्ट चुनें.
संपर्क करने के तकनीकी केंद्र की जानकारी भरें. इसके बाद, डिप्लॉय किए गए अपने ऐप्लिकेशन के लिए, वेबहुक को वेबहुक यूआरएल से अपडेट करें.
अपने GCP प्रोजेक्ट के रेफ़रंस के बगल में मौजूद, सेव करें पर क्लिक करें.
3. अपना पहला एजेंट बनाया जा रहा है
Business Communications डेवलपर कंसोल का इस्तेमाल करना
Business Communications कंसोल में, सबसे ऊपर बाईं ओर मौजूद लोगो पर क्लिक करके कंसोल के डैशबोर्ड पर वापस आएं. इसके बाद, एजेंट बनाएं पर क्लिक करें. एजेंट बनाने के साथ ही एक ब्रैंड भी बनाया जा सकता है. एजेंट टाइप के लिए Business Messages चुनें और पक्का करें कि पार्टनर की जानकारी सही हो.
ब्रैंड में, उस ब्रैंड का नाम लिखें जिसे बनाया जा रहा है. ब्रैंड एक ऐसा कारोबार है जिसके साथ मिलकर काम किया जा रहा है. साथ ही, उपभोक्ता एजेंट से बातचीत करके देख सकते हैं. एजेंट का नाम से बताएं कि आपको Business Messages की बातचीत में उपयोगकर्ताओं को क्या दिखाना है. अगर काल्पनिक हैनजोर खाने का मामला है, तो बॉन्डर रेल एक रेलवे कंपनी है, जो बॉन्योर मील रेस्टोरेंट को मैनेज करती है. इसलिए, मैं Bonjour Rail को ब्रैंड के तौर पर और Bonjour Meal को एजेंट के तौर पर बताऊंगा.
एजेंट, बातचीत वाली ऐसी इकाई है जो ब्रैंड का प्रतिनिधित्व करती है.
एजेंट बनाएं पर क्लिक करें और कंसोल को कुछ काम करने दें. ब्रैंड और एजेंट बनाने के लिए, Business Communications API को कई अनुरोध करने में कुछ सेकंड लगते हैं. एजेंट और ब्रैंड बनाने के लिए, सीधे Business Communications API का इस्तेमाल किया जा सकता है. इस दस्तावेज़ को देखें और जानें कि कर्ल अनुरोध में भी वही काम किए जाएंगे जो कंसोल कर रहा है.
अपनी पहली बातचीत करना
आपने अभी जो एजेंट बनाया है उसे खोलें. इसके बाद, आपको खास जानकारी वाला पेज दिखेगा. यहां से अपने एजेंट की जानकारी की समीक्षा की जा सकती है. एजेंट के टेस्ट यूआरएल देखें. इन यूआरएल का इस्तेमाल, आपके डिवाइस पर बातचीत वाले प्लैटफ़ॉर्म को शुरू करने के लिए किया जाता है.
किसी भी चिप पर क्लिक करके, टेस्ट यूआरएल कॉपी किया जा सकता है. बेशक, आपके पास जिस डिवाइस से जांच करनी है उसके टेस्ट यूआरएल को कॉपी करें. आप जैसे चाहें, इस कॉपी किए गए मैसेज को अपने डिवाइस पर भेजें.
मोबाइल डिवाइस पर लिंक पर टैप करने से, Business Messages के एजेंट लॉन्चर को फिर से शुरू कर दिया जाता है. इसमें आपके एजेंट का टेस्ट यूआरएल पहले से ही मौजूद होता है.
एजेंट से बातचीत करने वाले प्लैटफ़ॉर्म को शुरू करने के लिए, लॉन्च करें पर टैप करें.
एजेंट से बातचीत करें और यह जानें कि एजेंट क्या-क्या कर सकता है. ज़्यादातर मामलों में, आपको दिखेगा कि बातचीत वाली सतह सिर्फ़ आपके मैसेज इको करेगी. उसे "हैलो, दुनिया!" जैसा कुछ भेजें इसके बाद, एजेंट आपको वही मैसेज वापस भेजेगा.
डिप्लॉय किए गए ऐप्लिकेशन में, Business Messages पर उपलब्ध बेहतर सुविधाओं को दिखाने के लिए कुछ तर्क भी शामिल किए गए हैं.
- "कार्ड" भेजने पर, आपको रिच कार्ड शुरू होगा
- "चिप" भेजने पर, सुझाव वाले चिप शुरू हो जाएंगे
- "कैरोसेल" भेजने पर, रिच कार्ड का कैरसेल शुरू होगा
बधाई हो! यह आपके साथ आपके एजेंट की शुरुआती बातचीत है!
इन सभी बेहतर सुविधाओं का इस्तेमाल, आपके एजेंट से बातचीत करने वाले व्यक्ति को बेहतर तरीके से जानकारी देने के लिए किया जा सकता है. आइडिया को बेहतर तरीके से बताने के लिए, रिच कार्ड में ग्राफ़िकल ऐसेट भेजें या बातचीत को गाइड करने के लिए सुझाव वाले चिप का इस्तेमाल करें.
वेलकम मैसेज अपडेट करना और बातचीत की जानकारी देने वाले चिप का इस्तेमाल करना
चलिए, Developer Console के साथ कुछ प्रैक्टिस करते हैं. देखें कि एजेंट के वेलकम मैसेज में बदलाव करने का तरीका और उपयोगकर्ता को बातचीत करने में मदद करने के लिए सुझाव वाले चिप का फ़ायदा कैसे उठाएं.
एजेंट के खास जानकारी पेज पर जाएं और एजेंट की जानकारी चुनें. नीचे की ओर स्क्रोल करके, वेलकम मैसेज और बातचीत शुरू करने वाले सेक्शन पर जाएं.
वेलकम मैसेज (पीला इनपुट फ़ील्ड) को अपडेट करें, ताकि उसे पढ़ा जा सके:
Bonjour Meal स्टार्टर एजेंट में आपका स्वागत है. हम आपके मैसेज इको कर सकते हैं और प्लैटफ़ॉर्म पर काम करने वाली कुछ बेहतर सुविधाएं दिखा सकते हैं. आप इन सुझावों को आज़मा सकते हैं!
सुझाव वाले चिप, कैरसेल, और कार्ड को शुरू करने के लिए बातचीत शुरू करने के विकल्प जोड़ने के लिए, ऊपर दी गई इमेज में बैंगनी रंग के बॉक्स में बताए गए तरीके के मुताबिक, + बातचीत स्टार्टर जोड़ें पर क्लिक करें. आपने जो बातचीत शुरू करने के लिए ज़रूरी जानकारी जोड़ी है उसमें टेक्स्ट कॉम्पोनेंट और postbackData कॉम्पोनेंट की ज़रूरत होगी. टेक्स्ट वह होता है जिसे उपयोगकर्ता को दिखाया जाता है, जबकि पोस्टबैक डेटा वही होता है जो आपके एजेंट के वेबहुक को भेजा जाता है. वेबहुक, पोस्टबैक डेटा के लिए पार्स करता है और उपयोगकर्ता को सही जवाब भेजेगा.
बदलाव के बाद, कंसोल में एजेंट की जानकारी कुछ ऐसी दिखती है:
कंसोल के दाईं ओर, आपको एजेंट की झलक दिखाई देती है. ध्यान दें कि वेलकम मैसेज में, हाल ही में बदले गए मैसेज और उसके नीचे मौजूद सुझाव वाले चिप के बारे में कैसे पता चलता है?
उपयोगकर्ता अनुभव कैसा होगा, इस बारे में अनुमान लगाने के लिए यह एक अच्छा टूल है. इसका इस्तेमाल, अपना एजेंट बनाते समय और उपयोगकर्ता के सफ़र की योजना बनाते समय किया जा सकता है.
माफ़ करें, हम इन बदलावों को बातचीत में तुरंत नहीं देख पाएंगे, क्योंकि पिछला डेटा, Business Messages के इंफ़्रास्ट्रक्चर में कैश मेमोरी में सेव किया जाता है. कैश मेमोरी करीब हर दो घंटे में मिट जाती है. इसलिए, इसे कल आज़माया जा सकता है.
इस बीच, चलिए देखते हैं कि हुड के तहत सबकुछ कैसे काम करता है.
4. स्टार्टर कोड का विश्लेषण किया जा रहा है
सोर्स कोड का 10,000 फ़ुट व्यू
लागू किया गया स्टार्टर कोड, लोगों को वापस मैसेज भेजता है. इससे उपयोगकर्ताओं को रिच कार्ड, कैरसेल या सुझाव वाले चिप भी दिखाए जा सकते हैं. आइए, सोर्स कोड के बारे में ज़्यादा जानें, ताकि हम समझ सकें कि यह कैसे काम करता है. इसके बाद हम यह तय करेंगे कि हमें किस तरह के बदलाव की ज़रूरत है.
स्टार्टर कोड Django प्रोजेक्ट है. कोडलैब की इस सीरीज़ के बाद के हिस्से में, हम शॉपिंग कार्ट और उससे जुड़ी बातचीत जैसे डेटा को सेव रखने के लिए, Google Datastore का इस्तेमाल करेंगे. अगर आपने पहले Django का इस्तेमाल नहीं किया है, तो चिंता न करें, यह काफ़ी आसान है और इस कोडलैब के आखिर तक आपको पता चल गया होगा कि यह कैसे काम करता है.
हाई लेवल पर Django, यूआरएल को व्यू में रूट करेगा और व्यू लॉजिक, ब्राउज़र में रेंडर होने वाला टेंप्लेट बनाता है. आइए, प्रोजेक्ट के urls.py पर एक नज़र डालें.
bm-django-echo-bot/bmcodelab/urls.py [लाइन 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 [लाइन 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>.")
...
इस छोटे से तर्क को आपका वेब सर्वर तब एक्ज़ीक्यूट करता है, जब उसे प्रोजेक्ट के रूट की ओर इशारा करने वाला वेब अनुरोध मिलता है. यहां कुछ भी शानदार नहीं होता है: हम बस कुछ HTML वाले HTTPResponse को वापस उस ब्राउज़र पर लौटा देते हैं, जिसने अनुरोध किया था. हां, आपके पास प्रोजेक्ट का रूट यूआरएल खोलने का विकल्प है. हालांकि, इसमें कुछ और करने की ज़रूरत नहीं है, क्योंकि कोडलैब आपको वापस इस प्रोजेक्ट पर ले जाया जाता है.
दूसरा यूआरएल, bopis/views.py
में भी callback
नाम के फ़ंक्शन पर ले जाता है. आइए, इस फ़ंक्शन के बारे में जानें.
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
फ़ंक्शन में भेजता है. इसके बाद, यह मैसेज मिलने की पुष्टि करने के लिए, Business Messages के इंफ़्रास्ट्रक्चर को वापस HttpResponse दिखाता है.
यह एक ज़रूरी फ़ंक्शन है. इसके अलावा, यह आपके वेब ऐप्लिकेशन का वेबहुक भी है, जिसे आपके एजेंट के साथ इंटरैक्ट करने वाले उपयोगकर्ताओं के मैसेज मिलते हैं. Dialogflow जैसे ऑटोमेशन टूल को मैसेज भेजने के लिए, वेबहुक का इस्तेमाल किया जा सकता है. इससे यह समझने में मदद मिलती है कि उपयोगकर्ता क्या कह रहा है और उसके हिसाब से जवाब दे सकता है. मैसेज को फ़ॉरवर्ड भी किया जा सकता है, ताकि उपयोगकर्ता लाइव एजेंट से कनेक्ट कर सके. नीचे दिया गया डायग्राम देखें:
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 [लाइन 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 का इस्तेमाल करके किसी उपयोगकर्ता को आउटबाउंड मैसेज कैसे भेजता है?
जब आपका इन्फ़्रास्ट्रक्चर, उपयोगकर्ता को जवाब देता है, तो Business Messages API को जवाब भेजा जाता है, जो उपयोगकर्ता को मैसेज डिलीवर करता है.
Business Messages API में Python, Node.js, और Java की लाइब्रेरी हैं. हमारे पास एक REST 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 के मील एजेंट को अपनी पसंद के मुताबिक बनाएं.
5. अपने एजेंट को पसंद के मुताबिक बनाएं
अगर आपने अभी तक कोडलैब का इस्तेमाल किया है, तो हम आपके एजेंट की मदद लेंगे.
ठीक है, सुंदर नहीं है, असल में यह कुछ हद तक खाली दिख रही है और हमारे कारोबार को सही तरीके से पेश नहीं करती. अच्छी बात यह है कि हमें एजेंट की मदद करने वाले कोड के बारे में बुनियादी जानकारी है. साथ ही, हमारे पास ऐसे टूल हैं जिनकी मदद से हम अपने एजेंट को अपनी पसंद के मुताबिक बना सकते हैं.
कोडलैब के इस मॉड्यूल के बाकी बचे हिस्से में, हम एजेंट के लिए इन बातों का ध्यान रखेंगे:
- असली लोगो शामिल करें
- बेहतर वेलकम मैसेज
- कारोबार के खुले होने के समय के बारे में जानकारी देना
- उपयोगकर्ता को बताएं कि आइटम ऑनलाइन खरीदने की सुविधा जल्द ही आने वाली है
- बातचीत को आसान बनाने के लिए, बातचीत के सुझाव वाले चिप का इस्तेमाल करना
लोगो और वेलकम मैसेज अपडेट करने में हम आपकी मदद करने के लिए, Business Communications कंसोल का इस्तेमाल करेंगे. हालांकि, आपके पास यह विकल्प हमेशा रहेगा कि आप सीधे Business Communications एपीआई का इस्तेमाल करके यह काम कर सकें. इसके बाद, हमें सोर्स कोड को अपडेट करना होगा, ताकि कारोबार के खुले होने के समय के बारे में जानकारी देने वाले सही मैसेज भेजे जा सकें. साथ ही, Bonjour Meal पर जल्द ही ऑनलाइन शॉपिंग की सुविधा भी उपलब्ध कराई जाएगी. इसके बाद, हम Business Communications कंसोल पर वापस भेज देंगे और बातचीत के सुझाव वाले चिप बनाएंगे. इससे बातचीत को उस बेहतर अनुभव के लिए गाइड किया जा सकेगा जो डिजिटल एजेंट की मदद से काम करता है.
लोगो शामिल करना
Business Communications कंसोल में जाकर, अपना एजेंट चुनें और एजेंट की जानकारी पर जाएं. हम कारोबार के लोगो को अपडेट करना चाहेंगे, जैसा कि नीचे पीले रंग में बताया गया है.
अपलोड करें पर क्लिक करें. इसके बाद, अपलोड करने या यूआरएल से इंपोर्ट करने के लिए कोई इमेज चुनी जा सकेगी.
दस्तावेज़ में लोगो डिज़ाइन करने से जुड़े दिशा-निर्देश देखें. इनसे आपको पता चलेगा कि लोगो इस्तेमाल करने के सबसे सही तरीके कौनसे हैं.
चलिए, इस कोडलैब की शुरुआत में आपके क्लोन किए गए सोर्स कोड में मौजूद लोगो को अपलोड करते हैं. आपको यह डेटा स्टोर करने की जगह की ./assets/ डायरेक्ट्री में मिलेगा और फ़ाइल का नाम "bonzour_meal-logo.png" होता है. फ़ाइल को वेब ब्राउज़र पर मॉडल में खींचें और छोड़ें. इमेज क्वालिटी में बदलाव करने और इसे क्रॉप करने के लिए आपको एक लाइट एडिटिंग टूल दिखेगा. इमेज का रिज़ॉल्यूशन एडजस्ट करें और उसे इस तरह काटें कि इमेज 50 केबी की सीमा से कम या उसके बराबर हो. अगर आपको इमेज पसंद आ जाए, तो पुष्टि करने के लिए नीले रंग के सर्कल में मौजूद सही के निशान पर क्लिक करें. इसके बाद, मॉडल के सबसे नीचे मौजूद चुनें पर क्लिक करें.
आखिर में, एजेंट की जानकारी वाले पेज के सबसे ऊपर दाईं ओर सेव करें पर क्लिक करें. इस बदलाव को आपके डिवाइस पर दिखने में कुछ समय लगेगा, क्योंकि एजेंट की जानकारी हमारे सर्वर में कैश मेमोरी में सेव होती है. यह जानकारी, बदलाव होने के दो घंटों के अंदर दिखनी चाहिए.
वेलकम मैसेज को अपडेट करना
वेलकम मैसेज को अपडेट करने का काम, हमने इस कोडलैब में पहले ही कर लिया है. चलिए, फिर से ऐसा करते हैं. हालांकि, इस बार वेलकम मैसेज को कॉन्फ़िगर किया गया है, जो Bonjour Meal का इस्तेमाल करने वाले लोगों के अनुभव के हिसाब से ज़्यादा सही हो.
Business Communications कंसोल में, अपना एजेंट चुनें और एजेंट की जानकारी पर जाएं. नीचे की ओर तब तक स्क्रोल करें, जब तक आपको वेलकम मैसेज इनपुट फ़ील्ड न दिखे. यहां मैसेज अपडेट किया जा सकता है.
यह जानने के बाद कि हम बातचीत शुरू करने वाले लोगों को जोड़ देंगे, हम अपने वेलकम मैसेज में उनका रेफ़रंस दे सकते हैं. इनपुट फ़ील्ड में, आइए इसे नीचे दिए गए टेक्स्ट से बदलें:
"बोनजर के खाने में आपका स्वागत है. मैं एक असिस्टेंट हूं. मैं बोनजोर मील के बारे में आपके सवालों के जवाब दे सकती हूं. नीचे दिए गए विकल्पों में से कुछ आज़माएं."
आखिर में, एजेंट की जानकारी वाले पेज के सबसे ऊपर दाईं ओर सेव करें पर क्लिक करें. एक बार फिर से बता दें कि इस बदलाव को दिखने में कुछ समय लगेगा. ऐसा हमारी कैश मेमोरी की वजह से होता है, ताकि यह पक्का किया जा सके कि चीज़ें तेज़ हों!
कारोबार के खुले होने के समय के बारे में जानकारी देना
उपयोगकर्ताओं को यह जानकारी देने के लिए, हम Business Messages API का इस्तेमाल करके उन्हें पसंद के मुताबिक मैसेज भेजेंगे.
आपको याद होगा कि मैसेज को views.py
के route_message
फ़ंक्शन में पार्स किया जाता है. फ़ंक्शन सबसे पहले स्ट्रिंग को नॉर्मलाइज़ करता है और फिर यह जांच करना शुरू करता है कि नॉर्मलाइज़ किया गया मैसेज किसी भी हार्ड कोड किए गए पैरामीटर से मेल खाता है या नहीं. इसे आसानी से समझने के लिए, एक और शर्त जोड़ते हैं. इसमें हम यह जांच करते हैं कि सामान्य मैसेज एक नए कॉन्सटेंट के बराबर है या नहीं. इसे CMD_BUSINESS_HOURS_INQUIRY
कहा जाएगा और उसकी वैल्यू "business-hours-Question" होगा. अगर शर्त का आकलन सही लगता है, तो हम 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)
...
इससे ज़रूरी है कि हमारा बॉट, उपयोगकर्ता को कारोबार के खुले होने के समय के बारे में यह मैसेज भेजे जाने पर जवाब दे सके: "कारोबार के खुले होने का समय के बारे में पूछताछ". ऐसा हो सकता है कि:
सोर्स कोड को GCP में डिप्लॉय करने के बाद, बदलाव तुरंत दिखने लगेंगे. हम Google Cloud Platform में वेब ऐप्लिकेशन को उसी तरह कैश मेमोरी में नहीं रखते जैसे एजेंट की जानकारी कैश मेमोरी में सेव किया जाता है. इसलिए, आपके पास इस सुविधा को तुरंत आज़माने का विकल्प है.
सोर्स में बदलाव करने को लेकर हम थोड़ी-बहुत दिलचस्पी दिखा रहे हैं. चलिए, अब एक और बदलाव करते हैं, जिससे उपयोगकर्ता ऑनलाइन शॉपिंग के बारे में पूछताछ कर सकेंगे. आपका डिजिटल एजेंट जवाब देगा कि यह सुविधा अभी उपलब्ध नहीं है. हालांकि, इसे बाद में आकर देखना होगा.
लोगों को यह बताना कि जल्द ही ऑनलाइन शॉपिंग करने की सुविधा उपलब्ध होगी
हम वही बदलाव करेंगे जो हमने उपयोगकर्ता को कारोबार के खुले होने के समय के बारे में बताने के लिए किया था. इस बार, आइए एक आकर्षक इमेज के साथ जानकारी को एक रिच कार्ड में रखें.
नॉर्मलाइज़ किए गए मैसेज को पार्स करें और CMD_ONLINE_SHOPPING_INQUIRY
नाम वाले कॉन्स्टेंट के लिए शर्त देखें. इसकी वैल्यू को "online-shopping- query" पर सेट किया गया हो जो शर्त के सही होने पर 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)
...
बहुत बढ़िया! हमारा डिजिटल एजेंट, अब ऑनलाइन शॉपिंग के बारे में लोगों के सवाल-जवाब कर सकता है. फ़िलहाल, हमारा डिजिटल एजेंट ऑनलाइन शॉपिंग की सुविधा नहीं देता है. इसलिए, हम उपयोगकर्ता को मैसेज भेजकर बताएंगे कि यह सुविधा जल्द ही उपलब्ध होगी. जब कोई उपयोगकर्ता ऑनलाइन शॉपिंग के बारे में पूछताछ करता है, तब हमारा डिजिटल एजेंट कुछ ऐसा दिखता है.
उपयोगकर्ता को कारोबार के खुले होने के समय के बारे में पूछताछ करने के लिए किए गए पिछले बदलाव की तरह ही, ngrok का इस्तेमाल करने पर या GCP App Engine में कोड को डिप्लॉय करते ही, यह बदलाव तुरंत दिख सकता है.
अगले हिस्से में, हम बातचीत शुरू करने के लिए पॉइंट और सुझाव वाले चिप का इस्तेमाल करेंगे. इससे बातचीत को खुशनुमा बनाने में मदद मिलेगी.
बातचीत को गाइड करने के लिए चिप का इस्तेमाल करना
हमने सोर्स कोड में कुछ बदलाव किए हैं और अपडेट किया गया डिजिटल एजेंट डिप्लॉय कर दिया है. हालांकि, हम यह उम्मीद कभी नहीं करेंगे कि उपयोगकर्ता "business-hours- query" टाइप करेंगे या "ऑनलाइन खरीदारी की जानकारी" उस कारोबार के बारे में पूछताछ करने के लिए. चलिए, बातचीत शुरू करने के लिए ऐसे स्टार्टर को अपडेट करते हैं कि जब कोई उपयोगकर्ता बातचीत शुरू करता है, तो उसका स्वागत करने के लिए न सिर्फ़ एक अच्छा वेलकम मैसेज दिखता है, बल्कि उसे बातचीत शुरू करने के लिए भी नज़र आती है.
Business Communications कंसोल पर जाएं और अपने एजेंट की एजेंट की जानकारी वाले पेज को ऐक्सेस करें. हमने "चिप", "कार्ड", और "कैरोसेल" के लिए बातचीत शुरू करने के लिए पहले से तय किए थे. हालांकि, ये अब भी काम कर रहे हैं, लेकिन ये अब हमारे कारोबार के काम के नहीं हैं. इन बेहतर सुविधाओं को दिखाना जारी रखने के लिए, उन्हें प्लैटफ़ॉर्म पर छोड़ा जा सकता है या फिर इन्हें हटाया जा सकता है. इससे आपका डिजिटल एजेंट, Bonjour Meal के कारोबार के लिए, बातचीत शुरू करने के विकल्प दिखा सकता है.
हम बातचीत शुरू करने के लिए दो नए विकल्प बनाएंगे. सबसे पहले, टेक्स्ट को "आपके कारोबार के खुले होने का समय क्या है?" पर सेट करें और पोस्टबैक डेटा को "कारोबार के घंटों के बारे में पूछताछ" पर सेट करें. दूसरे बातचीत स्टार्टर के लिए, टेक्स्ट को "क्या मैं यहां खरीदारी कर सकता/सकती हूं?" पर सेट करें और पोस्टबैक डेटा को "online-shopping-info" पर सेट करें.
इसके बाद, इस स्क्रीनशॉट के साथ कॉन्फ़िगरेशन शुरू होना चाहिए:
बिज़नेस कम्यूनिकेशन कंसोल में किए गए दूसरे बदलावों की तरह ही, इस बदलाव को लागू होने में कुछ समय लगेगा. इसके बाद ही, आपको अपने मोबाइल डिवाइस पर किए गए बदलावों को देखा जा सकेगा.
अब जब बातचीत शुरू करने के लिए पॉइंट इस्तेमाल करने की प्रक्रिया पूरी हो चुकी है, तो बातचीत शुरू होने के बाद, हम एक ऐसा तरीका चाहते हैं जिससे उपयोगकर्ता को एक बेहतर रास्ता मिल सके. मैसेज भेजे जाने के बाद, चिप का इस्तेमाल कॉन्टेक्स्ट के हिसाब से किया जा सकता है. इससे उपयोगकर्ता को उन अन्य सुविधाओं के बारे में पता चलता है जिन्हें डिजिटल एजेंट उपलब्ध करा सकता है. इसलिए, जब भी उपयोगकर्ता कारोबार के खुले होने के समय या ऑनलाइन शॉपिंग के बारे में पूछताछ करेगा, तब हम एजेंट को सुझाव के साथ एक मैसेज भेजेंगे.
इस फ़ंक्शन के आखिर में, ये जोड़ें:
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)
...
ध्यान रखें कि BusinessMessages सुझाव में शामिल टेक्स्ट फ़ील्ड में ज़्यादा से ज़्यादा 25 वर्ण हो सकते हैं. इसके बारे में दस्तावेज़ों में बताया गया है.
यहां बातचीत शुरू करने के नए तरीकों और सुझावों वाले चिप के रणनीतिक इस्तेमाल की मदद से, उपयोगकर्ताओं को बेहतर अनुभव देने के बारे में जानकारी दी गई है.
6. बधाई हो
बधाई हो, आपने Business Messages का अपना पहला डिजिटल एजेंट बना लिया है!
आपने Business Messages पर अपने डिजिटल एजेंट की मदद करने के लिए, वेब ऐप्लिकेशन डिप्लॉय किया है. साथ ही, एजेंट में बदलाव करने के लिए Business Communications कंसोल का इस्तेमाल किया है, और सोर्स कोड में बदलाव करके, डिजिटल एजेंट की मदद से उपयोगकर्ता अनुभव को बेहतर बनाया है.
अब आपको पता है कि Business Messages का इंटरैक्टिव अनुभव देने के लिए, कौन-कौनसी ज़रूरी शर्तें ज़रूरी हैं. आगे से यह सुविधा बहुत काम की है. आपके एजेंट को इन्वेंट्री खोजने में मदद करने के लिए बढ़ाया जा सकता है या उपयोगकर्ता की दिलचस्पी को ट्रैक करने के लिए शॉपिंग कार्ट की सुविधा शुरू की जा सकती है. कैरसेल का इस्तेमाल, मेन्यू में आइटम दिखाने और सुझावों का इस्तेमाल करने के लिए किया जा सकता है. इससे, उपयोगकर्ता अपनी पसंद के आइटम चुन सकते हैं.
यहां एक टीज़र दिया गया है, जिसमें बताया गया है कि यह कैसा दिख सकता है.
मैं बातचीत करने की सुविधा को बेहतर कैसे बनाऊं?
बेहतरीन एजेंट, उपयोगकर्ताओं को बातचीत के दौरान काम की जानकारी देते हैं. इससे वे कारोबार से जुड़े रह सकते हैं और कारोबार से इंटरैक्ट कर सकते हैं, जैसा कि आम तौर पर फ़ोन पर या व्यक्तिगत तौर पर किया जाता है. इस बारे में सोचें कि यहां दिए गए विषय उस बातचीत पर कैसे लागू हो सकते हैं जो आपको अपने कारोबार के साथ करनी है.
संदर्भ देना और उम्मीदें तय करना
संदर्भ के तौर पर, कुछ भी साफ़ तौर पर बताया जा सकता है कि उपयोगकर्ता को डिजिटल एजेंट के बारे में ऐसे पर्सोना के बारे में बताने में कैसे मदद की जा सकती है जिससे वह जुड़ सके. Business Messages पर सफल एजेंट, प्रतिनिधि के तौर पर इस्तेमाल होने वाले अवतार का इस्तेमाल करके, उपयोगकर्ता को बताते हैं कि वे किससे बात कर रहे हैं.
उम्मीदें सेट करना आपके बनाए जा रहे उपयोगकर्ता अनुभव पर निर्भर करता है. उदाहरण के लिए, अगर आपका एजेंट इन्वेंट्री लुकअप की सुविधा देता है, तो सबसे पहले उपयोगकर्ता को बताएं कि जवाब देने से पहले, हो सकता है कि खरीदारी के लिए उपलब्धता कम हो.
लोगों को फ़ंक्शन उपलब्ध कराना
उपभोक्ता हर समय कारोबारों से जुड़े रहते हैं. Business Messages, किसी ऑर्डर की स्थिति देखने से लेकर यह पता लगाने तक कि कोई आइटम स्टॉक में है या नहीं, Business Messages की मदद से उपयोगकर्ता के इंटरैक्शन को जटिल बनाया जा सकता है. कई उपयोगकर्ता अपने सवालों के जवाब पाने के लिए, कारोबारों को फ़ोन पर कॉल करते रहते हैं. भले ही, कारोबार की वेबसाइट पर जवाब उपलब्ध हों. इसका नतीजा यह होता है कि खास तौर पर छुट्टियों के दौरान, कॉल की संख्या को मैनेज करने के लिए, कारोबारों को ज़्यादा संसाधनों का इस्तेमाल करना पड़ता है.
उपयोगकर्ता को जोड़े रखना
बातचीत में लोगों की दिलचस्पी बनाए रखने के लिए, बातचीत वाले टच पॉइंट उपलब्ध कराएं. मैसेज के बीच में, टाइपिंग इंडिकेटर शुरू किए जा सकते हैं. इससे उपयोगकर्ता को पता चलता है कि उसके लिए जवाब तैयार किया जा रहा है.
इसमें टाइपिंग इंंडिकेटर, सुझाव वाले चिप, रिच कार्ड, और कैरसेल जैसी बेहतरीन सुविधाओं की मदद से, उपयोगकर्ताओं को हैपी पाथ का अनुभव दिया जा सकता है. इससे उन्हें कुछ टास्क पूरे करने में मदद मिलती है, जैसे कि आइटम के मेन्यू से ऑर्डर करना. इसका मकसद किसी कारोबार की फ़ोन लाइन पर आने वाले कॉल ट्रैफ़िक को कम करना है.
यह ज़रूरी है कि बातचीत में लोगों को कुछ सुविधाएं मिलें. मैसेज सेवा के ज़रिए किसी कारोबार से जुड़ने वाले उपयोगकर्ता, उम्मीद करते हैं कि उन्हें अपने सवालों के जवाब जल्द ही मिल जाएंगे. जो स्थिति सही नहीं होगी, डिजिटल एजेंट बातचीत की सुविधा नहीं दे सकता. इसकी वजह से उपयोगकर्ता को खराब अनुभव मिल सकता है. अच्छी बात यह है कि ऐसा कई तरीकों से किया जा सकता है. जैसे, बातचीत को लाइव एजेंट को ट्रांसफ़र करना, जिसके बारे में हम आने वाले समय में कोडलैब (कोड बनाना सीखना) में बताएंगे.
आगे क्या होगा?
जब आप तैयार हों, तब यहां दिए गए कुछ विषयों को पढ़ें. इससे आपको पता चलेगा कि Business Messages में ज़्यादा मुश्किल इंटरैक्शन कैसे किए जा सकते हैं
- एजेंट की ज़िंदगी: लॉन्च करने की रणनीति
- ज़रूरी शर्तें और दिशा-निर्देश
- लोगो के लिए दिशा-निर्देश
- सभी गाइड
पहचान फ़ाइलें
- SuggestedReply
- Business Messages के मैसेज का रेफ़रंस दस्तावेज़
- RichCard के लिए JSON की परिभाषा