RBM এজেন্টরা একটি ওয়েবহুকের মাধ্যমে বার্তা এবং ইভেন্ট গ্রহণ করে। যখন কোনো ব্যবহারকারী আপনার এজেন্টকে একটি বার্তা পাঠায়, তখন গুগলের RBM পরিষেবা বার্তাটি আপনার কনফিগার করা ওয়েবহুকে পাঠিয়ে দেয়। এরপর আপনার এজেন্ট বার্তাটি ডিকোড করতে, সেটিকে প্রসেস করতে এবং ব্যবহারকারীকে একটি প্রতিক্রিয়া জানাতে পারে।

ব্যবহারকারীরা তাদের আরসিএস ক্লায়েন্টের অনুমোদিত যেকোনো টেক্সট, অবস্থান বা ফাইল পাঠাতে পারেন। ব্যবহারকারীর পাঠানো যেকোনো টেক্সট, অবস্থান বা ফাইল, সেইসাথে সেই বার্তাগুলোর কারণে সৃষ্ট যেকোনো ত্রুটিপূর্ণ অবস্থাও আপনার এজেন্টকে সামলাতে হবে।
আপনার এজেন্ট কীভাবে ডেলিভারি রসিদ, পঠন রসিদ এবং টাইপিং সূচকগুলি পরিচালনা করতে পারে তা জানতে, রিসিভ ইভেন্টস দেখুন।
আগত বার্তাগুলি পরিচালনা করুন
আপনার এজেন্ট ব্যবহারকারীদের বার্তা কীভাবে গ্রহণ করে এবং তার উত্তর দেয়, তা মূলত আপনার ব্যবসায়িক যুক্তির ওপর নির্ভরশীল। তবে, সাধারণত ব্যবহারকারীর বার্তার উত্তর দেওয়ার ধাপগুলো একই রকম থাকে।
ধাপ ১: ব্যবহারকারী যে ধরনের বার্তা পাঠিয়েছেন তা শনাক্ত করুন।
ব্যবহারকারীরা চার ধরনের বার্তা পাঠাতে পারেন:
- টেক্সট মেসেজ হলো মুক্ত শৈলীর উত্তর।
- সাজেশন মেসেজগুলোতে পোস্টব্যাক ডেটা এবং ব্যবহারকারীর ট্যাপ করা প্রস্তাবিত অ্যাকশন বা প্রস্তাবিত উত্তরের টেক্সট অন্তর্ভুক্ত থাকে।
অবস্থান বার্তাগুলিতে অক্ষাংশ এবং দ্রাঘিমাংশের মান অন্তর্ভুক্ত থাকে।
ফাইল মেসেজগুলোতে একটি ফাইলের URI এবং সংশ্লিষ্ট ডেটা অন্তর্ভুক্ত থাকে।
ধাপ ২: বার্তার বিষয়বস্তু প্রক্রিয়াকরণ করুন
ব্যবহারকারীর বার্তার বিষয়বস্তু কথোপকথনে আপনার এজেন্টের যুক্তি এবং পরবর্তী প্রতিক্রিয়াকে পরিচালিত করবে।
ব্যবহারকারীর অভিপ্রায় শনাক্ত করার সবচেয়ে সহজ উপায় হলো কোনো প্রস্তাবিত উত্তর বা প্রস্তাবিত কাজের পোস্টব্যাক ডেটা। সাজেশনের সাথে যুক্ত টেক্সট যাই হোক না কেন, পোস্টব্যাক ডেটা মেশিন-পাঠযোগ্য।
যদি কোনো ব্যবহারকারী একটি টেক্সট মেসেজ পাঠান, তাহলে আপনার এজেন্ট সমর্থিত কীওয়ার্ডের জন্য প্রতিক্রিয়াটি পার্স করতে পারে অথবা ব্যবহারকারীর বার্তাটি প্রক্রিয়া করতে এবং পরবর্তী পদক্ষেপ শনাক্ত করতে NLU (যেমন Dialogflow ) ব্যবহার করতে পারে।
অবস্থান এবং ফাইল বার্তাগুলিতে টেক্সট বা পোস্টব্যাক ডেটা অন্তর্ভুক্ত থাকে না, তাই আপনার এজেন্টের উত্তর দেওয়ার আগে কথোপকথনের প্রেক্ষাপট এবং সাম্প্রতিক বার্তাগুলি বিবেচনা করা উচিত।
যদি আপনার এজেন্ট ব্যবহারকারীর বার্তার উত্তর কীভাবে দিতে হবে তা না জানে, তবে তার একটি ত্রুটিপূর্ণ অবস্থা (error state) দেখানো উচিত এবং ব্যবহারকারীর কাছে অতিরিক্ত তথ্য চেয়ে, ভিন্ন উপায়ে মতামত চেয়ে, অথবা এমন কিছু প্রস্তাবিত উত্তর ও পদক্ষেপ উপস্থাপন করে কথোপকথনটি চালিয়ে যাওয়ার চেষ্টা করা উচিত, যেগুলোর উত্তর দিতে এজেন্টটি জানে।
ধাপ ৩: ইন্টারঅ্যাকশনের জন্য ব্যবসায়িক যুক্তি পূরণ করুন।
একবার আপনার এজেন্ট ব্যবহারকারীর বার্তার সঠিক প্রতিক্রিয়া শনাক্ত করলে, এটি আপনার পরিকাঠামো থেকে প্রয়োজনীয় তথ্য সংগ্রহ করে এবং সেই মিথস্ক্রিয়ার ব্যবসায়িক যুক্তি পূরণ করার জন্য প্রয়োজন অনুযায়ী অন্যান্য সিস্টেমের সাথে যুক্ত হয়।
ধাপ ৪: ব্যবহারকারীকে উত্তর দিন
এজেন্টটি ইন্টারঅ্যাকশনের জন্য ব্যবসায়িক যুক্তি সম্পন্ন করার পর, আরেকটি বার্তা পাঠায় এবং ব্যবহারকারীর সাথে কথোপকথন চালিয়ে যায়।
উদাহরণ
নিম্নলিখিত কোডটি দেখায় যে আপনার এজেন্ট কীভাবে বার্তা গ্রহণ করে। ফরম্যাটিং এবং মান সম্পর্কিত তথ্যের জন্য, 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" } } }