বিল্ড পূর্ণতা (ডায়ালগফ্লো)

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

ওভারভিউ

আপনার পূর্ণতা সহকারীর কাছ থেকে অনুরোধ পায়, অনুরোধ প্রক্রিয়া করে এবং প্রতিক্রিয়া জানায়। এই পিছনে-আগে অনুরোধ এবং প্রতিক্রিয়া প্রক্রিয়া কথোপকথনকে এগিয়ে নিয়ে যায় যতক্ষণ না আপনি শেষ পর্যন্ত ব্যবহারকারীর প্রাথমিক অনুরোধটি পূরণ করেন।

নিম্নলিখিত ধাপগুলি বর্ণনা করে যে আপনি কীভাবে Node.js বা Java/Kotlin ক্লায়েন্ট লাইব্রেরির সাথে অ্যাকশন SDK ব্যবহার করে পরিপূর্ণতা তৈরি করতে পারেন:

  1. ActionsSdkApp অবজেক্ট শুরু করুন
  2. আপনার পূর্ণতা যুক্তিতে অনুরোধগুলি পরিচালনা করার জন্য ফাংশন তৈরি করুন

বিল্ডিং ডায়ালগ

ActionsSdkApp অবজেক্ট শুরু করুন

নিম্নলিখিত কোডটি ActionsSdkApp ইনস্ট্যান্টিয়েট করে এবং Google ক্লাউড ফাংশনের জন্য কিছু বয়লারপ্লেট Node.js সেটআপ করে:

অ্যাকশন SDK (Node.js)
'use strict';

const {actionssdk} = require('actions-on-google');
const functions = require('firebase-functions');

const app = actionssdk({debug: true});

app.intent('actions.intent.MAIN', (conv) => {
  conv.ask('Hi!');
});

// More intent handling if needed
exports.myFunction = functions.https.onRequest(app);
অ্যাকশন SDK (জাভা)
ResponseBuilder responseBuilder = getResponseBuilder(request).add("Hi!");
return responseBuilder.build();
JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Hi!"
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ]
    }
  ],
  "conversationToken": "{\"data\":{}}",
  "userStorage": "{\"data\":{}}"
}

অনুরোধগুলি পরিচালনা করার জন্য ফাংশন তৈরি করুন

যখন ব্যবহারকারীরা একটি শব্দগুচ্ছ বলে, তখন আপনি Google সহকারী থেকে একটি অনুরোধ পান। অনুরোধে আসা উদ্দেশ্যগুলি পূরণ করতে, ট্রিগার করা অভিপ্রায় পরিচালনা করে এমন ফাংশন তৈরি করুন।

অনুরোধগুলি পরিচালনা করতে:

  1. ব্যবহারকারীর ইনপুট প্রক্রিয়া করার জন্য প্রয়োজনীয় কোনো যুক্তি বহন করুন।

  2. আপনি যে প্রতিক্রিয়াটি একটি যুক্তি হিসাবে দেখাতে চান তা পাস করে conv.ask() ফাংশনটিতে কল করুন।

নিম্নলিখিত কোড দেখায় কিভাবে একটি সহজ প্রতিক্রিয়া তৈরি করতে হয়:

অ্যাকশন SDK (Node.js)
conv.ask(`Hi! Say something, and I'll repeat it.`);
অ্যাকশন SDK (জাভা)
ResponseBuilder responseBuilder =
    getResponseBuilder(request).add("Hi! Say something, and I'll repeat it.");
return responseBuilder.build();
JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Hi! Say something, and I'll repeat it."
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ]
    }
  ],
  "conversationToken": "{\"data\":{}}",
  "userStorage": "{\"data\":{}}"
}

উদ্দেশ্য হ্যান্ডলিং

ট্রিগার করা ইন্টেন্টগুলি পরিচালনা করার জন্য আপনার সমস্ত ফাংশন হয়ে গেলে, হ্যান্ডলারদের ইন্টেন্টে বরাদ্দ করতে app.intent ব্যবহার করুন।

অ্যাকশন SDK (Node.js)
app.intent('actions.intent.TEXT', (conv) => {
  // handle text intent.
});
app.intent('actions.intent.MAIN', (conv) => {
  // handle main intent.
});
অ্যাকশন SDK (জাভা)
@ForIntent("actions.intent.MAIN")
public ActionResponse main(ActionRequest request) {
  // handle main intent
  // ...
}

@ForIntent("actions.intent.TEXT")
public ActionResponse text(ActionRequest request) {
  // handle text intent
  // ...
}

কথোপকথন শেষ

আপনি যখন আর কোন ব্যবহারকারীর ইনপুট চান না এবং কথোপকথন শেষ করতে চান, তখন conv.close() ফাংশনটিতে কল করুন। এই ফাংশনটি Google সহকারীকে ব্যবহারকারীর সাথে পাঠ্যটি ফেরত বলতে এবং মাইক্রোফোন বন্ধ করে কথোপকথনটি শেষ করতে বলে।

মূল আহ্বানের অভিপ্রায় পরিচালনা করা

যখন ব্যবহারকারীরা app.intent.action.MAIN অভিপ্রায় ট্রিগার করে, তখন আপনাকে সাধারণত কোনো ব্যবহারকারীর ইনপুট প্রক্রিয়াকরণ করতে হবে না। যদি আপনার অ্যাকশন প্যাকেজটিতে অনেকগুলি অ্যাকশন থাকে এবং অনেকগুলি ব্যবহারের ক্ষেত্রে কভার করে থাকে, তবে ব্যবহারকারীকে তারা করতে পারে এমন কয়েকটি জিনিস বলে তাদের অভিমুখী করা একটি ভাল ধারণা।

  1. একটি যুক্তি হিসাবে আপনার প্রতিক্রিয়া পাস conv.ask() ফাংশন কল করুন. Google অ্যাসিস্ট্যান্ট ব্যবহারকারীর কাছে আপনার প্রতিক্রিয়া জানায় এবং তারপর ব্যবহারকারী আপনার নির্দিষ্ট করা উদ্দেশ্যগুলির একটিকে ট্রিগার করার জন্য অপেক্ষা করে।

নিম্নলিখিত স্নিপেট দেখায় কিভাবে একটি সহজ স্বাগত অভিপ্রায় পরিচালনা করতে হয়:

অ্যাকশন SDK (Node.js)
// handle the initialTrigger
function handleMainIntent(conv, input) {
  conv.ask(input);
}
অ্যাকশন SDK (জাভা)
private ActionResponse handleMainIntent(ResponseBuilder rb, String input) {
  return rb.add(input).build();
}

কথোপকথনের অবস্থা

আপনি যদি কথোপকথন HTTP/JSON ওয়েবহুক API ব্যবহার করেন, তাহলে আপনি আপনার এবং Google সহকারীর মধ্যে বারবার পাস করা JSON ফর্ম্যাট করা বস্তু ( conversationToken ) দিয়ে আপনার কথোপকথনের অবস্থা বজায় রাখতে পারেন। আপনি যদি Node.js ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে আপনি সরাসরি conv.data ফিল্ড থেকে লিখতে এবং পড়তে পারেন। এই ক্ষেত্রটি অনুরোধ এবং প্রতিক্রিয়াগুলির মধ্যে স্বয়ংক্রিয়ভাবে পাস করা হয়।

অ্যাকশন SDK (Node.js)
conv.data = {something: 10};
let value = conv.data.something;
অ্যাকশন SDK (জাভা)
ResponseBuilder rb = getResponseBuilder(request);
rb.getConversationData().put("something", 10);
Object value = rb.getConversationData().get("something");