কোডল্যাব - Neo4j এবং Vertex AI ব্যবহার করে একটি মুভি সুপারিশ চ্যাটবট তৈরি করুন

কোডল্যাব - Neo4j এবং Vertex AI ব্যবহার করে একটি মুভি সুপারিশ চ্যাটবট তৈরি করুন

এই কোডল্যাব সম্পর্কে

subjectমে ১৫, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleRomin Irani and Siddhant Agarwal(GDE)-এর লেখা

1. ওভারভিউ

এই কোডল্যাবে, আপনি Neo4j, Google Vertex AI, এবং Gemini-এর শক্তিকে একত্রিত করে একটি বুদ্ধিমান মুভি সুপারিশ চ্যাটবট তৈরি করবেন। এই সিস্টেমের কেন্দ্রবিন্দুতে রয়েছে একটি Neo4j নলেজ গ্রাফ যা আন্তঃসংযুক্ত নোড এবং সম্পর্কের সমৃদ্ধ নেটওয়ার্কের মাধ্যমে চলচ্চিত্র, অভিনেতা, পরিচালক, জেনার এবং আরও অনেক কিছুকে মডেল করে।

শব্দার্থগত বোঝার সাথে ব্যবহারকারীর অভিজ্ঞতা বাড়াতে, আপনি Vertex AI এর text-embedding-004 মডেল (বা নতুন) ব্যবহার করে মুভি প্লট ওভারভিউ থেকে ভেক্টর এম্বেডিং তৈরি করবেন। এই এম্বেডিংগুলি দ্রুত, সাদৃশ্য-ভিত্তিক পুনরুদ্ধারের জন্য Neo4j-এ সূচীভুক্ত করা হয়েছে।

অবশেষে, আপনি একটি কথোপকথনমূলক ইন্টারফেসকে শক্তিশালী করতে মিথুনকে সংহত করবেন যেখানে ব্যবহারকারীরা "আমি ইন্টারস্টেলার পছন্দ করলে আমার কী দেখা উচিত?" এবং শব্দার্থগত মিল এবং গ্রাফ-ভিত্তিক প্রেক্ষাপটের উপর ভিত্তি করে ব্যক্তিগতকৃত চলচ্চিত্রের পরামর্শ পান।

কোডল্যাবের মাধ্যমে, আপনি নিম্নলিখিত হিসাবে একটি ধাপে ধাপে পদ্ধতি ব্যবহার করবেন:

  1. চলচ্চিত্র-সম্পর্কিত সত্তা এবং সম্পর্কের সাথে একটি Neo4j জ্ঞান গ্রাফ তৈরি করুন
  2. Vertex AI ব্যবহার করে মুভি ওভারভিউগুলির জন্য টেক্সট এম্বেডিং তৈরি/লোড করুন
  3. Gemini দ্বারা চালিত একটি Gradio চ্যাটবট ইন্টারফেস প্রয়োগ করুন যা গ্রাফ-ভিত্তিক সাইফার এক্সিকিউশনের সাথে ভেক্টর অনুসন্ধানকে একত্রিত করে
  4. (ঐচ্ছিক) একটি স্বতন্ত্র ওয়েব অ্যাপ্লিকেশন হিসাবে ক্লাউড রানে অ্যাপটি স্থাপন করুন

আপনি কি শিখবেন

  • সাইফার এবং Neo4j ব্যবহার করে কীভাবে একটি চলচ্চিত্র জ্ঞানের গ্রাফ তৈরি এবং পপুলেট করা যায়
  • শব্দার্থিক টেক্সট এম্বেডিং তৈরি করতে এবং কাজ করতে Vertex AI কীভাবে ব্যবহার করবেন
  • GraphRAG ব্যবহার করে বুদ্ধিমান পুনরুদ্ধারের জন্য এলএলএম এবং নলেজ গ্রাফগুলিকে কীভাবে একত্রিত করবেন
  • কিভাবে Gradio ব্যবহার করে একটি ব্যবহারকারী-বান্ধব চ্যাট ইন্টারফেস তৈরি করবেন
  • কিভাবে ঐচ্ছিকভাবে গুগল ক্লাউড রানে স্থাপন করবেন

আপনি কি প্রয়োজন হবে

  • ক্রোম ওয়েব ব্রাউজার
  • একটি জিমেইল অ্যাকাউন্ট
  • বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প৷
  • একটি বিনামূল্যের Neo4j Aura DB অ্যাকাউন্ট
  • টার্মিনাল কমান্ড এবং পাইথনের সাথে প্রাথমিক পরিচিতি (সহায়ক কিন্তু প্রয়োজন নেই)

এই কোডল্যাব, সমস্ত স্তরের বিকাশকারীদের জন্য ডিজাইন করা হয়েছে (শিশুদের সহ), এটির নমুনা অ্যাপ্লিকেশনে পাইথন এবং Neo4j ব্যবহার করে। যদিও পাইথন এবং গ্রাফ ডাটাবেসের সাথে প্রাথমিক পরিচিতি সহায়ক হতে পারে, ধারণাগুলি বুঝতে বা অনুসরণ করার জন্য কোনও পূর্ব অভিজ্ঞতার প্রয়োজন নেই।

a194b635f913211b.png

2. Neo4j AuraDB সেটআপ করুন

Neo4j হল একটি নেটিভ নেটিভ গ্রাফ ডাটাবেস যা নোড (সত্তা) এবং সম্পর্কের (সত্তার মধ্যে সংযোগ) নেটওয়ার্ক হিসাবে ডেটা সঞ্চয় করে, এটি এমন ক্ষেত্রে ব্যবহার করার জন্য আদর্শ করে যেখানে সংযোগগুলি বোঝার চাবিকাঠি — যেমন সুপারিশ, জালিয়াতি সনাক্তকরণ, জ্ঞান গ্রাফ এবং আরও অনেক কিছু। রিলেশনাল বা ডকুমেন্ট-ভিত্তিক ডাটাবেসগুলির বিপরীতে যা অনমনীয় সারণী বা শ্রেণিবদ্ধ কাঠামোর উপর নির্ভর করে, Neo4j-এর নমনীয় গ্রাফ মডেল জটিল, আন্তঃসংযুক্ত ডেটার স্বজ্ঞাত এবং দক্ষ উপস্থাপনের জন্য অনুমতি দেয়।

রিলেশনাল ডাটাবেসের মতো সারি এবং টেবিলে ডেটা সংগঠিত করার পরিবর্তে, Neo4j একটি গ্রাফ মডেল ব্যবহার করে, যেখানে তথ্যকে নোড (সত্তা) এবং সম্পর্ক (সেই সত্তাগুলির মধ্যে সংযোগ) হিসাবে উপস্থাপন করা হয়। এই মডেলটি অন্তর্নিহিতভাবে লিঙ্কযুক্ত ডেটার সাথে কাজ করার জন্য এটিকে ব্যতিক্রমীভাবে স্বজ্ঞাত করে তোলে — যেমন মানুষ, স্থান, পণ্য বা, আমাদের ক্ষেত্রে, চলচ্চিত্র, অভিনেতা এবং জেনার।

উদাহরণস্বরূপ, একটি চলচ্চিত্র ডেটাসেটে:

  • একটি নোড একটি Movie , Actor , বা Director প্রতিনিধিত্ব করতে পারে
  • একটি সম্পর্ক ACTED_IN বা DIRECTED হতে পারে৷

এই কাঠামোটি আপনাকে সহজেই প্রশ্ন জিজ্ঞাসা করতে সক্ষম করে:

  • কোন সিনেমায় অভিনয় করেছেন এই অভিনেতা?
  • ক্রিস্টোফার নোলানের সাথে কে কাজ করেছেন?
  • ভাগ করা অভিনেতা বা ঘরানার উপর ভিত্তি করে অনুরূপ সিনেমা কি?

Neo4j সাইফার নামক একটি শক্তিশালী ক্যোয়ারী ল্যাঙ্গুয়েজ নিয়ে আসে, যা বিশেষভাবে গ্রাফ অনুসন্ধানের জন্য ডিজাইন করা হয়েছে। সাইফার আপনাকে জটিল নিদর্শন এবং সংযোগগুলিকে সংক্ষিপ্ত এবং পাঠযোগ্য উপায়ে প্রকাশ করতে দেয়।

Neo4j আপনার প্রয়োজনের উপর নির্ভর করে একাধিক স্থাপনার বিকল্প অফার করে:

  • স্ব-পরিচালিত : Neo4j ডেস্কটপ ব্যবহার করে আপনার নিজস্ব অবকাঠামোতে বা ডকার ইমেজ হিসাবে (অন-প্রেম বা আপনার নিজের ক্লাউডে) Neo4j চালান। 397a3c535b52d3f6.png
  • ক্লাউড-পরিচালিত : মার্কেটপ্লেস অফার ব্যবহার করে জনপ্রিয় ক্লাউড প্রদানকারীদের উপর Neo4j স্থাপন করুন।
  • সম্পূর্ণরূপে পরিচালিত : Neo4j AuraDB ব্যবহার করুন, Neo4j-এর সম্পূর্ণরূপে পরিচালিত ক্লাউড ডেটাবেস-এ-সার্ভিস, যা আপনার জন্য প্রভিশনিং, স্কেলিং, ব্যাকআপ এবং নিরাপত্তা পরিচালনা করে।

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

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

কেন গ্রাফ?

ঐতিহ্যগত রিলেশনাল ডাটাবেসে, "কোন সিনেমা শেয়ার করা কাস্ট বা জেনারের উপর ভিত্তি করে ইনসেপশনের মতো?" একাধিক টেবিল জুড়ে জটিল JOIN অপারেশন জড়িত হবে। সম্পর্কের গভীরতা বাড়ার সাথে সাথে কর্মক্ষমতা এবং পাঠযোগ্যতা হ্রাস পায়।

Neo4j-এর মতো গ্রাফ ডেটাবেসগুলি, যদিও, দক্ষতার সাথে সম্পর্কগুলিকে অতিক্রম করার জন্য তৈরি করা হয়েছে, সেগুলিকে সুপারিশ সিস্টেম, শব্দার্থিক অনুসন্ধান এবং বুদ্ধিমান সহকারীর জন্য একটি স্বাভাবিক উপযুক্ত করে তোলে৷ তারা বাস্তব-বিশ্বের প্রেক্ষাপট ক্যাপচার করতে সাহায্য করে — যেমন সহযোগিতা নেটওয়ার্ক, স্টোরিলাইন বা দর্শকের পছন্দ — যা ঐতিহ্যগত ডেটা মডেল ব্যবহার করে উপস্থাপন করা কঠিন হতে পারে।

জেমিনি এবং Vertex AI থেকে ভেক্টর এম্বেডিংয়ের মতো LLM-এর সাথে এই সংযুক্ত ডেটা একত্রিত করে, আমরা চ্যাটবট অভিজ্ঞতাকে সুপারচার্জ করতে পারি — এটিকে যুক্তি, পুনরুদ্ধার এবং আরও ব্যক্তিগতকৃত, প্রাসঙ্গিক উপায়ে প্রতিক্রিয়া জানাতে দেয়।

Neo4j AuraDB বিনামূল্যের সৃষ্টি

  1. https://console.neo4j.io দেখুন
  2. আপনার Google অ্যাকাউন্ট বা ইমেল দিয়ে লগ ইন করুন।
  3. "ফ্রি ইনস্ট্যান্স তৈরি করুন" এ ক্লিক করুন।
  4. দৃষ্টান্তের ব্যবস্থা করার সময়, একটি পপআপ উইন্ডো প্রদর্শিত হবে যা আপনার ডাটাবেসের জন্য সংযোগের শংসাপত্রগুলি দেখাবে।

পপআপ থেকে নিম্নলিখিত বিশদগুলি ডাউনলোড এবং নিরাপদে সংরক্ষণ করা নিশ্চিত করুন — এগুলি আপনার অ্যাপ্লিকেশনকে Neo4j-এর সাথে সংযুক্ত করার জন্য অপরিহার্য:

NEO4J_URI=neo4j+s://<your-instance-id>.databases.neo4j.io
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=<your-generated-password>
AURA_INSTANCEID=<your-instance-id>
AURA_INSTANCENAME=<your-instance-name>

আপনি পরবর্তী ধাপে Neo4j এর সাথে প্রমাণীকরণের জন্য আপনার প্রকল্পে .env ফাইল কনফিগার করতে এই মানগুলি ব্যবহার করবেন।

a1e29e56e6c412fc.png

Neo4j AuraDB ফ্রি এই কোডল্যাবের মতো উন্নয়ন, পরীক্ষা-নিরীক্ষা এবং ছোট আকারের অ্যাপ্লিকেশনের জন্য উপযুক্ত। এটি উদার ব্যবহার সীমা অফার করে, 200,000 নোড এবং 400,000 সম্পর্ক পর্যন্ত সমর্থন করে৷ যদিও এটি একটি জ্ঞান গ্রাফ তৈরি এবং অনুসন্ধান করার জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় বৈশিষ্ট্য সরবরাহ করে, এটি কাস্টম প্লাগইন বা বর্ধিত সঞ্চয়স্থানের মতো উন্নত কনফিগারেশন সমর্থন করে না। প্রোডাকশন ওয়ার্কলোড বা বৃহত্তর ডেটাসেটের জন্য, আপনি একটি উচ্চ-স্তরের AuraDB প্ল্যানে আপগ্রেড করতে পারেন যা আরও বেশি ক্ষমতা, কর্মক্ষমতা এবং এন্টারপ্রাইজ-গ্রেড বৈশিষ্ট্যগুলি অফার করে।

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

3. আপনি শুরু করার আগে

একটি প্রকল্প তৈরি করুন

  1. Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
  2. নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
  3. আপনি ক্লাউড শেল ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq এর সাথে প্রিলোড করা হয়। গুগল ক্লাউড কনসোলের শীর্ষে সক্রিয় ক্লাউড শেল ক্লিক করুন।

ক্লাউড শেল বোতামের ছবি সক্রিয় করুন

  1. একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি পরীক্ষা করে দেখুন যে আপনি ইতিমধ্যেই প্রমাণীকৃত হয়েছেন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে:
gcloud auth list
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
  1. নীচে দেখানো কমান্ডের মাধ্যমে প্রয়োজনীয় API গুলি সক্ষম করুন৷ এটি কয়েক মিনিট সময় নিতে পারে, তাই ধৈর্য ধরুন।
gcloud services enable cloudresourcemanager.googleapis.com \
                       
servicenetworking.googleapis.com \
                       
run.googleapis.com \
                       
cloudbuild.googleapis.com \
                       
cloudfunctions.googleapis.com \
                       
aiplatform.googleapis.com

কমান্ডটি সফলভাবে কার্যকর করার সময়, আপনি একটি বার্তা দেখতে পাবেন: " অপারেশন .... সফলভাবে সমাপ্ত"।

gcloud কমান্ডের বিকল্প হল কনসোলের মাধ্যমে প্রতিটি পণ্য অনুসন্ধান করে বা এই লিঙ্কটি ব্যবহার করে।

যদি কোনো API মিস হয়, আপনি সর্বদা বাস্তবায়নের সময় এটি সক্রিয় করতে পারেন।

জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।

ক্লোন সংগ্রহস্থল এবং সেটআপ পরিবেশ সেটিংস

পরবর্তী ধাপ হল নমুনা সংগ্রহস্থল ক্লোন করা যা আমরা কোডল্যাবের বাকি অংশে উল্লেখ করব। ধরে নিই যে আপনি ক্লাউড শেলে আছেন, আপনার হোম ডিরেক্টরি থেকে নিম্নলিখিত কমান্ড দিন:

git clone https://github.com/sidagarwal04/neo4j-vertexai-codelab.git

সম্পাদক চালু করতে, ক্লাউড শেল উইন্ডোর টুলবারে সম্পাদক খুলুন ক্লিক করুন। উপরের বাম কোণে মেনু বারে ক্লিক করুন এবং নীচে দেখানো হিসাবে ফাইল → ফোল্ডার খুলুন নির্বাচন করুন:

66221fd0d0e5202f.png

neo4j-vertexai-codelab ফোল্ডারটি নির্বাচন করুন এবং আপনি নীচের চিত্রের মতো কিছুটা অনুরূপ কাঠামোর সাথে ফোল্ডারটি খোলা দেখতে পাবেন:

e49542efd70de22e.png

এর পরে, আমাদের পরিবেশের ভেরিয়েবলগুলি সেট আপ করতে হবে যা কোডল্যাব জুড়ে ব্যবহার করা হবে। example.env ফাইলে ক্লিক করুন এবং নিচের মত বিষয়বস্তু দেখতে পাবেন:

NEO4J_URI=
NEO4J_USER=
NEO4J_PASSWORD=
NEO4J_DATABASE=
PROJECT_ID=
LOCATION=

এখন example.env ফাইলের মতো একই ফোল্ডারে .env নামে একটি নতুন ফাইল তৈরি করুন এবং বিদ্যমান example.env ফাইলের বিষয়বস্তু অনুলিপি করুন। এখন, নিম্নলিখিত ভেরিয়েবল আপডেট করুন:

  • NEO4J_URI , NEO4J_USER , NEO4J_PASSWORD , এবং NEO4J_DATABASE :
  • আগের ধাপে Neo4j AuraDB ফ্রি ইন্সট্যান্স তৈরির সময় প্রদত্ত শংসাপত্র ব্যবহার করে এই মানগুলি পূরণ করুন।
  • NEO4J_DATABASE সাধারণত AuraDB বিনামূল্যের জন্য neo4j-এ সেট করা হয়।
  • PROJECT_ID এবং LOCATION :
  • আপনি যদি Google ক্লাউড শেল থেকে কোডল্যাব চালাচ্ছেন, আপনি এই ক্ষেত্রগুলি ফাঁকা রাখতে পারেন, কারণ সেগুলি আপনার সক্রিয় প্রকল্প কনফিগারেশন থেকে স্বয়ংক্রিয়ভাবে অনুমান করা হবে৷
  • আপনি যদি স্থানীয়ভাবে বা ক্লাউড শেলের বাইরে চালান, তাহলে আপনার আগে তৈরি করা Google ক্লাউড প্রকল্পের ID দিয়ে PROJECT_ID আপডেট করুন এবং সেই প্রকল্পের জন্য আপনার নির্বাচিত অঞ্চলে LOCATION সেট করুন (যেমন, us-central1)।

একবার আপনি এই মানগুলি পূরণ করার পরে, .env ফাইলটি সংরক্ষণ করুন। এই কনফিগারেশনটি আপনার অ্যাপ্লিকেশনটিকে Neo4j এবং Vertex AI উভয় পরিষেবার সাথে সংযোগ করার অনুমতি দেবে৷

আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার চূড়ান্ত ধাপ হল একটি পাইথন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা এবং requirements.txt .txt ফাইলে তালিকাভুক্ত সমস্ত প্রয়োজনীয় নির্ভরতা ইনস্টল করা। এই নির্ভরতাগুলির মধ্যে রয়েছে Neo4j, Vertex AI, Gradio এবং আরও অনেক কিছুর সাথে কাজ করার জন্য প্রয়োজনীয় লাইব্রেরি।

প্রথমে, নিম্নলিখিত কমান্ডটি চালিয়ে .venv নামে একটি ভার্চুয়াল পরিবেশ তৈরি করুন:

python -m venv .venv

একবার পরিবেশ তৈরি হয়ে গেলে, আমাদের নিম্নলিখিত কমান্ডের সাহায্যে তৈরি পরিবেশ সক্রিয় করতে হবে

source .venv/bin/activate

আপনি এখন আপনার টার্মিনাল প্রম্পটের শুরুতে (.venv) দেখতে পাবেন, এটি নির্দেশ করে যে পরিবেশ সক্রিয়। যেমন: (.venv) yourusername@cloudshell:

এখন, রান করে প্রয়োজনীয় নির্ভরতাগুলি ইনস্টল করুন:

pip install -r requirements.txt

এখানে ফাইলে তালিকাভুক্ত কী নির্ভরতার একটি স্ন্যাপশট রয়েছে:

gradio>=4.0.0
neo4j>=5.0.0
numpy>=1.20.0
python-dotenv>=1.0.0
google-cloud-aiplatform>=1.30.0
vertexai>=0.0.1

সমস্ত নির্ভরতা সফলভাবে ইনস্টল হয়ে গেলে, আপনার স্থানীয় পাইথন পরিবেশ এই কোডল্যাবে স্ক্রিপ্ট এবং চ্যাটবট চালানোর জন্য সম্পূর্ণরূপে কনফিগার করা হবে।

দারুণ! আমরা এখন পরবর্তী ধাপে যাওয়ার জন্য প্রস্তুত — ডেটাসেট বোঝা এবং গ্রাফ তৈরি এবং শব্দার্থিক সমৃদ্ধির জন্য এটি প্রস্তুত করা।

4. মুভি ডেটাসেট প্রস্তুত করুন

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

আমরা রৌনক বণিকের দ্য মুভিজ ডেটাসেট ব্যবহার করছি, একটি সুপরিচিত পাবলিক ডেটাসেট কাগল-এ উপলব্ধ। এতে কাস্ট, ক্রু, কীওয়ার্ড, রেটিং এবং আরও অনেক কিছু সহ TMDB থেকে 45,000টিরও বেশি চলচ্চিত্রের মেটাডেটা অন্তর্ভুক্ত রয়েছে।

9e3a1dc4c286af1b.png

একটি নির্ভরযোগ্য এবং কার্যকর মুভি সুপারিশ চ্যাটবট তৈরি করতে, পরিষ্কার, সামঞ্জস্যপূর্ণ এবং কাঠামোগত ডেটা দিয়ে শুরু করা অপরিহার্য। যদিও কাগলের দ্য মুভিজ ডেটাসেট হল 45,000 টিরও বেশি মুভি রেকর্ড এবং বিস্তারিত মেটাডেটা সহ একটি সমৃদ্ধ সংস্থান — যার মধ্যে জেনার, কাস্ট, ক্রু এবং আরও অনেক কিছু রয়েছে — এতে গোলমাল, অসঙ্গতি এবং নেস্টেড ডেটা স্ট্রাকচার রয়েছে যা গ্রাফ মডেলিং বা শব্দার্থিক এম্বেডিংয়ের জন্য আদর্শ নয়।

এটি মোকাবেলা করার জন্য, আমরা ডেটাসেটটিকে একটি Neo4j নলেজ গ্রাফ তৈরি এবং উচ্চ-মানের এম্বেডিং তৈরি করার জন্য উপযুক্ত কিনা তা নিশ্চিত করার জন্য পূর্ব-প্রসেস করেছি এবং স্বাভাবিক করেছি । এই প্রক্রিয়া জড়িত:

  • সদৃশ এবং অসম্পূর্ণ রেকর্ড অপসারণ
  • মূল ক্ষেত্রগুলিকে স্ট্যান্ডার্ডাইজ করা (যেমন, জেনার নাম, ব্যক্তির নাম)
  • জটিল নেস্টেড স্ট্রাকচার (যেমন, কাস্ট এবং ক্রু) স্ট্রাকচার্ড CSV-এ সমতল করা
  • Neo4j AuraDB ফ্রি সীমার মধ্যে থাকার জন্য ~12,000 সিনেমার একটি প্রতিনিধি উপসেট নির্বাচন করা

উচ্চ-মানের, স্বাভাবিক ডেটা নিশ্চিত করতে সাহায্য করে:

  • ডেটা গুণমান : আরও সঠিক সুপারিশের জন্য ত্রুটি এবং অসঙ্গতিগুলি কমিয়ে দেয়
  • ক্যোয়ারী কর্মক্ষমতা : সুবিন্যস্ত কাঠামো পুনরুদ্ধারের গতি উন্নত করে এবং অপ্রয়োজনীয়তা হ্রাস করে
  • এম্বেডিং নির্ভুলতা : পরিষ্কার ইনপুটগুলি আরও অর্থপূর্ণ এবং প্রাসঙ্গিক ভেক্টর এম্বেডিংয়ের দিকে নিয়ে যায়

আপনি এই GitHub রেপোর normalized_data/ ফোল্ডারে পরিষ্কার এবং স্বাভাবিক ডেটাসেট অ্যাক্সেস করতে পারেন। আসন্ন পাইথন স্ক্রিপ্টগুলিতে সহজে অ্যাক্সেসের জন্য এই ডেটাসেটটি একটি Google ক্লাউড স্টোরেজ বাকেটেও মিরর করা হয়েছে।

ডেটা পরিষ্কার এবং প্রস্তুত হওয়ার সাথে সাথে, আমরা এখন এটিকে Neo4j-এ লোড করতে এবং আমাদের চলচ্চিত্র জ্ঞানের গ্রাফ তৈরি করতে প্রস্তুত।

5. চলচ্চিত্র জ্ঞান গ্রাফ তৈরি করুন

আমাদের GenAI-সক্ষম মুভি সুপারিশ চ্যাটবটকে শক্তিশালী করতে, আমাদের মুভি ডেটাসেটকে এমনভাবে গঠন করতে হবে যা সিনেমা, অভিনেতা, পরিচালক, জেনার এবং অন্যান্য মেটাডেটার মধ্যে সংযোগের সমৃদ্ধ নেটওয়ার্ক ক্যাপচার করে। এই বিভাগে, আমরা আপনার আগে তৈরি করা পরিষ্কার এবং স্বাভাবিক ডেটাসেট ব্যবহার করে Neo4j-এ একটি মুভিজ নলেজ গ্রাফ তৈরি করব।

আমরা একটি পাবলিক Google ক্লাউড স্টোরেজ (GCS) বালতিতে হোস্ট করা CSV ফাইলগুলিকে গ্রাস করতে Neo4j এর LOAD CSV ক্ষমতা ব্যবহার করব৷ এই ফাইলগুলি মুভি ডেটাসেটের বিভিন্ন উপাদানের প্রতিনিধিত্ব করে, যেমন মুভি, জেনার, কাস্ট, ক্রু, প্রোডাকশন কোম্পানি এবং ব্যবহারকারীর রেটিং।

ধাপ 1: সীমাবদ্ধতা এবং সূচক তৈরি করুন

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

CREATE CONSTRAINT unique_tmdb_id IF NOT EXISTS FOR (m:Movie) REQUIRE m.tmdbId IS UNIQUE;
CREATE CONSTRAINT unique_movie_id IF NOT EXISTS FOR (m:Movie) REQUIRE m.movieId IS UNIQUE;
CREATE CONSTRAINT unique_prod_id IF NOT EXISTS FOR (p:ProductionCompany) REQUIRE p.company_id IS UNIQUE;
CREATE CONSTRAINT unique_genre_id IF NOT EXISTS FOR (g:Genre) REQUIRE g.genre_id IS UNIQUE;
CREATE CONSTRAINT unique_lang_id IF NOT EXISTS FOR (l:SpokenLanguage) REQUIRE l.language_code IS UNIQUE;
CREATE CONSTRAINT unique_country_id IF NOT EXISTS FOR (c:Country) REQUIRE c.country_code IS UNIQUE;

CREATE INDEX actor_id IF NOT EXISTS FOR (p:Person) ON (p.actor_id);
CREATE INDEX crew_id IF NOT EXISTS FOR (p:Person) ON (p.crew_id);
CREATE INDEX movieId IF NOT EXISTS FOR (m:Movie) ON (m.movieId);
CREATE INDEX user_id IF NOT EXISTS FOR (p:Person) ON (p.user_id);

ধাপ 2: মুভি মেটাডেটা এবং সম্পর্ক আমদানি করুন

আসুন আমরা LOAD CSV কমান্ড ব্যবহার করে কিভাবে মুভি মেটাডেটা আমদানি করি তা দেখে নেওয়া যাক। এই উদাহরণটি শিরোনাম, ওভারভিউ, ভাষা এবং রানটাইমের মতো মূল বৈশিষ্ট্য সহ মুভি নোড তৈরি করে:

LOAD CSV WITH HEADERS FROM "https://storage.googleapis.com/neo4j-vertexai-codelab/normalized_data/normalized_movies.csv" AS row
WITH row, toInteger(row.tmdbId) AS tmdbId
WHERE tmdbId IS NOT NULL
WITH row, tmdbId
LIMIT 12000
MERGE (m:Movie {tmdbId: tmdbId})
ON CREATE SET m.title = coalesce(row.title, "None"),
             
m.original_title = coalesce(row.original_title, "None"),
             
m.adult = CASE
                           
WHEN toInteger(row.adult) = 1 THEN 'Yes'
                           
ELSE 'No'
                       
END,
             
m.budget = toInteger(coalesce(row.budget, 0)),
             
m.original_language = coalesce(row.original_language, "None"),
             
m.revenue = toInteger(coalesce(row.revenue, 0)),
             
m.tagline = coalesce(row.tagline, "None"),
             
m.overview = coalesce(row.overview, "None"),
             
m.release_date = coalesce(row.release_date, "None"),
             
m.runtime = toFloat(coalesce(row.runtime, 0)),
             
m.belongs_to_collection = coalesce(row.belongs_to_collection, "None");

অনুরূপ সাইফার কমান্ডগুলি সম্পর্কিত সত্তা যেমন জেনার, উত্পাদন সংস্থা, ভাষা, দেশ, কাস্ট, ক্রু এবং রেটিংগুলি আমদানি করতে ব্যবহার করা যেতে পারে।

পাইথনের মাধ্যমে সম্পূর্ণ গ্রাফ লোড করুন

ম্যানুয়ালি একাধিক সাইফার কোয়েরি চালানোর পরিবর্তে, আমরা এই কোডল্যাবে দেওয়া স্বয়ংক্রিয় পাইথন স্ক্রিপ্ট ব্যবহার করার পরামর্শ দিই।

স্ক্রিপ্ট graph_build.py আপনার .env ফাইলের শংসাপত্র ব্যবহার করে আপনার Neo4j AuraDB উদাহরণে GCS থেকে সম্পূর্ণ ডেটাসেট লোড করে।

python graph_build.py

স্ক্রিপ্টটি পর্যায়ক্রমে সমস্ত প্রয়োজনীয় CSV লোড করবে, নোড এবং সম্পর্ক তৈরি করবে এবং আপনার সম্পূর্ণ চলচ্চিত্র জ্ঞানের গ্রাফ গঠন করবে।

আপনার গ্রাফ যাচাই করুন

লোড করার পরে, আপনি সহজ সাইফার প্রশ্নগুলি চালিয়ে আপনার গ্রাফ যাচাই করতে পারেন যেমন:

MATCH (m:Movie) RETURN m LIMIT 5;
MATCH (a:Actor)-[:ACTED_IN]->(m:Movie) RETURN a.name, m.title LIMIT 5;

আপনি এখন আপনার গ্রাফটি সিনেমা, মানুষ, ঘরানা এবং আরও অনেক কিছু দিয়ে পরিপূর্ণ দেখতে পাবেন — পরবর্তী ধাপে শব্দার্থগতভাবে সমৃদ্ধ হওয়ার জন্য প্রস্তুত!

6. ভেক্টর সাদৃশ্য অনুসন্ধান করতে এম্বেডিং তৈরি এবং লোড করুন

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

bcca07eaee60787b.png

বিকল্প 1: সাইফারের মাধ্যমে প্রি-কম্পিউটেড এম্বেডিং লোড করুন

Neo4j এ সংশ্লিষ্ট Movie নোডগুলিতে এম্বেডিংগুলি দ্রুত সংযুক্ত করতে, Neo4j ব্রাউজারে নিম্নলিখিত সাইফার কমান্ডটি চালান:

LOAD CSV WITH HEADERS FROM 'https://storage.googleapis.com/neo4j-vertexai-codelab/movie_embeddings.csv' AS row
WITH row
MATCH (m:Movie {tmdbId: toInteger(row.tmdbId)})
SET m.embedding = apoc.convert.fromJsonList(row.embedding)

এই কমান্ডটি CSV থেকে এমবেডিং ভেক্টরগুলি পড়ে এবং প্রতিটি Movie নোডে একটি সম্পত্তি ( m.embedding ) হিসাবে তাদের সংযুক্ত করে।

বিকল্প 2: পাইথন ব্যবহার করে এম্বেডিং লোড করুন

আপনি প্রদত্ত পাইথন স্ক্রিপ্ট ব্যবহার করে প্রোগ্রামগতভাবে এমবেডিংগুলি লোড করতে পারেন। আপনি যদি নিজের পরিবেশে কাজ করছেন বা প্রক্রিয়াটি স্বয়ংক্রিয় করতে চান তবে এই পদ্ধতিটি কার্যকর:

python load_embeddings.py

এই স্ক্রিপ্টটি GCS থেকে একই CSV পড়ে এবং Python Neo4j ড্রাইভার ব্যবহার করে Neo4j এ এমবেডিং লেখে।

[ঐচ্ছিক] নিজে এম্বেডিং তৈরি করুন (অন্বেষণের জন্য)

আপনি যদি এম্বেডিংগুলি কীভাবে তৈরি হয় তা বুঝতে আগ্রহী হন, আপনি generate_embeddings.py স্ক্রিপ্টেই যুক্তিটি অন্বেষণ করতে পারেন। এটি text-embedding-004 মডেল ব্যবহার করে প্রতিটি মুভি ওভারভিউ টেক্সট এম্বেড করতে Vertex AI ব্যবহার করে।

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

# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "./service-account.json"

একবার এম্বেডিংগুলি Neo4j-এ লোড হয়ে গেলে, আপনার সিনেমার জ্ঞানের গ্রাফ শব্দার্থ-সচেতন হয়ে ওঠে — ভেক্টর সাদৃশ্য ব্যবহার করে শক্তিশালী প্রাকৃতিক ভাষা অনুসন্ধানকে সমর্থন করার জন্য প্রস্তুত!

7. মুভি সুপারিশ চ্যাটবট

আপনার জ্ঞানের গ্রাফ এবং ভেক্টর এম্বেডিংয়ের সাথে, এটি একটি সম্পূর্ণ কার্যকরী কথোপকথনমূলক ইন্টারফেসে সবকিছু একত্রিত করার সময় - আপনার GenAI-চালিত মুভি সুপারিশ চ্যাটবট

এই চ্যাটবটটি গ্র্যাডিও ব্যবহার করে পাইথনে প্রয়োগ করা হয়েছে, স্বজ্ঞাত ব্যবহারকারী ইন্টারফেস তৈরির জন্য একটি হালকা ওয়েব ফ্রেমওয়ার্ক। মূল লজিক app.py এ থাকে, যা আপনার Neo4j AuraDB ইন্সট্যান্সের সাথে সংযোগ করে এবং প্রাকৃতিক ভাষার প্রশ্নের প্রক্রিয়া ও উত্তর দিতে Google Vertex AI এবং Gemini ব্যবহার করে।

কিভাবে এটা কাজ করে

  1. ব্যবহারকারী একটি প্রাকৃতিক ভাষার প্রশ্ন টাইপ করে যেমন, "আমাকে ইন্টারস্টেলারের মতো সাই-ফাই থ্রিলারের সুপারিশ করুন"
  2. Vertex AI এর text-embedding-004 মডেল ব্যবহার করে প্রশ্নের জন্য একটি ভেক্টর এম্বেডিং তৈরি করুন
  3. শব্দার্থগতভাবে অনুরূপ চলচ্চিত্র পুনরুদ্ধার করতে Neo4j এ একটি ভেক্টর অনুসন্ধান করুন৷
  4. এতে মিথুন ব্যবহার করুন :
  • প্রশ্নটি প্রসঙ্গে ব্যাখ্যা করুন
  • ভেক্টর অনুসন্ধান ফলাফল এবং Neo4j স্কিমার উপর ভিত্তি করে একটি কাস্টম সাইফার ক্যোয়ারী তৈরি করুন
  • সম্পর্কিত গ্রাফ ডেটা (যেমন, অভিনেতা, পরিচালক, জেনার) বের করতে ক্যোয়ারীটি চালান
  • ব্যবহারকারীর জন্য কথোপকথন ফলাফল সংক্ষিপ্ত

c628f853e86ff61b.png

এই হাইব্রিড পদ্ধতি, যা GraphRAG (গ্রাফ পুনরুদ্ধার-অগমেন্টেড জেনারেশন) নামে পরিচিত, আরও সঠিক, প্রাসঙ্গিক এবং ব্যাখ্যাযোগ্য সুপারিশগুলি তৈরি করতে শব্দার্থগত পুনরুদ্ধার এবং কাঠামোগত যুক্তিকে একত্রিত করে।

স্থানীয়ভাবে চ্যাটবট চালান

আপনার ভার্চুয়াল পরিবেশ সক্রিয় করুন (যদি ইতিমধ্যে সক্রিয় না থাকে), তারপর চ্যাটবটটি চালু করুন:

python app.py

আপনি নিম্নলিখিত অনুরূপ একটি আউটপুট দেখতে হবে:

Vector index 'overview_embeddings' already exists. No need to create a new one.
* Running on local URL:  http://0.0.0.0:8080
To create a public link, set `share=True` in `launch()`.

💡 চ্যাটবটটি বাহ্যিকভাবে ভাগ করতে, app.pylaunch() ফাংশনে share=True সেট করুন।

চ্যাটবটের সাথে যোগাযোগ করুন

চ্যাটবট ইন্টারফেস অ্যাক্সেস করতে আপনার টার্মিনালে প্রদর্শিত স্থানীয় URLটি খুলুন (সাধারণত 👉 http://0.0.0.0:8080 )।

যেমন প্রশ্ন জিজ্ঞাসা করার চেষ্টা করুন:

  • "আমি ইন্টারস্টেলার পছন্দ করলে আমার কী দেখা উচিত?"
  • "নোরা ইফ্রন পরিচালিত একটি রোমান্টিক সিনেমার পরামর্শ দিন"
  • "আমি টম হ্যাঙ্কসের সাথে একটি পারিবারিক সিনেমা দেখতে চাই"
  • "কৃত্রিম বুদ্ধিমত্তা জড়িত থ্রিলার সিনেমা খুঁজুন"

a194b635f913211b.png

চ্যাটবট হবে:

✅ প্রশ্নটি বুঝুন

✅ এম্বেডিং ব্যবহার করে শব্দার্থগতভাবে অনুরূপ মুভি প্লট খুঁজুন

✅ সম্পর্কিত গ্রাফ প্রসঙ্গ আনতে একটি সাইফার কোয়েরি তৈরি করুন এবং চালান

✅ একটি বন্ধুত্বপূর্ণ, ব্যক্তিগতকৃত সুপারিশ ফেরত দিন — সব কিছু সেকেন্ডের মধ্যে

আপনি এখন কি আছে

আপনি এইমাত্র একটি GraphRAG-চালিত মুভি চ্যাটবট তৈরি করেছেন যা একত্রিত করে:

  • শব্দার্থিক প্রাসঙ্গিকতার জন্য ভেক্টর অনুসন্ধান
  • Neo4j এর সাথে নলেজ গ্রাফ রিজনিং
  • মিথুনের মাধ্যমে এলএলএম ক্ষমতা
  • Gradio এর সাথে একটি মসৃণ চ্যাট ইন্টারফেস

এই স্থাপত্যটি একটি ভিত্তি তৈরি করে যা আপনি GenAI দ্বারা চালিত আরও উন্নত অনুসন্ধান, সুপারিশ বা যুক্তি সিস্টেমগুলিতে প্রসারিত করতে পারেন।

8. (ঐচ্ছিক) Google Cloud Run-এ স্থাপন করা হচ্ছে

a194b635f913211b.png

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

এই স্থাপনা ব্যবহার করে:

  • requirements.txt — পাইথন নির্ভরতাকে সংজ্ঞায়িত করতে (Neo4j, Vertex AI, Gradio, ইত্যাদি)
  • Dockerfile - অ্যাপ্লিকেশন প্যাকেজ করতে
  • .env.yaml — রানটাইমে নিরাপদে পরিবেশের ভেরিয়েবল পাস করতে

ধাপ 1: .env.yaml প্রস্তুত করুন

আপনার রুট ডিরেক্টরিতে .env.yaml নামে একটি ফাইল তৈরি করুন যেমন বিষয়বস্তু সহ:

NEO4J_URI: "neo4j+s://<your-aura-db-uri>"
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "<your-password>"
PROJECT_ID: "<your-gcp-project-id>"
LOCATION: "<your-gcp-region>"  # e.g. us-central1

💡 এই বিন্যাসটিকে --set-env-vars চেয়ে পছন্দ করা হয় কারণ এটি আরও মাপযোগ্য, সংস্করণ-নিয়ন্ত্রণযোগ্য এবং পাঠযোগ্য।

ধাপ 2: এনভায়রনমেন্ট ভেরিয়েবল সেট আপ করুন

আপনার টার্মিনালে, নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল সেট করুন (প্লেসহোল্ডারের মানগুলি আপনার প্রকৃত প্রকল্প সেটিংসের সাথে প্রতিস্থাপন করুন):

# Set your Google Cloud project ID
export GCP_PROJECT='your-project-id'  # Change this

# Set your preferred deployment region
export GCP_REGION='us-central1'

ধাপ 2: আর্টিফ্যাক্ট রেজিস্ট্রি তৈরি করুন এবং কন্টেইনার তৈরি করুন

# Artifact Registry repo and service name
export AR_REPO='your-repo-name'       # Change this
export SERVICE_NAME='movies-chatbot'  # Or any name you prefer

# Create the Artifact Registry repository
gcloud artifacts repositories create "$AR_REPO" \
 
--location="$GCP_REGION" \
 
--repository-format=Docker

# Authenticate Docker with Artifact Registry
gcloud auth configure-docker "$GCP_REGION-docker.pkg.dev"

# Build and submit the container image
gcloud builds submit \
 
--tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"

এই কমান্ডটি Dockerfile ব্যবহার করে আপনার অ্যাপকে প্যাকেজ করে এবং Google ক্লাউড আর্টিফ্যাক্ট রেজিস্ট্রিতে কন্টেইনার ইমেজ আপলোড করে।

ধাপ 3: ক্লাউড রানে স্থাপন করুন

রানটাইম কনফিগারেশনের জন্য এখন .env.yaml ফাইল ব্যবহার করে আপনার অ্যাপ স্থাপন করুন:

gcloud run deploy "$SERVICE_NAME" \
 
--port=8080 \
 
--image="$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME" \
 
--allow-unauthenticated \
 
--region=$GCP_REGION \
 
--platform=managed \
 
--project=$GCP_PROJECT \
 
--env-vars-file=.env.yaml

চ্যাটবট অ্যাক্সেস করুন

একবার স্থাপন করা হলে, ক্লাউড রান একটি সর্বজনীন URL প্রদান করবে যেমন:

https://movies-reco-[UNIQUE_ID].${GCP_REGION}.run.app

আপনার স্থাপন করা Gradio চ্যাটবট ইন্টারফেস অ্যাক্সেস করতে আপনার ব্রাউজারে এই URLটি খুলুন — GraphRAG, Gemini, এবং Neo4j ব্যবহার করে চলচ্চিত্রের সুপারিশগুলি পরিচালনা করার জন্য প্রস্তুত!

নোট এবং টিপস

  • বিল্ড করার সময় নিশ্চিত করুন যে আপনার Dockerfile pip install -r requirements.txt চালায়।
  • আপনি যদি ক্লাউড শেল ব্যবহার না করেন , তাহলে আপনাকে Vertex AI এবং আর্টিফ্যাক্ট রেজিস্ট্রি অনুমতি সহ একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করে আপনার পরিবেশকে প্রমাণীকরণ করতে হবে।
  • আপনি Google ক্লাউড কনসোল > ক্লাউড রান থেকে স্থাপনার লগ এবং মেট্রিক্স নিরীক্ষণ করতে পারেন।

আপনি Google ক্লাউড কনসোল থেকে ক্লাউড রানেও যেতে পারেন এবং আপনি ক্লাউড রানে পরিষেবার তালিকা দেখতে পাবেন। movies-chatbot পরিষেবাটি সেখানে তালিকাভুক্ত পরিষেবাগুলির মধ্যে একটি হওয়া উচিত (যদি একমাত্র না হয়)৷

bccf390b7099e73b.png

আপনি পরিষেবার বিশদ বিবরণ দেখতে পারেন যেমন URL, কনফিগারেশন, লগ এবং আরও অনেক কিছু নির্দিষ্ট পরিষেবার নামের উপর ক্লিক করে (আমাদের ক্ষেত্রে movies-chatbot )।

3709b596167cdaa0.png

এটির সাথে, আপনার মুভি সুপারিশ চ্যাটবট এখন স্থাপন করা হয়েছে, পরিমাপযোগ্য এবং ভাগ করা যায় । 🎉

9. পরিষ্কার করুন

এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান।
  2. প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
  3. ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন।

10. অভিনন্দন

আপনি Neo4j , Vertex AI , এবং Gemini ব্যবহার করে একটি GraphRAG-চালিত, GenAI-বর্ধিত মুভি সুপারিশ চ্যাটবট সফলভাবে তৈরি ও স্থাপন করেছেন। Neo4j-এর গ্রাফ-নেটিভ মডেলিং ক্ষমতাগুলিকে Vertex AI এর মাধ্যমে শব্দার্থিক অনুসন্ধান এবং Gemini-এর মাধ্যমে প্রাকৃতিক ভাষা যুক্তির সাথে একত্রিত করে, আপনি একটি বুদ্ধিমান সিস্টেম তৈরি করেছেন যা মৌলিক অনুসন্ধানের বাইরে চলে যায় — এটি ব্যবহারকারীর অভিপ্রায় , সংযুক্ত ডেটার কারণগুলি বুঝতে পারে এবং কথোপকথনে প্রতিক্রিয়া জানায়

এই কোডল্যাবে, আপনি নিম্নলিখিতগুলি সম্পন্ন করেছেন:

✅ সিনেমা, অভিনেতা, জেনার এবং সম্পর্কের মডেল করার জন্য Neo4j-এ একটি বাস্তব-বিশ্বের মুভি নলেজ গ্রাফ তৈরি করুন

✅ Vertex AI এর টেক্সট-এম্বেডিং মডেলগুলি ব্যবহার করে মুভি প্লট ওভারভিউগুলির জন্য ভেক্টর এম্বেডিং তৈরি করা হয়েছে

বাস্তবায়িত GraphRAG , গভীরতর, বহু-হপ যুক্তির জন্য ভেক্টর অনুসন্ধান এবং LLM-উত্পাদিত সাইফার প্রশ্নগুলিকে একত্রিত করে

একীভূত মিথুন ব্যবহারকারীর প্রশ্ন ব্যাখ্যা করতে, সাইফার প্রশ্ন তৈরি করতে এবং প্রাকৃতিক ভাষায় গ্রাফ ফলাফলের সারসংক্ষেপ

✅ Gradio ব্যবহার করে একটি স্বজ্ঞাত চ্যাট ইন্টারফেস তৈরি করা হয়েছে

✅ পরিমাপযোগ্য, সার্ভারহীন হোস্টিংয়ের জন্য ঐচ্ছিকভাবে আপনার চ্যাটবটকে Google ক্লাউড রানে স্থাপন করা হয়েছে

পরবর্তী কি?

এই আর্কিটেকচারটি শুধুমাত্র সিনেমার সুপারিশের মধ্যে সীমাবদ্ধ নয় - এটি এতে প্রসারিত করা যেতে পারে:

  • বই এবং সঙ্গীত আবিষ্কার প্ল্যাটফর্ম
  • একাডেমিক গবেষণা সহকারী
  • পণ্য সুপারিশ ইঞ্জিন
  • স্বাস্থ্যসেবা, অর্থ, এবং আইনি জ্ঞান সহকারী

যেকোন জায়গায় আপনার জটিল সম্পর্ক + সমৃদ্ধ পাঠ্য ডেটা , জ্ঞান গ্রাফ + LLM + শব্দার্থিক এম্বেডিংয়ের এই সংমিশ্রণটি পরবর্তী প্রজন্মের বুদ্ধিমান অ্যাপ্লিকেশনগুলিকে শক্তি দিতে পারে।

মিথুনের মত মাল্টিমোডাল GenAI মডেলগুলি বিকশিত হওয়ার সাথে সাথে আপনি সত্যিকারের মানব-কেন্দ্রিক সিস্টেম তৈরি করতে আরও সমৃদ্ধ প্রসঙ্গ, চিত্র, বক্তৃতা এবং ব্যক্তিগতকরণ অন্তর্ভুক্ত করতে সক্ষম হবেন।

অন্বেষণ চালিয়ে যান, নির্মাণ চালিয়ে যান — এবং আপনার বুদ্ধিমান অ্যাপ্লিকেশনগুলিকে পরবর্তী স্তরে নিয়ে যেতে Neo4j , Vertex AI , এবং Google ক্লাউড থেকে সর্বশেষ আপডেট থাকতে ভুলবেন না! Neo4j GraphAcademy- এ আরও হ্যান্ডস-অন নলেজ গ্রাফ টিউটোরিয়াল অন্বেষণ করুন।

রেফারেন্স ডক্স