কোডল্যাব - Neo4j এবং Vertex AI ব্যবহার করে একটি মুভি সুপারিশ চ্যাটবট তৈরি করুন
এই কোডল্যাব সম্পর্কে
1. ওভারভিউ
এই কোডল্যাবে, আপনি Neo4j, Vertex AI এবং Gemini-এর সংমিশ্রণ ব্যবহার করে একটি বুদ্ধিমান মুভি সুপারিশ চ্যাটবট তৈরি করবেন। মুভি, অভিনেতা, পরিচালক, প্রযোজক, জেনার ইত্যাদির প্রতিনিধিত্ব করার জন্য চ্যাটবট একটি Neo4j নলেজ গ্রাফ ব্যবহার করে। অনুসন্ধানের অভিজ্ঞতা বাড়ানোর জন্য, আপনি Vertex AI এর text-embedding-004
মডেল ব্যবহার করে মুভি প্লট ওভারভিউ থেকে ভেক্টর এম্বেডিং তৈরি করবেন।
অবশেষে, আপনি একটি কথোপকথনমূলক ইন্টারফেসকে শক্তিশালী করতে মিথুনকে সংহত করবেন যেখানে ব্যবহারকারীরা "আমি ইন্টারস্টেলার পছন্দ করলে আমার কী দেখা উচিত?" এবং শব্দার্থগত মিল এবং গ্রাফ-ভিত্তিক প্রেক্ষাপটের উপর ভিত্তি করে ব্যক্তিগতকৃত চলচ্চিত্রের পরামর্শ পান।
কোডল্যাবের মাধ্যমে, আপনি নিম্নলিখিত হিসাবে একটি ধাপে ধাপে পদ্ধতি ব্যবহার করবেন:
- চলচ্চিত্র সম্পর্কিত ডেটা সহ একটি Neo4j জ্ঞান গ্রাফ তৈরি করুন৷
- Vertex AI এর টেক্সট এম্বেডিং ব্যবহার করে মুভি ওভারভিউ/প্লটে টেক্সট এম্বেডিং তৈরি করে মুভি ডেটা সমৃদ্ধ করুন।
- Neo4j থেকে শব্দার্থিক অনুসন্ধান এবং পুনরুদ্ধারের জন্য Gemini দ্বারা চালিত একটি Gradio চ্যাটবট ইন্টারফেস তৈরি করুন যা সবকিছুকে একত্রিত করে।
- ঐচ্ছিকভাবে, এটিকে Google ক্লাউড রানে একটি স্বতন্ত্র ওয়েব অ্যাপ্লিকেশন হিসাবে স্থাপন করুন যেমন নীচে দেখানো হয়েছে:
আপনি কি শিখবেন
- সাইফার এবং Neo4j ব্যবহার করে কীভাবে একটি চলচ্চিত্র জ্ঞান গ্রাফ তৈরি করবেন।
- পাঠ্যের জন্য শব্দার্থিক এম্বেডিং তৈরি করতে Vertex AI কীভাবে ব্যবহার করবেন।
- বুদ্ধিমান ভেক্টর-ভিত্তিক পুনরুদ্ধারের জন্য Neo4j এবং Gemini কিভাবে একীভূত করা যায়।
- কিভাবে Gradio এর সাথে একটি কথোপকথনমূলক চ্যাটবট UI তৈরি এবং চালানো যায়।
আপনি কি প্রয়োজন হবে
- ক্রোম ওয়েব ব্রাউজার
- একটি জিমেইল অ্যাকাউন্ট
- বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প৷
- একটি বিনামূল্যের Neo4j Aura DB অ্যাকাউন্ট
- টার্মিনাল কমান্ড এবং পাইথনের সাথে প্রাথমিক পরিচিতি
এই কোডল্যাব, সমস্ত স্তরের বিকাশকারীদের জন্য ডিজাইন করা হয়েছে (শিশুদের সহ), এটির নমুনা অ্যাপ্লিকেশনে পাইথন এবং Neo4j ব্যবহার করে। যদিও পাইথন এবং গ্রাফ ডাটাবেসের সাথে প্রাথমিক পরিচিতি সহায়ক হতে পারে, ধারণাগুলি বুঝতে বা অনুসরণ করার জন্য কোনও পূর্ব অভিজ্ঞতার প্রয়োজন নেই।
2. Neo4j AuraDB সেটআপ করুন
Neo4j হল একটি নেটিভ নেটিভ গ্রাফ ডাটাবেস যা নোড (সত্তা) এবং সম্পর্কের (সত্তার মধ্যে সংযোগ) নেটওয়ার্ক হিসাবে ডেটা সঞ্চয় করে, এটি এমন ক্ষেত্রে ব্যবহার করার জন্য আদর্শ করে যেখানে সংযোগগুলি বোঝার চাবিকাঠি — যেমন সুপারিশ, জালিয়াতি সনাক্তকরণ, জ্ঞান গ্রাফ এবং আরও অনেক কিছু। রিলেশনাল বা ডকুমেন্ট-ভিত্তিক ডাটাবেসগুলির বিপরীতে যা অনমনীয় সারণী বা শ্রেণিবদ্ধ কাঠামোর উপর নির্ভর করে, Neo4j-এর নমনীয় গ্রাফ মডেল জটিল, আন্তঃসংযুক্ত ডেটার স্বজ্ঞাত এবং দক্ষ উপস্থাপনের জন্য অনুমতি দেয়।
রিলেশনাল ডাটাবেসের মতো সারি এবং টেবিলে ডেটা সংগঠিত করার পরিবর্তে, Neo4j একটি গ্রাফ মডেল ব্যবহার করে, যেখানে তথ্যকে নোড (সত্তা) এবং সম্পর্ক (সেই সত্তাগুলির মধ্যে সংযোগ) হিসাবে উপস্থাপন করা হয়। এই মডেলটি অন্তর্নিহিতভাবে লিঙ্কযুক্ত ডেটার সাথে কাজ করার জন্য এটিকে ব্যতিক্রমীভাবে স্বজ্ঞাত করে তোলে — যেমন মানুষ, স্থান, পণ্য বা, আমাদের ক্ষেত্রে, চলচ্চিত্র, অভিনেতা এবং জেনার।
উদাহরণস্বরূপ, একটি চলচ্চিত্র ডেটাসেটে:
- একটি নোড একটি
Movie
,Actor
, বাDirector
প্রতিনিধিত্ব করতে পারে - একটি সম্পর্ক
ACTED_IN
বাDIRECTED
হতে পারে৷
এই কাঠামোটি আপনাকে সহজেই প্রশ্ন জিজ্ঞাসা করতে সক্ষম করে:
- কোন সিনেমায় অভিনয় করেছেন এই অভিনেতা?
- ক্রিস্টোফার নোলানের সাথে কে কাজ করেছেন?
- ভাগ করা অভিনেতা বা ঘরানার উপর ভিত্তি করে অনুরূপ সিনেমা কি?
Neo4j সাইফার নামক একটি শক্তিশালী ক্যোয়ারী ল্যাঙ্গুয়েজ নিয়ে আসে, যা বিশেষভাবে গ্রাফ অনুসন্ধানের জন্য ডিজাইন করা হয়েছে। সাইফার আপনাকে জটিল নিদর্শন এবং সংযোগগুলিকে সংক্ষিপ্ত এবং পাঠযোগ্য উপায়ে প্রকাশ করতে দেয়।
Neo4j আপনার প্রয়োজনের উপর নির্ভর করে একাধিক স্থাপনার বিকল্প অফার করে:
- স্ব-পরিচালিত : Neo4j ডেস্কটপ ব্যবহার করে আপনার নিজস্ব অবকাঠামোতে বা ডকার ইমেজ হিসাবে (অন-প্রেম বা আপনার নিজের ক্লাউডে) Neo4j চালান।
- ক্লাউড-পরিচালিত : মার্কেটপ্লেস অফার ব্যবহার করে জনপ্রিয় ক্লাউড প্রদানকারীদের উপর Neo4j স্থাপন করুন।
- সম্পূর্ণরূপে পরিচালিত : Neo4j AuraDB ব্যবহার করুন, Neo4j-এর সম্পূর্ণরূপে পরিচালিত ক্লাউড ডেটাবেস-এ-সার্ভিস, যা আপনার জন্য প্রভিশনিং, স্কেলিং, ব্যাকআপ এবং নিরাপত্তা পরিচালনা করে।
এই কোডল্যাবে, আমরা Neo4j AuraDB Free ব্যবহার করব, AuraDB-এর শূন্য-ব্যয় স্তর। এটি প্রোটোটাইপিং, শেখার এবং ছোট অ্যাপ্লিকেশন তৈরির জন্য যথেষ্ট স্টোরেজ এবং বৈশিষ্ট্য সহ একটি সম্পূর্ণরূপে পরিচালিত গ্রাফ ডাটাবেস উদাহরণ প্রদান করে - একটি GenAI-চালিত চলচ্চিত্র সুপারিশ চ্যাটবট তৈরির আমাদের লক্ষ্যের জন্য উপযুক্ত।
আপনি একটি বিনামূল্যের AuraDB উদাহরণ তৈরি করবেন, সংযোগের শংসাপত্রগুলি ব্যবহার করে এটিকে আপনার অ্যাপ্লিকেশনের সাথে সংযুক্ত করুন এবং এই ল্যাব জুড়ে আপনার চলচ্চিত্র জ্ঞানের গ্রাফ সংরক্ষণ এবং অনুসন্ধান করতে এটি ব্যবহার করুন৷
কেন গ্রাফ?
ঐতিহ্যগত রিলেশনাল ডাটাবেসে, "কোন সিনেমা শেয়ার করা কাস্ট বা জেনারের উপর ভিত্তি করে ইনসেপশনের মতো?" একাধিক টেবিল জুড়ে জটিল JOIN অপারেশন জড়িত হবে। সম্পর্কের গভীরতা বাড়ার সাথে সাথে কর্মক্ষমতা এবং পাঠযোগ্যতা হ্রাস পায়।
Neo4j-এর মতো গ্রাফ ডেটাবেসগুলি, যদিও, দক্ষতার সাথে সম্পর্কগুলিকে অতিক্রম করার জন্য তৈরি করা হয়েছে, সেগুলিকে সুপারিশ সিস্টেম, শব্দার্থিক অনুসন্ধান এবং বুদ্ধিমান সহকারীর জন্য একটি স্বাভাবিক উপযুক্ত করে তোলে৷ তারা বাস্তব-বিশ্বের প্রেক্ষাপট ক্যাপচার করতে সাহায্য করে — যেমন সহযোগিতা নেটওয়ার্ক, স্টোরিলাইন বা দর্শকের পছন্দ — যা ঐতিহ্যগত ডেটা মডেল ব্যবহার করে উপস্থাপন করা কঠিন হতে পারে।
জেমিনি এবং Vertex AI থেকে ভেক্টর এম্বেডিংয়ের মতো LLM-এর সাথে এই সংযুক্ত ডেটা একত্রিত করে, আমরা চ্যাটবট অভিজ্ঞতাকে সুপারচার্জ করতে পারি — এটিকে যুক্তি, পুনরুদ্ধার এবং আরও ব্যক্তিগতকৃত, প্রাসঙ্গিক উপায়ে প্রতিক্রিয়া জানাতে দেয়।
Neo4j AuraDB বিনামূল্যের সৃষ্টি
- https://console.neo4j.io দেখুন
- আপনার Google অ্যাকাউন্ট বা ইমেল দিয়ে লগ ইন করুন।
- "ফ্রি ইনস্ট্যান্স তৈরি করুন" এ ক্লিক করুন।
- দৃষ্টান্তের ব্যবস্থা করার সময়, একটি পপআপ উইন্ডো প্রদর্শিত হবে যা আপনার ডাটাবেসের জন্য সংযোগের শংসাপত্রগুলি দেখাবে।
পপআপ থেকে নিম্নলিখিত বিশদগুলি ডাউনলোড এবং নিরাপদে সংরক্ষণ করা নিশ্চিত করুন — এগুলি আপনার অ্যাপ্লিকেশনকে 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 ফাইল কনফিগার করতে এই মানগুলি ব্যবহার করবেন।
Neo4j AuraDB ফ্রি এই কোডল্যাবের মতো উন্নয়ন, পরীক্ষা-নিরীক্ষা এবং ছোট আকারের অ্যাপ্লিকেশনের জন্য উপযুক্ত। এটি উদার ব্যবহার সীমা অফার করে, 200,000 নোড এবং 400,000 সম্পর্ক পর্যন্ত সমর্থন করে৷ যদিও এটি একটি জ্ঞান গ্রাফ তৈরি এবং অনুসন্ধান করার জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় বৈশিষ্ট্য সরবরাহ করে, এটি কাস্টম প্লাগইন বা বর্ধিত সঞ্চয়স্থানের মতো উন্নত কনফিগারেশন সমর্থন করে না। প্রোডাকশন ওয়ার্কলোড বা বৃহত্তর ডেটাসেটের জন্য, আপনি একটি উচ্চ-স্তরের AuraDB প্ল্যানে আপগ্রেড করতে পারেন যা আরও বেশি ক্ষমতা, কর্মক্ষমতা এবং এন্টারপ্রাইজ-গ্রেড বৈশিষ্ট্যগুলি অফার করে।
এটি আপনার Neo4j AuraDB ব্যাকএন্ড সেট আপ করার জন্য বিভাগটি সম্পূর্ণ করে। পরবর্তী ধাপে, আমরা একটি Google ক্লাউড প্রজেক্ট তৈরি করব, সংগ্রহস্থল ক্লোন করব এবং আমাদের কোডল্যাব শুরু করার আগে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট প্রস্তুত করতে প্রয়োজনীয় পরিবেশ ভেরিয়েবল কনফিগার করব।
3. আপনি শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
- নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
- আপনি ক্লাউড শেল ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq এর সাথে প্রিলোড করা হয়। গুগল ক্লাউড কনসোলের শীর্ষে সক্রিয় ক্লাউড শেল ক্লিক করুন।
- একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি পরীক্ষা করে দেখুন যে আপনি ইতিমধ্যেই প্রমাণীকৃত হয়েছেন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে:
gcloud auth list
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
- নীচে দেখানো কমান্ডের মাধ্যমে প্রয়োজনীয় API গুলি সক্ষম করুন৷ এটি কয়েক মিনিট সময় নিতে পারে, তাই ধৈর্য ধরুন।
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
কমান্ডের সফল সঞ্চালন হলে, আপনি নীচের দেখানো একটি অনুরূপ একটি বার্তা দেখতে হবে:
Operation "operations/..." finished successfully.
gcloud কমান্ডের বিকল্প হল কনসোলের মাধ্যমে প্রতিটি পণ্য অনুসন্ধান করে বা এই লিঙ্কটি ব্যবহার করে।
যদি কোনো API মিস হয়, আপনি সর্বদা বাস্তবায়নের সময় এটি সক্রিয় করতে পারেন।
জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।
ক্লোন সংগ্রহস্থল এবং সেটআপ পরিবেশ সেটিংস
পরবর্তী ধাপ হল নমুনা সংগ্রহস্থল ক্লোন করা যা আমরা কোডল্যাবের বাকি অংশে উল্লেখ করব। ধরে নিই যে আপনি ক্লাউড শেলে আছেন, আপনার হোম ডিরেক্টরি থেকে নিম্নলিখিত কমান্ড দিন:
git clone https://github.com/sidagarwal04/neo4j-vertexai-codelab.git
সম্পাদক চালু করতে, ক্লাউড শেল উইন্ডোর টুলবারে সম্পাদক খুলুন ক্লিক করুন। উপরের বাম কোণে মেনু বারে ক্লিক করুন এবং নীচে দেখানো হিসাবে ফাইল → ফোল্ডার খুলুন নির্বাচন করুন:
neo4j-vertexai-codelab
ফোল্ডারটি নির্বাচন করুন এবং আপনি নীচে দেখানো ফাইলগুলির সাথে ফোল্ডারটি খোলা দেখতে পাবেন:
এর পরে, আমাদের পরিবেশের ভেরিয়েবলগুলি সেট আপ করতে হবে যা কোডল্যাব জুড়ে ব্যবহার করা হবে। 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টিরও বেশি চলচ্চিত্রের মেটাডেটা অন্তর্ভুক্ত রয়েছে।
একটি নির্ভরযোগ্য এবং কার্যকর মুভি সুপারিশ চ্যাটবট তৈরি করতে, পরিষ্কার, সামঞ্জস্যপূর্ণ এবং কাঠামোগত ডেটা দিয়ে শুরু করা অপরিহার্য। যদিও কাগলের দ্য মুভিজ ডেটাসেট হল 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_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. ভেক্টর সাদৃশ্য অনুসন্ধান করতে এম্বেডিং তৈরি এবং লোড করুন
আমাদের চ্যাটবটে শব্দার্থিক অনুসন্ধান সক্ষম করতে, আমাদের চলচ্চিত্র ওভারভিউগুলির জন্য ভেক্টর এম্বেডিং তৈরি করতে হবে। এই এমবেডিংগুলি পাঠ্য ডেটাকে সংখ্যাসূচক ভেক্টরে রূপান্তরিত করে যা সাদৃশ্যের জন্য তুলনা করা যেতে পারে — এটি চ্যাটবটের পক্ষে প্রাসঙ্গিক চলচ্চিত্রগুলি পুনরুদ্ধার করা সম্ভব করে তোলে এমনকি যদি প্রশ্নটি শিরোনাম বা বিবরণের সাথে ঠিক মেলে না।
⚠️ কর্মক্ষমতা সম্পর্কে নোট
রিয়েল টাইমে হাজার হাজার চলচ্চিত্রের বর্ণনার জন্য এম্বেডিং তৈরি করা সময়সাপেক্ষ এবং সম্পদ-নিবিড় উভয়ই। এই কোডল্যাবটিকে দক্ষ এবং অ্যাক্সেসযোগ্য করতে, আমরা Vertex AI ব্যবহার করে সমস্ত ~12,000 মুভি ওভারভিউগুলির জন্য প্রাক-কম্পিউটেড এম্বেডিং করেছি
text-embedding-004
মডেল এবং সেগুলিকে একটি সর্বজনীনভাবে উপলব্ধ CSV ফাইলে সংরক্ষণ করে৷
বিকল্প 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. মুভি সুপারিশ চ্যাটবট
আপনার জ্ঞানের গ্রাফ এবং এম্বেডিংয়ের জায়গায়, এটি একটি কথোপকথনমূলক ইন্টারফেসে সবকিছু একত্রিত করার সময় - আপনার মুভি সুপারিশ চ্যাটবট ৷
চ্যাটবটটি পাইথন এবং গ্র্যাডিও ব্যবহার করে প্রয়োগ করা হয়েছে, ওয়েব-ভিত্তিক UI তৈরির জন্য একটি হালকা কাঠামো। মূল যুক্তি chatbot.py
স্ক্রিপ্টে থাকে, যা আপনার Neo4j AuraDB ইন্সট্যান্সের সাথে সংযোগ করে এবং প্রাকৃতিক ভাষার প্রম্পটের উপর ভিত্তি করে মুভি এমবেডিংগুলিতে ভেক্টর সাদৃশ্য অনুসন্ধান করে।
চ্যাটবট ক্যোয়ারী পরিমার্জন এবং উত্তর বিন্যাস করে ব্যবহারকারীর অভিজ্ঞতা বাড়ানোর জন্য Gemini ব্যবহার করে। গ্রাফ প্রসঙ্গ এবং ভেক্টর মিলের সমন্বয় ব্যবহার করে Neo4j থেকে অনুসন্ধানের ফলাফল ফেরত দেওয়া হয়।
স্থানীয়ভাবে চ্যাটবট চালান
চ্যাটবট চালু করতে, আপনার ভার্চুয়াল পরিবেশ সক্রিয় করুন (যদি ইতিমধ্যে করা না থাকে), এবং চালান:
python chatbot.py
আপনি নিম্নলিখিত অনুরূপ একটি আউটপুট দেখতে হবে:
Old index dropped
Creating new vector index
Vector index created successfully
* Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
💡 আপনি যদি অনুমতি_ফ্ল্যাগিং সম্পর্কিত অবচয় সংক্রান্ত সতর্কতাগুলি দেখতে পান, তাহলে আপনি আপাতত সেগুলি উপেক্ষা করতে পারেন — অ্যাপ্লিকেশনটি এখনও চলবে৷
চ্যাটবটের সাথে যোগাযোগ করুন
একবার চালু হয়ে গেলে, আপনার টার্মিনালে প্রদর্শিত URLটি খুলুন, সাধারণত: 👉 http://127.0.0.1:7860
আপনাকে একটি সাধারণ চ্যাট ইন্টারফেসের সাথে অভ্যর্থনা জানানো হবে যেখানে আপনি প্রাকৃতিক ভাষার প্রশ্ন টাইপ করতে পারেন যেমন:
- "আমাকে ইনসেপশনের মত সাই-ফাই থ্রিলার সাজেস্ট করুন"
- "টম হ্যাঙ্কসের সাথে একটি রোমান্টিক সিনেমা সাজেস্ট করুন"
- "আমি একটা ফ্যামিলি ড্রামা দেখতে চাই"
চ্যাটবট ক্যোয়ারী প্রক্রিয়া করে, মুভি ওভারভিউতে একটি শব্দার্থিক ভেক্টর অনুসন্ধান করে এবং সবচেয়ে প্রাসঙ্গিক মুভিগুলির একটি তালিকা প্রদর্শন করে — তাদের শিরোনাম, ওভারভিউ এবং মুক্তির বছরগুলি সহ।
প্রতিটি সুপারিশ একটি কার্ড-স্টাইল লেআউটে সুন্দরভাবে ফর্ম্যাট করা ফলাফলের সাথে রেন্ডার করা হয়।
আপনার চ্যাটবট স্থানীয়ভাবে চলার সাথে, আপনার কাছে এখন একটি সম্পূর্ণ কার্যকরী GenAI-চালিত মুভি সুপারিশ সিস্টেম রয়েছে যা সর্বোত্তম জ্ঞানের গ্রাফ , LLM (মিথুন) এবং Vertex AI এম্বেডিং ব্যবহার করে শব্দার্থিক অনুসন্ধানকে একত্রিত করে।
8. (ঐচ্ছিক) Google Cloud Run-এ স্থাপন করা হচ্ছে
আপনি যদি আপনার মুভি সুপারিশ চ্যাটবটকে ওয়েবে সর্বজনীনভাবে অ্যাক্সেসযোগ্য করে তুলতে চান, আপনি এটিকে Google ক্লাউড রানে স্থাপন করতে পারেন — একটি সম্পূর্ণরূপে পরিচালিত, সার্ভারহীন প্ল্যাটফর্ম যা স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশনকে স্কেল করে।
স্থাপন করার আগে, নিম্নলিখিত ফাইলগুলি আপনার প্রকল্পে উপস্থিত রয়েছে তা নিশ্চিত করুন (সেগুলি ইতিমধ্যেই এই রেপোতে অন্তর্ভুক্ত রয়েছে):
-
requirements.txt
– Neo4j এবং Vertex AI সহ অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় সমস্ত পাইথন নির্ভরতা তালিকাভুক্ত করে। -
Dockerfile
- বেস ইমেজ, নির্ভরতা ইনস্টলেশন এবং অ্যাপটি কীভাবে চালু করা হয়েছে সহ কন্টেইনার পরিবেশকে সংজ্ঞায়িত করে।
ধাপ 1: এনভায়রনমেন্ট ভেরিয়েবল সেট আপ করুন
আপনার টার্মিনালে, নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল সেট করুন (প্লেসহোল্ডারের মানগুলি আপনার প্রকৃত প্রকল্প সেটিংসের সাথে প্রতিস্থাপন করুন):
# 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: ক্লাউড রানে স্থাপন করুন
স্থাপন করার আগে, নিশ্চিত করুন যে সমস্ত প্রয়োজনীয় পরিবেশ ভেরিয়েবল (যেমন, Neo4j শংসাপত্র, প্রকল্প সেটিংস) আপনার .env
ফাইলে তালিকাভুক্ত রয়েছে।
আপনার .env
ফাইলটিকে গতিশীলভাবে --set-env-vars
পতাকার সাথে সামঞ্জস্যপূর্ণ ফর্ম্যাটে রূপান্তর করতে নিম্নলিখিত স্নিপেটটি ব্যবহার করুন:
ENV_VARS=$(grep -v '^#' .env | sed 's/ *= */=/g' | xargs -I{} echo -n "{},")
ENV_VARS=${ENV_VARS%,}
এখন আপনার অ্যাপ স্থাপন করুন:
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 \
--set-env-vars="GCP_PROJECT=$GCP_PROJECT,GCP_REGION=$GCP_REGION,$ENV_VARS"
চ্যাটবট অ্যাক্সেস করুন
একবার স্থাপন করা হলে, ক্লাউড রান ফর্ম্যাটে একটি পাবলিক সার্ভিস URL ফিরিয়ে দেবে:
https://movies-chatbot-[UNIQUE_ID].${GCP_REGION}.run.app
আপনার চ্যাটবট অ্যাক্সেস করতে আপনার ব্রাউজারে URL খুলুন। আপনি ক্লাউডে চলমান একই Gradio UI দেখতে পাবেন, প্রশ্নগুলি গ্রহণ করতে এবং চলচ্চিত্রের সুপারিশগুলির সাথে প্রতিক্রিয়া জানাতে সক্ষম৷
নোট এবং টিপস
- বিল্ড করার সময় নিশ্চিত করুন যে আপনার
Dockerfile
pip install -r requirements.txt
চালায়। - আপনি যদি ক্লাউড শেল ব্যবহার না করেন , তাহলে আপনাকে Vertex AI এবং আর্টিফ্যাক্ট রেজিস্ট্রি অনুমতি সহ একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করে আপনার পরিবেশকে প্রমাণীকরণ করতে হবে।
- আপনি Google ক্লাউড কনসোল > ক্লাউড রান থেকে স্থাপনার লগ এবং মেট্রিক্স নিরীক্ষণ করতে পারেন।
আপনি Google ক্লাউড কনসোল থেকে ক্লাউড রানেও যেতে পারেন এবং আপনি ক্লাউড রানে পরিষেবার তালিকা দেখতে পাবেন। movies-chatbot
পরিষেবাটি সেখানে তালিকাভুক্ত পরিষেবাগুলির মধ্যে একটি হওয়া উচিত (যদি একমাত্র না হয়)৷
আপনি পরিষেবার বিশদ বিবরণ দেখতে পারেন যেমন URL, কনফিগারেশন, লগ এবং আরও অনেক কিছু নির্দিষ্ট পরিষেবার নামের উপর ক্লিক করে (আমাদের ক্ষেত্রে movies-chatbot
)।
এটির সাথে, আপনার মুভি সুপারিশ চ্যাটবট এখন স্থাপন করা হয়েছে, পরিমাপযোগ্য এবং ভাগ করা যায় । 🎉
9. পরিষ্কার করুন
এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান।
- প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
- ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন।
10. অভিনন্দন
আপনি Neo4j , Vertex AI , এবং Gemini ব্যবহার করে সফলভাবে একটি গ্রাফ-চালিত, GenAI-বর্ধিত মুভি সুপারিশ চ্যাটবট তৈরি ও স্থাপন করেছেন। Vertex AI এম্বেডিংয়ের শব্দার্থিক শক্তি এবং Gemini-এর কথোপকথনমূলক বুদ্ধিমত্তার সাথে Neo4j-এর অভিব্যক্তিপূর্ণ মডেলিং ক্ষমতাগুলিকে একত্রিত করে, আপনি একটি স্বজ্ঞাত এবং বুদ্ধিমান সিস্টেম তৈরি করেছেন যা প্রাকৃতিক ভাষার প্রশ্নগুলি বোঝে এবং প্রাসঙ্গিকভাবে প্রাসঙ্গিক চলচ্চিত্রের সুপারিশগুলি প্রদান করে৷
এই কোডল্যাব জুড়ে, আপনি:
- একটি বাস্তব-বিশ্ব চলচ্চিত্র ডেটাসেট থেকে একটি সমৃদ্ধ, আন্তঃসংযুক্ত জ্ঞান গ্রাফ তৈরি করা হয়েছে৷
- জেনারেটেড এবং ইন্টিগ্রেটেড ভেক্টর এম্বেডিং শব্দার্থিক মিল অনুসন্ধান সক্ষম করতে
- প্রাকৃতিক ভাষা মিথস্ক্রিয়াকে শক্তিশালী করতে মিথুনকে ব্যবহার করা হয়েছে
- Gradio ব্যবহার করে একটি সহজ কিন্তু শক্তিশালী চ্যাটবট ইন্টারফেস তৈরি করুন
- স্কেলেবিলিটি এবং অ্যাক্সেসের জন্য Google ক্লাউড রান ব্যবহার করে ঐচ্ছিকভাবে অ্যাপটি স্থাপন করা হয়েছে
এই পদ্ধতিটি শুধুমাত্র সিনেমার মধ্যে সীমাবদ্ধ নয় — একই স্থাপত্যটি বই, সঙ্গীত, পণ্য, একাডেমিক কাগজপত্র বা যেকোন ডোমেনে প্রসারিত হতে পারে যেখানে সম্পর্ক এবং শব্দার্থবিদ্যা গুরুত্বপূর্ণ । Gemini-এর মতো মাল্টিমোডাল GenAI মডেলগুলি বিকশিত হতে থাকে, আপনি গভীর বোঝাপড়া, ব্যক্তিগতকৃত মিথস্ক্রিয়া এবং মাল্টি-ফরম্যাট আউটপুট দিয়ে আপনার অ্যাপ্লিকেশনগুলিকে সমৃদ্ধ করতে সক্ষম হবেন।
অন্বেষণ চালিয়ে যান, নির্মাণ চালিয়ে যান — এবং আপনার বুদ্ধিমান অ্যাপ্লিকেশনগুলিকে পরবর্তী স্তরে নিয়ে যেতে Neo4j , Vertex AI , এবং Google ক্লাউড থেকে সর্বশেষ আপডেট থাকতে ভুলবেন না!