একটি কাস্টম অবস্থান স্কোর তৈরি করতে Places Aggregate API ব্যবহার করুন, একটি কাস্টম অবস্থান স্কোর তৈরি করতে Places Aggregate API ব্যবহার করুন, একটি কাস্টম অবস্থান স্কোর তৈরি করতে Places Aggregate API ব্যবহার করুন, একটি কাস্টম অবস্থান স্কোর তৈরি করতে Places Aggregate API ব্যবহার করুন

উদ্দেশ্য

ইমেজ

আপনার আসন্ন অবকাশের জন্য হোটেল হোক বা পরিবার-বান্ধব অ্যাপার্টমেন্ট হোক, আদর্শ অবস্থান খুঁজে বের করা প্রায়শই অসংখ্য বিকল্পের তুলনা করার জন্য একটি হতাশাজনক এবং সময়সাপেক্ষ প্রক্রিয়া জড়িত। আপনি যদি একটি কাস্টমাইজড মেট্রিক প্রদান করে আপনার ব্যবহারকারীদের জন্য এটি সহজ করতে সাহায্য করতে পারেন যা পর্যটকদের জন্য হোটেলের উপযুক্ততা প্রকাশ করে বা তাদের পারিবারিক বন্ধুত্বের উপর ভিত্তি করে অ্যাপার্টমেন্ট তালিকা র‍্যাঙ্ক করে, একটি ক্লান্তিকর কাজকে একটি অনায়াসে সিদ্ধান্তে রূপান্তরিত করে৷

এই দস্তাবেজটি একটি সংজ্ঞায়িত ভৌগলিক এলাকার মধ্যে স্থানগুলির ঘনত্বের উপর ভিত্তি করে গতিশীল, কাস্টম অবস্থান স্কোর তৈরি করতে স্থান সমষ্টি API ব্যবহার করার রূপরেখা দেয়৷ স্কোর, আপনার নির্দিষ্ট মানদণ্ডের বিপরীতে একটি সংখ্যাসূচক র‍্যাঙ্কিং, তাৎক্ষণিকভাবে যোগাযোগ করবে যে অবস্থানটি তাদের প্রয়োজনের জন্য কতটা উপযুক্ত।

এমন একটি দৃশ্য বিবেচনা করুন যেখানে আপনি একটি শহরের হোটেলগুলির প্রচার করছেন এবং পর্যটকদের জন্য একটি ভাল স্কোর তৈরি করে সবচেয়ে আকর্ষণীয় পর্যটন এলাকায় সেগুলিকে হাইলাইট করতে চান৷ প্রতিটি হোটেলের কাছে কতগুলি প্রাসঙ্গিক স্থানের ধরন আছে তা গণনা করতে প্লেস অ্যাগ্রিগেট API ব্যবহার করুন। উদাহরণ স্বরূপ, আপনি জানেন যে আপনার গ্রাহকরা নিম্নোক্ত কয়েকটির কাছাকাছি অবস্থানের হোটেলগুলিকে মূল্য দেয়:

  • রেস্তোরাঁ এবং কফি শপ
  • পার্ক ও জাদুঘর
  • কাপড়ের দোকান

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

পূর্বশর্ত

এই নথিটি পড়ার আগে, নিম্নলিখিত ডকুমেন্টেশনের সাথে পরিচিতি সুপারিশ করা হয়:

  • প্রযুক্তিগত বিবরণ এবং উপলব্ধ পরামিতিগুলি বোঝার জন্য স্থানগুলি এগ্রিগেট API বিকাশকারী ডকুমেন্টেশন।
  • [ঐচ্ছিক] জেমিনি ডেভেলপার এপিআই ডেভেলপার ডকুমেন্টেশন বুঝতে কিভাবে জেমিনিকে এপিআই ব্যবহার করে কল করতে হয় এবং কাস্টম অবস্থান স্কোর তৈরি করার বিকল্প হিসেবে এই নথিতে ব্যবহার করা হয়।

ডেমো

এই ডেমোটি কর্মে কাস্টম অবস্থান স্কোরের একটি উদাহরণ দেখায়। ড্রপ-ডাউন থেকে একটি শহর চয়ন করুন, এবং পাঁচটি প্রাক-জনবহুল অবস্থানের জন্য কাস্টম অবস্থান স্কোর প্রদর্শন করতে কাস্টম স্কোর গণনা করুন বোতামে ক্লিক করুন।

প্রাসঙ্গিক স্থান প্রকার নির্বাচন করুন

আপনার কাস্টম লোকেশন স্কোর তৈরির প্রথম ধাপ হল টেবিল A ​​থেকে আপনার গ্রাহকদের জন্য প্রাসঙ্গিক স্থানের ধরন সম্পর্কে সিদ্ধান্ত নেওয়া। যেহেতু আমরা পর্যটকদের জন্য একটি ভাল স্কোর তৈরি করছি, তাই আমরা নিম্নলিখিত ধরনের স্থান নির্বাচন করেছি যা পর্যটকরা তাদের থাকার সময় কাছাকাছি থাকতে চাইবে:

  • রেস্টুরেন্ট
  • পার্ক
  • কাপড়ের_দোকান
  • যাদুঘর
  • কফি_শপ

এর পরে, চূড়ান্ত স্কোরে এর আপেক্ষিক গুরুত্ব প্রতিফলিত করে এই স্থানের ধরনগুলির প্রতিটিতে একটি ওজন নির্ধারণ করুন। আপনার ব্যবহারের ক্ষেত্রে এবং আপনার ব্যবহারকারীর পছন্দগুলির জন্য সবচেয়ে গুরুত্বপূর্ণ কিসের উপর ভিত্তি করে ওজন নির্ধারণ করা উচিত। এই উদাহরণের জন্য, ওজন স্কেল 0 এবং 1 এর মধ্যে হবে, নিম্নরূপ:

স্থানের ধরন

ওজন করা

রেস্টুরেন্ট

0.8

পার্ক

0.6

কাপড়ের_দোকান

0.3

যাদুঘর

0.2

কফি_শপ

0.5

কল প্লেস এগ্রিগেট এপিআই

এখন আপনার কাছে আপনার আগ্রহের জায়গার ধরনগুলির একটি তালিকা রয়েছে, পরবর্তী পদক্ষেপটি হল Places Aggregate API কল করা৷

Places Aggregate API-এর জন্য একটি অবস্থান ফিল্টার প্রয়োজন। এই উদাহরণের জন্য circle ব্যবহার করুন, যার কেন্দ্র latLng আপনার হোটেলের অবস্থান এবং 500m radius । এছাড়াও গণনা থেকে নিম্ন রেট করা স্থানগুলি বাদ দিয়ে 3.8 এবং 5 এর মধ্যে রেটিং সহ স্থানগুলি ফেরাতে ratingFilter সেট করুন৷

আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে অবস্থান ফিল্টারের সেটিংস পরিবর্তন করে পরীক্ষা করুন। উদাহরণস্বরূপ, আপনি ব্যাসার্ধের মান বাড়িয়ে আপনার কেন্দ্র অক্ষাংশ এবং দ্রাঘিমাংশ থেকে একটি বিস্তৃত ব্যাসার্ধের মধ্যে স্থানগুলি ক্যাপচার করতে চাইতে পারেন৷ বিকল্পভাবে, আপনি অনুসন্ধান এলাকা সেট করতে একটি ভিন্ন পদ্ধতি ব্যবহার করতে চাইতে পারেন, যেমন অঞ্চল বা কাস্টম এলাকা

আপনার কাছে উপলব্ধ বিকল্পগুলি সম্পর্কে জানতে প্লেস অ্যাগ্রিগেট API ডকুমেন্টেশনের অবস্থান ফিল্টার বিভাগের সাথে নিজেকে পরিচিত করুন৷

প্রতিটি স্থানের ধরন এবং অবস্থানের জন্য আপনি যে জন্য একটি কাস্টম স্কোর তৈরি করতে চান তার জন্য স্থানগুলি সমষ্টিগত API কল করুন৷ উদাহরণস্বরূপ, আপনার হোটেলগুলির একটির জন্য রেস্টুরেন্ট প্লেস টাইপ কল করুন:

curl --location 'https://areainsights.googleapis.com/v1:computeInsights' \
--header 'X-Goog-Api-Key: API_KEY \
--header 'Content-Type: application/json' \
--data '{
    "insights": [
        "INSIGHT_COUNT"
    ],
    "filter": {
        "locationFilter": {
            "circle": {
                "latLng": {
                    "latitude": 51.51611,
                    "longitude": -0.12726
                },
                "radius": 500
            }
        },
        "typeFilter": {
            "includedTypes": [
                "restaurant"
            ]
        },
        "ratingFilter": {
            "minRating": 3.8,
            "maxRating": 5
        }
    }
}'

API-তে সমস্ত কল সম্পূর্ণ হওয়ার পরে, প্রতিটি অবস্থানের জন্য আপনার কাছে এমন ডেটা রয়েছে:

স্থানের ধরন

ওজন করা

গণনা

রেস্টুরেন্ট

0.8

56

পার্ক

0.6

3

কাপড়ের_দোকান

0.3

32

যাদুঘর

0.2

8

কফি_শপ

0.5

41

কাস্টম অবস্থান স্কোর তৈরি করুন

এখন আপনার কাছে স্থান গণনা আছে এবং প্রতিটি অবস্থানের জন্য প্রতিটি স্থানের প্রকারের ওজন নির্ধারণ করে আপনি এখন কাস্টম অবস্থান স্কোর তৈরি করতে পারেন। আমরা এই বিভাগে দুটি বিকল্প নিয়ে আলোচনা করব, একটি স্থানীয় অ্যালগরিদম ব্যবহার করে, অথবা Gemini Developer API ব্যবহার করে।

বিকল্প 1: একটি অ্যালগরিদম ব্যবহার করুন

প্রথম বিকল্পটি আমরা কভার করব তা হল প্রতিটি স্থানের প্রকারের জন্য ওজন এবং গণনা ব্যবহার করে একটি স্কোর তৈরি করতে একটি স্থানীয় অ্যালগরিদম ব্যবহার করে৷ এই স্কোরটিকে 0 থেকে 5 স্কেলে স্বাভাবিক করুন, যেখানে উচ্চতর মান আপনার মানদণ্ডের উপর ভিত্তি করে আরও আকর্ষণীয় এলাকা নির্দেশ করে। এই উদাহরণের জন্য, উপরের ডেটা থেকে দুটি জাভাস্ক্রিপ্ট অবজেক্ট তৈরি করুন:

আইটেম গণনা

টাইপওয়েট

    {
      "restaurant": 56,
      "park": 3,
      "clothing_store": 32,
      "museum": 8,
      "coffee_shop": 41
    }
    
    {
      "restaurant": 0.8,
      "park": 0.6,
      "clothing_store": 0.3,
      "museum": 0.2,
      "coffee_shop": 0.5
    }
    

typeWeights দ্বারা itemCounts গুণ করে গণনা এবং ওজন থেকে একটি স্কোর তৈরি করুন এবং একটি সামগ্রিক weightedCount ফলাফল যোগ করুন:

let weightedCount = 0;
for (const itemType in itemCounts) {
  weightedCount += itemCounts[itemType] * typeWeights[itemType];
}
weightedCount = weightedCount.toFixed(2);

এই উদাহরণের জন্য, এই ধাপের আউটপুট হল: 78.3.

এখন আপনি লগারিদমিক স্বাভাবিককরণ ব্যবহার করতে পারেন এই অবস্থানের জন্য 0 এবং 5 এর মধ্যে একটি স্কেলে চূড়ান্ত স্কোর তৈরি করতে:

if (weightedCount === 0) {
   normalizedScore = 0;
} else {
   normalizedScore = Math.log(weightedCount + 1);
}

// Clamp between 0 and 5
normalizedScore = Math.max(0, Math.min(5, normalizedScore));

এই উদাহরণের জন্য, চূড়ান্ত স্কোর আউটপুট হল: 4.36 (দুই দশমিক স্থানে বৃত্তাকার)।

বিকল্প 2: Gemini Developer API ব্যবহার করুন

একটি স্থানীয় অ্যালগরিদম ব্যবহার করার বিকল্প হিসাবে, জেমিনি ডেভেলপার API সমস্ত অবস্থানের জন্য কাস্টম অবস্থান স্কোর গণনা করার একটি শক্তিশালী উপায় অফার করে৷ আপনার সমস্ত হোটেল অবস্থানের জন্য সিস্টেম নির্দেশাবলী সহ কেবল গণনা এবং ওজনের ডেটা সরবরাহ করুন।

এই পদ্ধতিটি বিশেষভাবে কার্যকর যদি আপনার কাছে সূক্ষ্ম তথ্য থাকে যা আপনি গণনায় অন্তর্ভুক্ত করতে চান, যেমন:

  • প্রতিটি হোটেলের অবস্থানের জন্য পাঠ্য বিবরণ, উদাহরণস্বরূপ: "এই অবস্থানটি পরিবারের জন্য উপযুক্ত এবং এলাকাটি রাতে শান্ত"।
  • আপনার ব্যবহারকারী সম্পর্কে তথ্য, যেমন: "এই ব্যবহারকারী একটি পরিবারের জন্য বুকিং করছেন এবং একটি কেন্দ্রীয় অবস্থানে একটি শান্ত এলাকা পছন্দ করেন"।

জেমিনি ডেভেলপার এপিআই এই গুণগত ডেটা বুঝতে এবং ফ্যাক্টর করতে পারে যা একটি সম্পূর্ণরূপে গাণিতিক পদ্ধতির বাইরে আরও পরিশীলিত এবং প্রাসঙ্গিক স্কোরের দিকে পরিচালিত করে।

জেমিনি ডেভেলপার API ব্যবহার করে, উপরের স্থানের ধরন এবং ওজনের সারণী ছাড়াও, আপনার কাছে এইরকম দেখতে প্রতিটি অবস্থানের জন্য বিবরণ ডেটা থাকতে পারে:

অবস্থান

বর্ণনা

51.49884, -0.17978

জাদুঘরের কাছাকাছি কেন্দ্রীয় অবস্থান, রাতে শান্ত এবং পরিবারের জন্য উপযুক্ত।

51.51750, -0.13065

বার এবং রেস্তোরাঁর কাছাকাছি কেন্দ্রীয় অবস্থান। রাতে জোরে এবং ব্যস্ত, দলের জন্য ভাল।

51.45712, 0.01146

শহরের কেন্দ্র থেকে দূরে আবাসিক অবস্থান।

51.51271, -0.09933

নদীর কাছাকাছি কেন্দ্রীয় অবস্থান। রাতে শান্ত এবং পরিবারের জন্য উপযুক্ত।

51.58502, -0.06445

শহরের কেন্দ্র থেকে দূরে আবাসিক অবস্থান।

কোন ব্যবহারকারীর তথ্য বা পছন্দের সাথে এই গুণগত বিবরণগুলি আপনার মিথুনের প্রম্পটে অন্তর্ভুক্ত করা যেতে পারে।

সিস্টেম নির্দেশাবলী

প্রদত্ত ডেটা পয়েন্টের উপর ভিত্তি করে প্রতিটি অবস্থানের জন্য একটি স্কোর জেনারেট করবে তা জানার জন্য Gemini-এর কাঁচা ডেটা সহ নির্দেশাবলীর প্রয়োজন৷ এটি অর্জনের জন্য একটি উদাহরণ সিস্টেম নির্দেশনা নিম্নরূপ হতে পারে:

You will be given a json file containing details about a number of locations grouped by their latitude and longitudes.

Within the location details is information about the count of places nearby the location that match a specific category, and the weighting of importance of that category, between 0 - 1.

You will also be given information about the user's preference, and a description of each location. Take this into consideration when generating scores.

Generate a location suitability score taking these into account for each location. The score should be between 1 - 5 inclusive, to two decimal places. The minimum score a location can receive is 1.

Output in JSON

উপরের সিস্টেম নির্দেশাবলী জেমিনিকে জানতে দেয় যে কোন ডেটা আশা করা যায় এবং AI মডেল থেকে প্রত্যাশিত আউটপুট কী। এটি JSON-এ আউটপুটও অনুরোধ করে।

স্ট্রাকচার্ড আউটপুট

যদিও আমরা জেমিনিকে JSON-এ ফলাফল আউটপুট করতে বলেছি, আমাদের আউটপুটের গঠন সম্পর্কে আরও সুনির্দিষ্ট হতে হবে, তাই আমরা জানি যখন আমরা এটিকে কোড দিয়ে জিজ্ঞাসা করি তখন কী আশা করা যায়। এর জন্য, আমরা Gemini API-এ ResponseSchema ক্ষেত্র ব্যবহার করে অনুরোধে একটি অতিরিক্ত কাঠামোগত আউটপুট নির্দেশনা যোগ করতে পারি। মডেল আউটপুট সীমাবদ্ধ করতে এটি একটি OpenAPI স্কিমা অবজেক্ট ব্যবহার করে।

যেমন:

{
  "type": "array",
  "description": "Array of location data with score",
  "items": {
    "type": "object",
    "properties": {
      "location": {
        "type": "object",
        "description": "Geographical coordinates of the location",
        "properties": {
          "latitude": {
            "type": "number",
            "format": "float",
            "description": "Latitude of the location"
          },
          "longitude": {
            "type": "number",
            "format": "float",
            "description": "Longitude of the location"
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "score": {
        "type": "string",
        "description": "A score associated with the location"
      }
    },
    "required": [
      "location",
      "score"
    ]
  }
}

এই উদাহরণটি অনুরোধ করে যে মিথুন নিম্নলিখিতগুলির সাথে একটি জাভাস্ক্রিপ্ট অ্যারে আউটপুট করে:

  • অবস্থান অক্ষাংশ ও দ্রাঘিমাংশ
  • কাস্টম অবস্থান স্কোর

উপরের সিস্টেম নির্দেশাবলী এবং স্ট্রাকচার্ড আউটপুট ব্যবহার করে, একটি অবস্থানের জন্য মিথুন থেকে প্রতিক্রিয়া এইরকম দেখাবে, score কাস্টম অবস্থানের স্কোর সহ:

[
  {
    "location": {
      "latitude": 51.51611,
      "longitude": -0.12726
    },
    "score": "4.13"
  }
]

স্কোর প্রদর্শন করুন

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

উপসংহার

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

আপনার গ্রাহকদের ভালোভাবে অবহিত অবস্থান-ভিত্তিক সিদ্ধান্ত নিতে সাহায্য করার জন্য অন্তর্দৃষ্টিপূর্ণ অবস্থানের স্কোর তৈরি করতে আজই প্লেস অ্যাগ্রিগেট API ব্যবহার করে দেখুন!

অবদানকারী

হেনরিক ভালভ | ডেভএক্স ইঞ্জিনিয়ার