কথোপকথন ওয়েবহুক বিন্যাস {:#conversation-webhook-format} (Dialogflow)

এই বিভাগটি JSON পেলোডের ফর্ম্যাট বর্ণনা করে যখন Actions on Google অ্যাকশন SDK-এর মাধ্যমে আপনার পূরণের আহ্বান জানায়।

একবার কথোপকথন শুরু হলে, এটি একটি অনন্য conversationId দ্বারা চিহ্নিত করা হয়। অ্যাসিস্ট্যান্টের প্রতিটি পরবর্তী ব্যবহারকারীর প্রশ্নের জন্য, আপনার পূর্ণতা একটি অভিপ্রায় পায় যা আপনার ওয়েবহুককে অবশ্যই প্রক্রিয়া করতে হবে এবং উত্তর দিতে হবে। কথোপকথন শেষ না হওয়া পর্যন্ত এই conversationId প্রতিটি অনুরোধ এবং প্রতিক্রিয়া জোড়ায় টিকে থাকে।

শরীরের অনুরোধ

যখন ব্যবহারকারীরা একটি প্রাথমিক কোয়েরি করেন বা পরবর্তী কিছু ইনপুট প্রদান করেন, তখন সহকারী আপনার পূরণের জন্য একটি অনুরোধ পাঠায়। অ্যাসিস্ট্যান্ট থেকে কথোপকথনের ওয়েবহুকের অনুরোধে ডেটা থাকে যেমন ট্রিগার করা অভিপ্রায়, ব্যবহারকারীর ইনপুটের কাঁচা পাঠ এবং ব্যবহারকারীর ডিভাইসের পৃষ্ঠের ক্ষমতা।

কথোপকথনের ওয়েবহুক বিন্যাসে একটি অনুরোধের মূল ক্ষেত্রগুলি নীচে সংক্ষিপ্ত করা হয়েছে:

মাঠ বর্ণনা
isInSandbox এই বুলিয়ান ভেরিয়েবলটি প্রাথমিকভাবে লেনদেন বৈশিষ্ট্যের জন্য ব্যবহৃত হয়, আপনার ওয়েবহুক স্যান্ডবক্স মোডে এই অনুরোধটি পরিচালনা করবে কিনা তা নির্দেশ করতে। স্যান্ডবক্স মোডে, আপনার ওয়েবহুক ব্যবহারকারীদের দ্বারা কোনো ক্রয় আদেশ চার্জ বা পূরণ করা উচিত নয়। ডিফল্টরূপে, এটি " true " হিসাবে সেট করা আছে।
surface ব্যবহারকারী যে অ্যাসিস্ট্যান্ট পৃষ্ঠের সাথে ইন্টারঅ্যাক্ট করছেন এবং এর ক্ষমতা সম্পর্কে তথ্য।
Inputs আমন্ত্রণ অনুরোধ সম্পর্কে তথ্য. ট্রিগারিং আমন্ত্রণের জন্য, এর মধ্যে একটি উদ্দেশ্য রয়েছে যা একটি ক্রিয়াকে ম্যাপ করে। একটি কথোপকথনের পরবর্তী অনুরোধগুলির জন্য, এই বস্তুটি আপনার পূর্ণতা দ্বারা নির্দিষ্ট করা প্রত্যাশিত ইনপুটগুলির সাথে সম্পর্কিত আর্গুমেন্টগুলিও অন্তর্ভুক্ত করতে পারে৷
User যে ব্যবহারকারী অনুরোধটি শুরু করেছেন তার সম্পর্কে তথ্য। এই তথ্য ব্যবহারকারী দ্বারা প্রদত্ত অনুমতি অন্তর্ভুক্ত, এবং ব্যবহারকারীর লোকেল.
Conversation কথোপকথনের প্রসঙ্গ সম্পর্কে তথ্য, কথোপকথনের আইডি, ধরন সহ (উদাহরণস্বরূপ, এই অনুরোধটি একটি নতুন কথোপকথন শুরু করছে কিনা), এবং কথোপকথনের জীবনকাল জুড়ে অবিরাম ডেটা সঞ্চয় করার জন্য একটি কথোপকথনের টোকেন।
availableSurfaces এই তথ্য মাল্টি-সারফেস কথোপকথনের জন্য ব্যবহার করা হয়।

সহজ আমন্ত্রণ অনুরোধের উদাহরণ

নীচের স্নিপেট কথোপকথন ওয়েবহুক ফর্ম্যাটে একটি আহ্বান অনুরোধের একটি উদাহরণ দেখায়৷

{
  "user": {
    "userId": "ABwppHEF...",
    "locale": "en-US",
    "lastSeen": "2018-03-21T17:59:52Z",
    "userStorage": "{\"data\":{}}"
  },
  "device": {},
  "surface": {
    "capabilities": [
      {
        "name": "actions.capability.SCREEN_OUTPUT"
      },
      {
        "name": "actions.capability.AUDIO_OUTPUT"
      },
      {
        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
      },
      {
        "name": "actions.capability.WEB_BROWSER"
      }
    ]
  },
  "conversation": {
    "conversationId": "1521784527171",
    "type": "NEW"
  },
  "inputs": [
    {
      "intent": "actions.intent.MAIN",
      "rawInputs": [
        {
          "inputType": "VOICE",
          "query": "Talk to my test app"
        }
      ]
    }
  ],
  "availableSurfaces": [
    {
      "capabilities": [
        {
          "name": "actions.capability.SCREEN_OUTPUT"
        },
        {
          "name": "actions.capability.AUDIO_OUTPUT"
        },
        {
          "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
        },
        {
          "name": "actions.capability.WEB_BROWSER"
        }
      ]
    }
  ]
}

সহজ কথোপকথন অনুরোধ উদাহরণ

নীচের স্নিপেটটি কথোপকথনের ওয়েবহুক ফর্ম্যাটে একটি কথোপকথনের অনুরোধের একটি উদাহরণ দেখায়, যেখানে ব্যবহারকারীর ইনপুটটি একটি পাঠ্য স্ট্রিং (উদাহরণস্বরূপ, "আমার ভাগ্যবান সংখ্যা হল 88।" ):

{
  "user": {
    "userId": "ABwppHEF...",
    "locale": "en-US",
    "lastSeen": "2018-03-21T17:59:52Z",
    "userStorage": "{\"data\":{}}"
  },
  "device": {},
  "surface": {
    "capabilities": [
      {
        "name": "actions.capability.SCREEN_OUTPUT"
      },
      {
        "name": "actions.capability.AUDIO_OUTPUT"
      },
      {
        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
      },
      {
        "name": "actions.capability.WEB_BROWSER"
      }
    ]
  },
  "conversation": {
    "conversationId": "1521784527171",
    "type": "NEW"
  },
  "inputs": [
    {
      "intent": "actions.intent.TEXT",
      "rawInputs": [
        {
          "inputType": "VOICE",
          "query": "My lucky number is 88."
        }
      ]
    }
  ],
  "availableSurfaces": [
    {
      "capabilities": [
        {
          "name": "actions.capability.SCREEN_OUTPUT"
        },
        {
          "name": "actions.capability.AUDIO_OUTPUT"
        },
        {
          "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
        },
        {
          "name": "actions.capability.WEB_BROWSER"
        }
      ]
    }
  ]
}

প্রতিক্রিয়া শরীর

আপনার পূর্ণতা এন্ডপয়েন্ট থেকে অ্যাসিস্ট্যান্ট পর্যন্ত HTTP পোস্টের শিরোনামে Content-Type অবশ্যই application/json হতে হবে।

কথোপকথন ওয়েবহুক ফর্ম্যাটে একটি প্রতিক্রিয়া ব্যবহারকারীকে দেখানোর জন্য প্রকৃত UI (অডিও এবং ভিজ্যুয়াল উপাদান সহ) এবং পরবর্তী অনুরোধে ট্রিগার করা যেতে পারে এমন অভিপ্রায়ের মতো ডেটা থাকে (এটিকে প্রত্যাশিত অভিপ্রায় বলা হয়)। প্রত্যাশিত অভিপ্রায় যেকোনও হতে পারে যেটি সহকারী বোঝে, যেমন Intents API রেফারেন্সে বর্ণনা করা হয়েছে।

আপনার প্রতিক্রিয়াগুলির জন্য ব্যবহারকারী ইন্টারফেস ফর্ম্যাট করার বিষয়ে আরও জানতে যখন সেগুলি অ্যাসিস্ট্যান্টে প্রদর্শিত হয়, তখন প্রতিক্রিয়া ডকুমেন্টেশন দেখুন৷

সহজ প্রতিক্রিয়া উদাহরণ

নীচের স্নিপেটটি কথোপকথনের ওয়েবহুক ফর্ম্যাটে একটি সাধারণ প্রতিক্রিয়ার উদাহরণ দেখায়৷

{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ],
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "You are using the Actions SDK. Do you want to hear more about it?"
              }
            }
          ]
        }
      }
    }
  ]
}

সাহায্যকারী উদাহরণ

নীচের স্নিপেট কথোপকথন ওয়েবহুক বিন্যাসে একটি সহায়ক অভিপ্রায় ব্যবহার করার একটি উদাহরণ দেখায়৷ এই উদাহরণে, ওয়েবহুক অ্যাসিস্ট্যান্টকে একাধিক বিকল্পের মধ্যে একটি ব্যবহারকারী নির্বাচন পেতে নির্দেশ দেওয়ার জন্য actions.intent.OPTIONS সহায়ক উদ্দেশ্য ব্যবহার করছে।

হেল্পার ইন্টেন্ট ব্যবহার করার বিষয়ে আরও জানতে, হেল্পার গাইড দেখুন।

{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.OPTION",
          "inputValueData": {
            "@type": "type.googleapis.com/google.actions.v2.OptionValueSpec",
            "carouselSelect": {
              "items": [
                {
                  "optionInfo": {
                    "key": "one",
                    "synonyms": [
                      "synonym of KEY_ONE 1",
                      "synonym of KEY_ONE 2"
                    ]
                  },
                  "description": "Description of number one",
                  "title": "Number one"
                },
                {
                  "optionInfo": {
                    "key": "two",
                    "synonyms": [
                      "synonym of KEY_TWO 1",
                      "synonym of KEY_TWO 2"
                    ]
                  },
                  "description": "Description of number two",
                  "title": "Number two"
                }
              ]
            }
          }
        }
      ],
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "this shows an example of a carousel"
              }
            }
          ],
          "suggestions": [
            {
              "title": "1"
            },
            {
              "title": "2"
            }
          ]
        }
      }
    }
  ]
}

কথোপকথন শেষ উদাহরণ

নীচের স্নিপেট কথোপকথন ওয়েবহুক প্রতিক্রিয়া বিন্যাসে একটি কথোপকথন সেশন শেষ করার জন্য একটি সাধারণ প্রতিক্রিয়ার উদাহরণ দেখায়৷

প্রতিক্রিয়া বার্তায় false expectedUserResponse ব্যবহারকারীর প্রতিক্রিয়া মান সহকারীকে সংকেত দেয় যে আর কোনও ব্যবহারকারীর ইনপুট প্রত্যাশিত নয় এবং এটি বর্তমান কথোপকথনটি শেষ করবে। finalResponse মান নির্দেশ করে যে কথোপকথন শেষ হওয়ার আগে সহকারীকে ব্যবহারকারীকে কী প্রদর্শন বা আউটপুট করা উচিত।

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "simpleResponse": {
            "textToSpeech": "Good bye"
          }
        }
      ]
    }
  }
}

সহকারীর সাথে কথোপকথন শেষ করার জন্য ব্যবহারকারীরা যখন একটি স্ট্যান্ডার্ড বাক্যাংশ ব্যবহার করে তখন ডিফল্ট আচরণ কীভাবে ওভাররাইড করবেন তা শিখতে, কথোপকথন প্রস্থান দেখুন।