আপনার কথোপকথনমূলক অ্যাকশন তৈরি করুন (ডায়ালগফ্লো)

আপনি পরিপূর্ণতার সাথে আপনার অ্যাকশনের জন্য কথোপকথনটি সংজ্ঞায়িত করেন, যা একটি ওয়েবহুক হিসাবে নিয়োজিত কোড যা আপনার ডায়ালগফ্লো এজেন্টের কথোপকথনমূলক যুক্তি ধারণ করে। পূর্ণতা আপনার অ্যাকশনকে বলে যখন ব্যবহারকারীরা অনুরোধ করে তখন কী করতে হবে।

ইন্টারেক্টিভ ক্যানভাসের জন্য, আপনার পূর্ণতা সহকারীকে আপনার ওয়েব অ্যাপ সম্পর্কে তথ্যও জানায়। সহকারীকে আপনার ওয়েব অ্যাপ রেন্ডার করতে বলতে আপনি একটি HtmlResponse ব্যবহার করতে পারেন। একটি HtmlResponse data আপডেটও প্রদান করতে পারে, যা আপনার ওয়েব অ্যাপ কাস্টম লজিক আপনার ওয়েব অ্যাপে পরিবর্তন করতে ব্যবহার করে।

এই পৃষ্ঠাটি আপনার পরিপূর্ণতায় HtmlResponse কীভাবে ব্যবহার করতে হয় এবং এই প্রতিক্রিয়ার ধরনটি ব্যবহার করার জন্য সাধারণ নির্দেশিকা নিয়ে চলে।

HTML প্রতিক্রিয়া

আপনার ওয়েব অ্যাপ সম্পর্কে তথ্য অ্যাসিস্ট্যান্টের কাছে রিলে করতে, আপনাকে অবশ্যই আপনার উদ্দেশ্য-নির্দিষ্ট পূর্ণতায় একটি HtmlResponse অন্তর্ভুক্ত করতে হবে। একটি HtmlResponse ওয়েব অ্যাপের URL এবং ওয়েব অ্যাপ আপডেট করে এমন ডেটা থাকতে পারে। আপনি যখন একটি HtmlResponse পাঠান, নিম্নলিখিত পদক্ষেপগুলি ঘটে:

  1. মিলিত অভিপ্রায়ের পূর্ণতা ডিভাইসে একটি HtmlResponse পাঠায়।
  2. ওয়েব অ্যাপ লোড করতে ডিভাইসটি HtmlResponse এ URL ব্যবহার করে।
  3. data JSON পেলোড একটি কলব্যাকে ওয়েব অ্যাপে পাঠানো হয়।
  4. আপনার কথোপকথনমূলক অ্যাকশন আপডেট পাঠাতে বা নতুন স্টেট লোড করতে একটি নতুন HtmlResponse পাঠায়।

নমুনা পূরণ

নমুনা পূরণ কোড থেকে নিম্নলিখিত উদ্ধৃতি দেখায় কিভাবে HtmlResponse বাস্তবায়ন করতে হয়:

const functions = require('firebase-functions');
const {dialogflow, HtmlResponse} = require('actions-on-google');

const app = dialogflow({debug: true});
app.intent('welcome', (conv) => {
  conv.ask('Welcome! Do you want me to change color or pause spinning?');
  conv.ask(new HtmlResponse({
    url: 'https://your-web-app.com',
  }));
});

// map of human speakable colors to color values
const tints = {
  red: 0xFF0000,
  green: 0x00FF00,
  blue: 0x0000FF,
};
app.intent('color', (conv, {color}) => {
  if (color in tints) {
    conv.ask(`Ok, I changed my color to ${color}. What else?`);
    conv.ask(new HtmlResponse({
      data: {
        tint: tints[color],
      },
    }));
    return;
  }
  conv.ask(`Sorry, I don't know that color. What else?`);
  conv.ask(new HtmlResponse({
    data: {
      query: conv.query,
    },
  }));
});
app.intent('start', (conv) => {
  conv.ask(`Ok, I'm spinning. What else?`);
  conv.ask(new HtmlResponse({
    data: {
      spin: true,
    },
  }));
});

app.intent('pause', (conv) => {
  conv.ask(`Ok, I paused spinning. What else?`);
  conv.ask(new HtmlResponse({
    data: {
      spin: false,
    },
  }));
});

app.intent('restart game', (conv) => {
  conv.ask(new HtmlResponse({
    data: {
      command: 'RESTART_GAME',
    },
  }));
});

exports.conversation = functions.https.onRequest(app);

welcome অভিপ্রায়

উপরের স্নিপেটে, welcome অভিপ্রায়ের পূর্ণতা ওয়েব অ্যাপের URL সহ একটি HtmlResponse পাঠায়। সহকারী এটি গ্রহণ করে এবং সেই ঠিকানায় HTML এবং JavaScript লোড করে।

...
app.intent('welcome', (conv) => {
  conv.ask('Welcome! Do you want me to change color or pause spinning?');
  conv.ask(new HtmlResponse({
    url: 'https://your-web-app.com',
  }));
});
...

অন্যান্য উদ্দেশ্য

অন্যান্য অভিপ্রায় পূরণে HtmlResponse ওয়েব অ্যাপে পরিবর্তনশীল মান (নমুনায় tint বা spin ) পাস করে। ওয়েব অ্যাপের জন্য কাস্টম লজিক উপাদানগুলি (অ্যানিমেশন, রঙ, ইত্যাদি) আপডেট করতে এই মানগুলি ব্যবহার করে:

...
app.intent('start', (conv) => {
  conv.ask(`Ok, I'm spinning. What else?`);
  conv.ask(new HtmlResponse({
    data: {
      spin: true,
    },
  }));
});
...

নির্দেশিকা এবং বিধিনিষেধ

আপনার পূর্ণতা তৈরি করার সময় HtmlResponse এর জন্য নিম্নলিখিত নির্দেশিকা এবং সীমাবদ্ধতাগুলি মনে রাখবেন:

  • আপনার পূর্ণতার প্রতিটি অভিপ্রায়ে অবশ্যই একটি HtmlResponse অন্তর্ভুক্ত করতে হবে। যদি একটি অভিপ্রায় একটি HtmlResponse অন্তর্ভুক্ত না করে, তাহলে আপনার ওয়েব অ্যাপ বন্ধ হয়ে যাবে।
  • আপনি ব্যবহারকারীর কাছে যে প্রথম অভিপ্রায় পাঠান তাতে আপনাকে শুধুমাত্র আপনার ওয়েব অ্যাপের URL অন্তর্ভুক্ত করতে হবে (এটি সাধারণত Welcome অভিপ্রায়)।
  • HtmlResponse 50kb বা ছোট আকারের হতে হবে।