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

उपयोगकर्ता, कोई भी टेक्स्ट, जगह की जानकारी या फ़ाइल भेज सकते हैं. हालांकि, यह इस बात पर निर्भर करता है कि उनके आरसीएस क्लाइंट में कौनसी सुविधाएं उपलब्ध हैं. आपके एजेंट को, उपयोगकर्ता की ओर से भेजे गए किसी भी टेक्स्ट, जगह की जानकारी या फ़ाइल को प्रोसेस करना होगा. साथ ही, उन मैसेज की वजह से होने वाली गड़बड़ियों को भी ठीक करना होगा.
यह जानने के लिए कि आपका एजेंट, मैसेज डिलीवर होने की सूचना, मैसेज पढ़े जाने की सूचना, और मैसेज लिखे जाने की सूचना को कैसे प्रोसेस कर सकता है, इवेंट पाना लेख पढ़ें.
आने वाले मैसेज को प्रोसेस करना
आपका एजेंट, उपयोगकर्ताओं के मैसेज को कैसे प्रोसेस करता है और उनका जवाब कैसे देता है, यह पूरी तरह से आपके कारोबार की लॉजिक पर निर्भर करता है. हालांकि, आम तौर पर उपयोगकर्ता के मैसेज का जवाब देने के चरण एक जैसे होते हैं.
पहला चरण: यह पता लगाना कि उपयोगकर्ता ने किस तरह का मैसेज भेजा है
उपयोगकर्ता चार तरह के मैसेज भेज सकते हैं:
- टेक्स्ट मैसेज, फ़्रीफ़ॉर्म जवाब होते हैं.
- सुझाव वाले मैसेज में, पोस्टबैक डेटा और सुझाए गए जवाब या कार्रवाई का टेक्स्ट शामिल होता है. यह वही जवाब या कार्रवाई होती है जिस पर उपयोगकर्ता ने टैप किया है.
जगह की जानकारी वाले मैसेज में, अक्षांश और देशांतर की वैल्यू शामिल होती हैं.
फ़ाइल वाले मैसेज में, किसी फ़ाइल का यूआरआई और उससे जुड़ा डेटा शामिल होता है.
दूसरा चरण: मैसेज के कॉन्टेंट को प्रोसेस करना
उपयोगकर्ता के मैसेज के कॉन्टेंट से, आपके एजेंट की लॉजिक और बातचीत में अगले जवाब के बारे में पता चलना चाहिए.
उपयोगकर्ता के मकसद की पहचान करने का सबसे आसान तरीका है कि सुझाए गए जवाब या कार्रवाई से मिले पोस्टबैक डेटा का इस्तेमाल किया जाए. सुझाव से जुड़े टेक्स्ट के बावजूद, पोस्टबैक डेटा को मशीन पढ़ सकती है.
अगर कोई उपयोगकर्ता टेक्स्ट मैसेज भेजता है, तो आपका एजेंट, काम के कीवर्ड के लिए जवाब को पार्स कर सकता है. इसके अलावा, उपयोगकर्ता के मैसेज को प्रोसेस करने और आगे की कार्रवाई तय करने के लिए, एनएलयू (जैसे, Dialogflow) का इस्तेमाल कर सकता है.
जगह की जानकारी और फ़ाइल वाले मैसेज में, टेक्स्ट या पोस्टबैक डेटा शामिल नहीं होता. इसलिए, जवाब देने से पहले, आपके एजेंट को बातचीत के कॉन्टेक्स्ट और हाल ही में मिले मैसेज को ध्यान में रखना चाहिए.
अगर आपके एजेंट को उपयोगकर्ता के मैसेज का जवाब देने का तरीका नहीं पता है, तो उसे गड़बड़ी की सूचना के साथ जवाब देना चाहिए. साथ ही, उपयोगकर्ता से ज़्यादा जानकारी मांगकर, अलग तरीके से इनपुट मांगकर या सुझाए गए जवाब और कार्रवाइयां दिखाकर बातचीत जारी रखने की कोशिश करनी चाहिए. एजेंट को इन जवाबों और कार्रवाइयों का जवाब देने का तरीका पता होना चाहिए.
तीसरा चरण: इंटरैक्शन के लिए, कारोबार की लॉजिक को पूरा करना
जब आपका एजेंट, उपयोगकर्ता के मैसेज के सही जवाब की पहचान कर लेता है, तो वह आपके इन्फ़्रास्ट्रक्चर से ज़रूरी जानकारी इकट्ठा करता है. साथ ही, इंटरैक्शन के लिए कारोबारी नियमों को पूरा करने के लिए, ज़रूरत के हिसाब से अन्य सिस्टम के साथ इंटरैक्ट करता है.
चौथा चरण: उपयोगकर्ता को जवाब देना
इंटरैक्शन के लिए कारोबारी नियमों को पूरा करने के बाद, एजेंट एक और मैसेज भेजता है और उपयोगकर्ता के साथ बातचीत जारी रखता है.
उदाहरण
यहां दिए गए कोड से पता चलता है कि आपका एजेंट, मैसेज कैसे पाता है. फ़ॉर्मैटिंग और वैल्यू की जानकारी के लिए, देखें UserMessage.
एजेंट को टेक्स्ट मिलता है
{
"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" } } }