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

उपयोगकर्ता, आरसीएस क्लाइंट की मदद से कोई भी टेक्स्ट, जगह की जानकारी या फ़ाइलें भेज सकते हैं. आपके एजेंट को उपयोगकर्ता की ओर से भेजे गए किसी भी टेक्स्ट, जगह की जानकारी या फ़ाइलों को हैंडल करना होगा. साथ ही, उन मैसेज की वजह से होने वाली किसी भी गड़बड़ी को ठीक करना होगा.
आने वाले मैसेज मैनेज करना
आपका एजेंट, उपयोगकर्ताओं के मैसेज को कैसे हैंडल करता है और उनका जवाब कैसे देता है, यह आपके कारोबार के लॉजिक पर निर्भर करता है. हालांकि, आम तौर पर किसी उपयोगकर्ता के मैसेज का जवाब देने का तरीका एक जैसा होता है.
पहला चरण: यह पता लगाना कि उपयोगकर्ता ने किस तरह का मैसेज भेजा है
उपयोगकर्ता चार तरह के मैसेज भेज सकते हैं:
- टेक्स्ट मैसेज, फ़्रीफ़ॉर्म जवाब होते हैं.
- सुझाव वाले मैसेज में, पोस्टबैक डेटा और सुझाव वाली कार्रवाई या सुझाव वाले जवाब का टेक्स्ट शामिल होता है. यह वही कार्रवाई या जवाब होता है जिस पर उपयोगकर्ता ने टैप किया था.
जगह की जानकारी वाले मैसेज में अक्षांश और देशांतर की वैल्यू शामिल होती हैं.
फ़ाइल वाले मैसेज में, किसी फ़ाइल का यूआरआई और उससे जुड़ा डेटा शामिल होता है.
दूसरा चरण: मैसेज के कॉन्टेंट को प्रोसेस करना
उपयोगकर्ता के मैसेज के कॉन्टेंट से, बातचीत में आपके एजेंट के लॉजिक और अगले जवाब के बारे में पता चलना चाहिए.
उपयोगकर्ता के मकसद का पता लगाने का सबसे आसान तरीका, सुझाए गए जवाब या सुझाई गई कार्रवाई से मिलने वाला पोस्टबैक डेटा है. सुझाव से जुड़े टेक्स्ट के बावजूद, पोस्टबैक डेटा को मशीन पढ़ सकती है.
अगर कोई व्यक्ति टेक्स्ट मैसेज भेजता है, तो आपका एजेंट जवाब में दिए गए कीवर्ड को पार्स कर सकता है. इसके अलावा, वह NLU (जैसे कि Dialogflow) का इस्तेमाल करके, व्यक्ति के मैसेज को प्रोसेस कर सकता है और आगे की कार्रवाई तय कर सकता है.
जगह और फ़ाइल के मैसेज में टेक्स्ट या पोस्टबैक डेटा शामिल नहीं होता. इसलिए, आपके एजेंट को जवाब देने से पहले, बातचीत के कॉन्टेक्स्ट और हाल ही के मैसेज पर ध्यान देना चाहिए.
अगर आपके एजेंट को उपयोगकर्ता के मैसेज का जवाब देने का तरीका नहीं पता है, तो उसे गड़बड़ी की स्थिति के बारे में बताना चाहिए. साथ ही, बातचीत जारी रखने की कोशिश करनी चाहिए. इसके लिए, उपयोगकर्ता से ज़्यादा जानकारी मांगी जा सकती है, किसी दूसरे तरीके से इनपुट मांगा जा सकता है या ऐसे जवाब और कार्रवाइयां सुझाई जा सकती हैं जिनके बारे में एजेंट को जवाब देने का तरीका पता हो.
तीसरा चरण: इंटरैक्शन के लिए, कारोबार से जुड़े लॉजिक को पूरा करना
जब आपका एजेंट, उपयोगकर्ता के मैसेज का सही जवाब पहचान लेता है, तब वह आपके इन्फ़्रास्ट्रक्चर से ज़रूरी जानकारी इकट्ठा करता है. साथ ही, बातचीत के लिए कारोबारी नियमों को पूरा करने के लिए, ज़रूरत के मुताबिक अन्य सिस्टम के साथ जुड़ता है.
चौथा चरण: उपयोगकर्ता को जवाब देना
जब एजेंट, इंटरैक्शन के लिए कारोबार से जुड़ी लॉजिक को पूरा कर लेता है, तब वह दूसरा मैसेज भेजता है और उपयोगकर्ता के साथ बातचीत जारी रखता है.
उदाहरण
यहां दिए गए कोड में बताया गया है कि आपके एजेंट को मैसेज कैसे मिलते हैं. फ़ॉर्मैटिंग और वैल्यू की जानकारी के लिए, UserMessage देखें.
ध्यान दें: अमेरिका में मौजूद उपयोगकर्ताओं के लिए, सुझाए गए विकल्पों पर टैप करने और उपयोगकर्ता मैसेज भेजने पर, अमेरिका के बिलिंग मॉडल के हिसाब से शुल्क लिया जाता है. जब आपके एजेंट को ये इवेंट मिलेंगे, तब वे richMessageClassification फ़ील्ड को शामिल करेंगे. इससे बिल किए जा सकने वाले इवेंट टाइप का पता चलता है. क्लासिफ़िकेशन के बारे में ज़्यादा जानकारी के लिए, अमेरिका के लिए बिलिंग मॉडल गाइड देखें.
एजेंट को मैसेज मिलता है
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"text": "Hello, world!"
}एजेंट को सुझाव से कोई मैसेज मिलता है
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"suggestionResponse": {
"postbackData": "suggestion_1",
"text": "Suggestion #1"
}
}एजेंट को जगह की जानकारी मिलती है
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"location": {
"latitude": 37.422000,
"longitude": -122.084056
}
}एजेंट को फ़ाइल मिलती है
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }
आने वाले इवेंट मैनेज करना
जब आपके एजेंट के भेजे गए मैसेज, लोगों को मिल जाते हैं और वे उन्हें पढ़ लेते हैं, तब आपके एजेंट को सूचनाएं मिलती हैं.
यहां दिए गए कोड में बताया गया है कि आपके एजेंट को मैसेज कैसे मिलते हैं. फ़ॉर्मैटिंग और वैल्यू की जानकारी के लिए, UserEvent देखें.
उपयोगकर्ता को मैसेज डिलीवर हो गया
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"eventType": "DELIVERED"
}उपयोगकर्ता ने मैसेज पढ़ा
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"eventType": "READ"
}उपयोगकर्ता टाइप कर रहा है
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "IS_TYPING",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"agentId": "AGENT_ID"
}