অ্যাকশন সংজ্ঞায়িত করুন (ডায়ালগফ্লো)

অ্যাকশনগুলি হল আপনার অ্যাপের এন্ট্রি পয়েন্ট যা আপনার অ্যাপের জন্য আহ্বান এবং আবিষ্কারের মডেলকে সংজ্ঞায়িত করে। আপনি অ্যাকশন প্যাকেজ নামে পরিচিত একটি JSON ফাইলে অ্যাকশন ঘোষণা করেন, যা আপনি পরে আপনার ডেভেলপার প্রোজেক্টে আপলোড করেন যখন আপনি আপনার অ্যাকশন প্রোজেক্ট পরীক্ষা করতে বা অনুমোদনের জন্য জমা দিতে চান। একটি অ্যাকশন প্যাকেজ হল একটি JSON ফাইল যা আপনার অ্যাকশন প্রকল্পের অ্যাকশনগুলিকে সংজ্ঞায়িত করে।

আপনার অ্যাকশন প্যাকেজে অ্যাকশনগুলিকে সংজ্ঞায়িত করতে, আপনি একটি উদ্দেশ্য তৈরি করেন যা সংজ্ঞায়িত করে যে কীভাবে অ্যাকশনটি আহ্বান করা হয় এবং অভিপ্রায়টি কখন ট্রিগার হয় তার জন্য সংশ্লিষ্ট পূর্ণতা শেষ পয়েন্ট। আপনি নিম্নলিখিত ধরনের অ্যাকশন তৈরি করতে পারেন:

  • ডিফল্ট অ্যাকশন: প্রতিটি অ্যাকশন প্রকল্পের অবশ্যই একটি স্বাগত অভিপ্রায় থাকতে হবে যা ব্যবহারকারীদের কথোপকথন শুরু করার জন্য একটি এন্ট্রি পয়েন্ট হিসাবে কাজ করে। স্বাগত অভিপ্রায়টি ট্রিগার হয় যখন ব্যবহারকারীরা স্পষ্টভাবে একটি অ্যাকশনের নাম উচ্চারণ করে (উদাহরণস্বরূপ, "Hey Google, ExampleAction-এর সাথে কথা বলুন" )। এই স্বাগত অভিপ্রায়কে actions.intent.MAIN অভিপ্রায় নাম দিয়ে চিহ্নিত করা হয়েছে।
  • ডিপ-লিঙ্কিংয়ের জন্য অতিরিক্ত অ্যাকশন: আপনি নিজের সংজ্ঞায়িত অভিপ্রায় সহ আপনার অ্যাকশন প্যাকেজে অতিরিক্ত অ্যাকশন তৈরি করতে পারেন। এটি ব্যবহারকারীদের একটি অভিপ্রায়ের সাথে একটি অ্যাকশন নাম বলে নির্দিষ্ট কার্যকারিতা আহ্বান করতে দেয় (উদাহরণস্বরূপ: "হে গুগল, কিছু জুতা খুঁজতে ExampleAction-এর সাথে কথা বলুন" )।

এই আহ্বান মডেলগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য অভিপ্রায় এবং আহ্বান দেখুন।

একটি ডিফল্ট অ্যাকশন সংজ্ঞায়িত করুন

প্রতিটি অ্যাকশন প্যাকেজের অবশ্যই একটি এবং শুধুমাত্র একটি উদ্দেশ্য থাকতে হবে যা actions.intent.MAIN উদ্দেশ্য পরিচালনা করে। এই অভিপ্রায়টি তখন ট্রিগার হয় যখন ব্যবহারকারীরা আপনার অ্যাকশনকে নাম দিয়ে ডাকে (উদাহরণস্বরূপ, "হে Google, ExampleAction-এর সাথে কথা বলুন" )।

action.json নামে একটি বয়লারপ্লেট অ্যাকশন প্যাকেজ ফাইল তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. gactions CLI ডাউনলোড করুন।
  2. আপনার অ্যাকশন প্রকল্পের সোর্স ফাইলগুলির জন্য একটি স্থানীয় ডিরেক্টরি তৈরি করুন।
  3. টার্মিনালে নিম্নলিখিত কমান্ডগুলি চালান:

    $ cd PROJECT_DIRECTORY
    $ gactions init

একবার অ্যাকশন প্যাকেজ ফাইল তৈরি হয়ে গেলে, আপনার মানগুলির সাথে স্থানধারক সামগ্রী প্রতিস্থাপন করুন। এখানে ExampleAction এর জন্য পরিবর্তন সহ action.json এর একটি উদাহরণ রয়েছে:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

অতিরিক্ত অ্যাকশন সংজ্ঞায়িত করুন

আপনি অতিরিক্ত অ্যাকশন প্রদান করতে পারেন যা এন্ট্রি পয়েন্ট হিসেবে কাজ করে। এটি ব্যবহারকারীদের তারা কী করতে চায় সে সম্পর্কে আরও বিশদ উল্লেখ করার মাধ্যমে তাদের অভিপ্রায় দ্ব্যর্থহীন করতে দেয় (উদাহরণস্বরূপ, "Hey Google, আমাকে কিছু জুতা খুঁজতে ExampleAction-এর সাথে কথা বলুন।" )।

অতিরিক্ত কর্ম সংজ্ঞায়িত করতে:

  1. actions অ্যারেতে, প্রতিটি এন্ট্রি পয়েন্টের জন্য একটি অ্যাকশন নির্দিষ্ট করুন।

    উদাহরণস্বরূপ, নিম্নলিখিত কোডটি একটি অতিরিক্ত "কিনুন" অ্যাকশন দেখায় যা সংজ্ঞায়িত করে:
    • com.example.ExampleAction.BUY এর একটি অভিপ্রায়ের নাম৷
    • যখন এই অভিপ্রায়টি ট্রিগার করা হয় তখন ব্যবহারকারীর ইনপুট থেকে পার্স করার parameters । ব্যবহারকারীরা যখন অ্যাকশন শুরু করেন তখন অ্যাকশন বাক্যাংশ থেকে আপনার নির্দিষ্ট ডেটার প্রয়োজন হলে এটি কার্যকর।
    • queryPatterns যা সংজ্ঞায়িত করে ব্যবহারকারীদের অভিপ্রায় ট্রিগার করার জন্য কী বলতে হবে। ক্যোয়ারী প্যাটার্নগুলিতে Schema.org প্রকারগুলি অন্তর্ভুক্ত থাকতে পারে যা পার্স করার পরামিতিগুলিকে সংজ্ঞায়িত করে৷
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. conversations অবজেক্টের একটি আইটেমের সাথে সামঞ্জস্যপূর্ণ একটি conversationName উল্লেখ করে এই অভিপ্রায়ের জন্য পূর্ণতা নির্দিষ্ট করুন৷

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

এখানে একটি সম্পূর্ণ অ্যাকশন প্যাকেজের একটি উদাহরণ রয়েছে:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}