বুকশেল্ফ অ্যানালিটিক্স: BigQuery এবং জেনারেটিভ এআই-এর সাথে SQL অ্যাপ্লিকেশন তৈরি করতে Gemini ব্যবহার করুন

1. ভূমিকা

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

প্রকল্প ওভারভিউ

আমাদের ব্যবহার কেস কেন্দ্রগুলি এই 4টি মূল উপাদানগুলির চারপাশে:

  • বই ডেটাবেস: ইন্টারনেট আর্কাইভ বইগুলির বিশাল BigQuery পাবলিক ডেটাসেট আমাদের ব্যাপক বই ক্যাটালগ হিসাবে কাজ করবে।
  • AI সংক্ষিপ্তকরণ ইঞ্জিন: Google ক্লাউড ফাংশন, Gemini 1.0 Pro ভাষা মডেলের সাথে সজ্জিত, ব্যবহারকারীর অনুরোধের জন্য তৈরি অন্তর্দৃষ্টিপূর্ণ সারাংশ তৈরি করবে।
  • BigQuery ইন্টিগ্রেশন: BigQuery-এর মধ্যে একটি দূরবর্তী ফাংশন যা আমাদের ক্লাউড ফাংশনকে কল করে চাহিদা অনুযায়ী বইয়ের সারাংশ এবং থিম সরবরাহ করতে।
  • ইউজার ইন্টারফেস: ক্লাউড রানে হোস্ট করা একটি ওয়েব অ্যাপ যা ব্যবহারকারীদের ফলাফল দেখার জন্য একটি ওয়েব অ্যাপ্লিকেশন অফার করবে।

আমরা বাস্তবায়নটিকে 3টি কোডল্যাবে ভাগ করব:

কোডল্যাব 1: জেমিনি অ্যাপ্লিকেশনের জন্য একটি জাভা ক্লাউড ফাংশন তৈরি করতে জেমিনি ব্যবহার করুন।

কোডল্যাব 2: BigQuery এবং জেনারেটিভ এআই সহ SQL অ্যাপ তৈরি করতে Gemini ব্যবহার করুন।

কোডল্যাব 3: একটি জাভা স্প্রিং বুট ওয়েব অ্যাপ্লিকেশন তৈরি করতে Gemini ব্যবহার করুন যা BigQuery-এর সাথে ইন্টারঅ্যাক্ট করে।

2. BigQuery এবং জেনারেটিভ AI সহ SQL অ্যাপ তৈরি করতে Gemini ব্যবহার করুন

আপনি কি নির্মাণ করবেন

আপনি একটি তৈরি করবেন

  • BigQuery-এর রিমোট মডেল যা ";" এর তালিকা থেকে বইয়ের জেনার (বা থিম) শনাক্ত করতে Vertex AI text-bison-32k এন্ডপয়েন্ট ব্যবহার করে টেবিলে আলাদা করা কীওয়ার্ড।
  • BigQuery-এ রিমোট ফাংশন যা দূরবর্তীভাবে মোতায়েন জেনারেটিভ AI ক্লাউড ফাংশনকে আহ্বান করবে।
  • SQL কোয়েরি সহ একটি বইয়ের থিম এবং পাঠ্যকে সংক্ষিপ্ত করতে রিমোট মডেল এবং ফাংশন ব্যবহার করুন এবং বুকশেল্ফ ডেটাসেটে একটি নতুন টেবিলে ফলাফলগুলি লিখুন৷
  • আপনি মিথুন রাশির সাহায্যে এই পদক্ষেপগুলি বাস্তবায়ন করবেন

3. প্রয়োজনীয়তা

আপনার প্রকল্প তৈরি করুন

আপনি নীচের ধাপগুলি এড়িয়ে যেতে পারেন যদি আপনি ইতিমধ্যেই একটি বিলিং অ্যাকাউন্ট সক্রিয় করে থাকেন এবং উপরের শর্তসাপেক্ষ ধাপে উল্লিখিত লিঙ্কটি ব্যবহার করে একটি প্রকল্প তৈরি করেন।

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

ক্লাউড শেল সক্রিয় করুন

  1. আপনি ক্লাউড শেল ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq এর সাথে প্রি-লোড করা হয়:

ক্লাউড কনসোল থেকে, উপরের ডানদিকে কোণায় ক্লাউড শেল সক্রিয় করুন ক্লিক করুন: 6757b2fb50ddcc2d.png

  1. একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে। আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:

gCloud প্রমাণীকরণ তালিকা

  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।

gcloud কনফিগার তালিকা প্রকল্প

  1. যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

gcloud config সেট প্রকল্প <YOUR_PROJECT_ID>

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

4. Google ক্লাউড এবং প্রয়োজনীয় API-এর জন্য Gemini সক্ষম করা

মিথুন সক্রিয় করুন

  1. API সক্ষম করতে Google ক্লাউড মার্কেটপ্লেসের জন্য Gemini-এ নেভিগেট করুন। এছাড়াও আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:

gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID

  1. মিথুন পৃষ্ঠায় যান এবং "চ্যাটিং শুরু করুন" এ ক্লিক করুন।

অন্যান্য প্রয়োজনীয় API সক্রিয় করুন

আমরা কিভাবে তা করতে হবে? আসুন মিথুনকে জিজ্ঞাসা করি যে, আমরা করব? তবে তার আগে মনে রাখবেন:

দ্রষ্টব্য: এলএলএমগুলি অ-নির্ধারক। সুতরাং আপনি যখন এই প্রম্পটগুলি চেষ্টা করছেন, আপনি যে প্রতিক্রিয়াটি পাবেন তা আমার স্ক্রিনশটের থেকে আলাদা দেখতে পারে।

গুগল ক্লাউড কনসোলে সার্চ বারের পাশে উপরের ডানদিকে কোণায় "ওপেন জেমিনি" আইকনে ক্লিক করে জেমিনি চ্যাট কনসোলে যান।

"এখানে একটি প্রম্পট লিখুন" বিভাগে এই প্রশ্নটি টাইপ করুন:

আমি কিভাবে gcloud কমান্ড ব্যবহার করে BigQuery এবং Vertex AI apis সক্ষম করব?

নিম্নলিখিত ছবিতে দেখা হিসাবে আপনি প্রতিক্রিয়া পাবেন:

19c3fd78530794d9.png

এটি অনুলিপি করুন (আপনি কমান্ড স্নিপেটের শীর্ষে অনুলিপি আইকনটি ব্যবহার করতে পারেন) এবং সংশ্লিষ্ট পরিষেবাগুলি সক্ষম করতে ক্লাউড শেল টার্মিনালে এটি চালান:

  • bigquery.googleapis.com
  • aiplatform.googleapis.com

5. বই ডেটার জন্য BigQuery পাবলিক ডেটাসেট অন্বেষণ করুন৷

অনেক ইন্টারনেট আর্কাইভ বইয়ের তথ্য সম্বলিত BigQuery পাবলিক ডেটাসেটের সাথে নিজেকে পরিচিত করে শুরু করুন।

আপনি BigQuery এক্সপ্লোরার প্যানে এই সর্বজনীন ডেটাসেটটি খুঁজে পেতে পারেন। আপনি BigQuery কনসোলে অবতরণ করলে বাম দিকে এটি খুঁজে পেতে পারেন।

39e2ac03cc99cbac.png

সার্চ বারে "gdelt-bq" বা "internetarchivebooks" টাইপ করুন এবং সার্চ সব প্রকল্পে ক্লিক করুন। ফলাফলে প্রসারিত করুন এবং নীচের ছবিতে দেখানো ইন্টারনেট আর্কাইভ বইগুলিকে স্টার করুন:

68dba68a79cddfc9.png .

ডেটাসেট প্রসারিত করুন, gdelt-bq.internetarchivebooks-এ ক্লিক করুন এবং তারপর 1920 টেবিলে ডেটার পূর্বরূপ দেখুন। এই টেবিলে 1920 সালের আর্কাইভ করা বইগুলি অন্তর্ভুক্ত রয়েছে।

আমরা পরবর্তী বিভাগে যে স্কিমা ব্যবহার করব তা দেখতে, নিম্নলিখিত ক্যোয়ারীটি চালান:

select * from  `gdelt-bq.internetarchivebooks.1920` limit 5;

আমরা আমাদের কোডল্যাবের জন্য নিম্নলিখিত তিনটি ক্ষেত্র ব্যবহার করব:

  • BookMeta_Title (শিরোনাম)
  • থিম (থিমগুলি ';' দ্বারা পৃথক করা হয়েছে)
  • BookMeta_FullText (বইটির সম্পূর্ণ পাঠ্য)

6. বুকশেল্ফ নামে একটি নতুন BigQuery ডেটাসেট তৈরি করুন৷

আমরা প্রকল্পের অধীনে একটি ডেটাসেট তৈরি করতে চাই যাতে আমরা এই ল্যাবে তৈরি করতে যাচ্ছি এমন সমস্ত ডাটাবেস এবং অ্যানালিটিক্স অবজেক্ট সংরক্ষণ করতে পারি। আসুন মিথুনকে জিজ্ঞাসা করুন কিভাবে একটি BigQuery ডেটাসেট তৈরি করতে হয়। APIs সক্ষম করার পদক্ষেপ থেকে আপনার ইতিমধ্যেই আপনার ব্রাউজারে অন্য একটি ট্যাবে আপনার জেমিনি চ্যাট খোলা থাকা উচিত। যদি না হয়, আপনি এখন তাই করতে পারেন. https://console.cloud.google.com- এ নেভিগেট করে Google ক্লাউড কনসোলে যান এবং উপরের সার্চ বারের ঠিক পাশে আপনার জেমিনি আইকনটি দেখতে হবে। এটিতে ক্লিক করুন এবং চ্যাটটি খোলে।

26e1491322855614.png

নীচে দেখানো হিসাবে প্রম্পট লিখুন.

এখানে আমার প্রম্পট:

How to create a BigQuery dataset?

এখানে প্রতিক্রিয়া:

f7a989cc9a01009.png

আপনার সক্রিয় প্রকল্পে "বুকশেলফ" নামে একটি ডেটাসেট তৈরি করতে প্রতিক্রিয়াতে বর্ণিত ধাপগুলি অনুসরণ করা যাক৷

একটি BigQuery ডেটাসেট তৈরি করতে, এই ধাপগুলি অনুসরণ করুন:

  1. Google ক্লাউড কনসোলে BigQuery পৃষ্ঠায় যান।
  2. এক্সপ্লোরার প্যানেলে, আপনার প্রকল্প আইডিতে ক্লিক করুন।
  3. ডেটাসেট তৈরি করুন ক্লিক করুন (যখন আপনি আপনার প্রকল্প আইডির পাশে 3টি বিন্দুতে ক্লিক করবেন তখন এটি তালিকাভুক্ত বিকল্পগুলিতে থাকা উচিত)
  4. "বুকশেলফ" হিসাবে ডেটাসেটের নাম লিখুন।
  5. "মার্কিন (মাল্টি-রিজিয়ন)" হিসাবে অবস্থান সেট করুন।
  6. প্রতিক্রিয়া থেকে পদক্ষেপ 3, 4, 5, এবং 6 এর জন্য, ডিফল্ট বিকল্পগুলি ছেড়ে দিন।
  7. ডেটাসেট তৈরি করুন ক্লিক করুন।

আপনার ডেটাসেট তৈরি হবে এবং এক্সপ্লোরার প্যানেলে প্রদর্শিত হবে। "বুকশেলফ" ডেটাসেটটি নিম্নরূপ দেখা যেতে পারে:

7. Vertex AI LLM (টেক্সট-বাইসন-32k) চালু করার জন্য একটি দূরবর্তী মডেল তৈরি করুন

এর পরে, আমাদের BigQuery-এ একটি মডেল তৈরি করতে হবে যা "টেক্সট-বাইসন-32k" ভার্টেক্স এআই মডেলকে আহ্বান করে। মডেলটি ডেটাসেটের প্রতিটি বইয়ের কীওয়ার্ডের তালিকা থেকে একটি সাধারণ থিম, বইয়ের প্রসঙ্গ সনাক্ত করতে সাহায্য করবে।

আসুন মিথুনকে এই প্রশ্নটি জিজ্ঞাসা করুন। এটি করতে, যে ট্যাবে আপনার জেমিনি চ্যাট কনসোল খোলা আছে সেখানে নেভিগেট করুন এবং নীচের প্রম্পটটি টাইপ করুন:

BigQuery-এ LLM এন্ডপয়েন্ট (টেক্সট-বাইসন-32k) কল করতে আপনি কীভাবে BigQuery এবং Vertex AI-কে সংযুক্ত করবেন?

প্রতিক্রিয়া নিম্নরূপ:

41904e30ce92b436.png

প্রতিক্রিয়ার মধ্যে সঠিক তথ্য অন্তর্ভুক্ত রয়েছে, যেমন ধাপগুলির মধ্যে রয়েছে মডেল স্টেটমেন্ট তৈরি করা, BigQuery সংযোগ ব্যবহার করা এবং শেষ পয়েন্ট নির্ধারণ করা। ক্যোয়ারী বিবৃতিটি আমার জন্য সঠিক, কিন্তু এর অর্থ এই নয় যে আপনি ঠিক একই আউটপুট পাবেন কারণ এটি একটি বৃহৎ ভাষার মডেল যা আপনি বিভিন্ন বিন্যাস, ভলিউম এবং গভীরতায় প্রতিক্রিয়া পেতে পারেন। আপনি যদি আমার প্রাপ্ত সমস্ত বিবরণ দেখতে না পান, তাহলে ফলো-আপ প্রশ্নগুলির সাথে চ্যাটটি নির্দ্বিধায় অনুসন্ধান করুন৷ যেমন: কীভাবে সংযোগ সংস্থান তৈরি করতে হয় বা কেন সংযোগ বৈশিষ্ট্যটি অনুপস্থিত বা আমি BigQuery থেকে Vertex AI-তে কীভাবে সংযোগ করব ইত্যাদি সম্পর্কে আরও বিশদ বিবরণ দিন।

এখানে একটি নমুনা ফলো-আপ প্রম্পট রয়েছে (যদি আপনার ফলো-আপের প্রয়োজন হয় তবেই এটি ব্যবহার করুন, যদি আপনি প্রাপ্ত প্রথম প্রতিক্রিয়াটি যথেষ্ট হয় তবে এটির সাথে এগিয়ে যান):

What about the connection? How will I connect from BigQuery to Vertex AI?

এখানে প্রতিক্রিয়া আছে:

2ed9b3ed96b11bc9.png

একটি BigQuery সংযোগ তৈরি করতে প্রতিক্রিয়া থেকে পদক্ষেপগুলি অনুসরণ করা যাক:

  1. BigQuery কনসোলে নেভিগেট করুন।
  2. BigQuery এক্সপ্লোরার প্যানে, "+ADD" বোতামে ক্লিক করুন এবং "বাহ্যিক ডেটা উত্সের সাথে সংযোগ" এ ক্লিক করুন।
  3. এই মুহুর্তে, এটি আপনাকে BigQuery Connection API সক্ষম করতে বলবে। API সক্ষম করুন ক্লিক করুন:

ded96126495ffe9.png

  1. "বাহ্যিক ডেটা উত্সগুলির সাথে সংযোগগুলি" এ ক্লিক করুন এবং নীচের মতো আপনি বাহ্যিক ডেটা উত্স স্লাইডটি দেখতে পাবেন৷ বাহ্যিক উত্সগুলির তালিকা থেকে, "Vertex AI" উত্স নির্বাচন করুন৷

434cdbbb3a9436f2.png

  1. একটি সংযোগ আইডি টাইপ করুন (এটি আপনার পছন্দের একটি আইডি হতে পারে, তবে আপাতত এটিকে " bq-vx " এবং অঞ্চল (মাল্টিরিজিয়ন "মার্কিন") হিসাবে সেট করুন।
  2. "সংযোগ তৈরি করুন" ক্লিক করুন।

d3a2aeebc3ecdfae.png

  1. আপনি সংযোগ তৈরি করার পরে, "সংযোগে যান" ক্লিক করুন।
  2. সংযোগ তথ্য পৃষ্ঠায়, পরিষেবা অ্যাকাউন্ট আইডি অনুলিপি করুন যেহেতু আমরা পরবর্তী ধাপে এই আইডিটি ব্যবহার করব৷
  3. এখন সংযোগ তৈরি করা হয়েছে, আসুন এই পরিষেবা অ্যাকাউন্ট আইডিতে অনুমতি বরাদ্দ করি যা আমরা Vertex AI ব্যবহার করতে সক্ষম হওয়ার জন্য অনুলিপি করেছি।
  4. Google ক্লাউড কনসোল পৃষ্ঠা থেকে, Google ক্লাউড IAM খুলুন বা লিঙ্কে নেভিগেট করুন।
  5. ভিউ বাই প্রিন্সিপাল বিভাগের অধীনে অ্যাক্সেস মঞ্জুর করুন ক্লিক করুন।

5317eed5da0bb8c5.png

  1. অনুদান অ্যাক্সেস ডায়ালগ বক্সে, নতুন নীতির পাঠ্য বাক্সের ভিতরে আমরা পূর্বে উল্লেখিত পরিষেবা অ্যাকাউন্ট আইডি লিখুন।
  2. ভূমিকাটি "Vertex AI ব্যবহারকারী" এ সেট করুন।

f213db33d220aa5f.png

প্রয়োজনীয় সংযোগ তৈরি করা হয়। BigQuery থেকে Vertex AI ব্যবহার করার জন্য প্রিন্সিপালের (সংযোগের পরিষেবা অ্যাকাউন্ট) প্রয়োজনীয় অনুমতি দেওয়া হয়েছে।

নিম্নলিখিত DDL(ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ) স্টেটমেন্টটি চালান যা একটি DB অবজেক্ট তৈরির প্রতিনিধিত্ব করে, এই ক্ষেত্রে, BigQuery ক্যোয়ারী এডিটরে MODEL।

CREATE OR REPLACE MODEL bookshelf.llm_model
  REMOTE WITH CONNECTION `us.bq-vx`
  OPTIONS (ENDPOINT = 'text-bison-32k');

উপরের ধাপের বিকল্প হিসাবে আপনার জন্য কিছু চেষ্টা করার জন্য, আপনি জেমিনিকে "টেক্সট-বাইসন-32k" মডেলটি চালু করার জন্য মডেল তৈরি করার জন্য একটি প্রশ্নের পরামর্শ দিতে বলতে পারেন।

দ্রষ্টব্য: আপনি যদি আপনার সংযোগের জন্য একটি ভিন্ন নাম ব্যবহার করেন, তাহলে আগের DDL বিবৃতিতে " us.bq-vx " নামটি প্রতিস্থাপন করুন৷ এই প্রশ্নটি ডেটাসেটে দূরবর্তী মডেল তৈরি করে, "বুকশেলফ", যা আমরা আগে তৈরি করেছি।

8. একটি দূরবর্তী ফাংশন তৈরি করুন যা জাভা ক্লাউড ফাংশনকে আহ্বান করে

আমরা এখন জাভা ক্লাউড ফাংশন ব্যবহার করে BigQuery-এ একটি রিমোট ফাংশন তৈরি করব যা আমরা জেমিনি মডেল বাস্তবায়নের জন্য এই সিরিজের কোডল্যাব 1- এ তৈরি করেছি। এই রিমোট ফাংশনটি বইয়ের বিষয়বস্তু সংক্ষিপ্ত করতে ব্যবহার করা হবে।

দ্রষ্টব্য: আপনি যদি এই কোডল্যাবটি মিস করেন বা এই ক্লাউড ফাংশনটি স্থাপন না করে থাকেন তবে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন এবং পরবর্তী বিষয়ে যেতে পারেন (যা হল, রিমোট মডেল ব্যবহার করে বইগুলির থিম সংক্ষিপ্ত করুন)।

BigQuery কনসোলে যান এবং Query Editor-এ নিম্নলিখিত DDL স্টেটমেন্ট পেস্ট করুন (আপনি + বোতামে ক্লিক করে একটি নতুন ক্যোয়ারী এডিটর ট্যাব তৈরি করতে পারেন)

a54c0b0014666cac.png

নীচে আপনি কপি করতে পারেন যে DDL. আপনার মোতায়েন করা ক্লাউড ফাংশন এন্ডপয়েন্ট ( কোডল্যাব 1 থেকে তৈরি) দিয়ে এন্ডপয়েন্ট প্রতিস্থাপন করতে ভুলবেন না। আপনার যদি কোনো এন্ডপয়েন্ট না থাকে, তাহলে আপনি ডেমোর উদ্দেশ্যে "abis-345004" দিয়ে নিচের DDL-এ মাস্ক করা অক্ষর প্রতিস্থাপন করতে পারেন।

CREATE OR REPLACE FUNCTION
  `bookshelf.GEMINI_REMOTE_CALL` (context STRING) RETURNS STRING
  REMOTE WITH CONNECTION `us.bq-vx`
  OPTIONS (
    endpoint = 'https://us-central1-****-******.cloudfunctions.net/remote-gemini-call'  );

Google ক্লাউড প্ল্যাটফর্মে BigQuery কনসোলে নেভিগেট করুন এবং একটি নতুন ক্যোয়ারী এডিটর ট্যাব খুলুন। BigQuery ক্যোয়ারী এডিটরে, উপরে DDL স্টেটমেন্ট পেস্ট করুন। আপনি ক্যোয়ারী চালানোর পরে নিম্নলিখিত প্রতিক্রিয়া দেখতে পারেন:

a023d5691acf6f.png

এখন মডেল এবং ফাংশন তৈরি করা হয়েছে, আসুন এই দুটি BigQuery অবজেক্টকে একটি SELECT ক্যোয়ারীতে চালিয়ে পরীক্ষা করি।

9. দূরবর্তী মডেল ব্যবহার করে থিম সংক্ষিপ্ত করুন

প্রদত্ত থিমগুলির তালিকা থেকে বইটির জন্য একটি সমন্বিত কীওয়ার্ড তৈরি করতে আমরা "bookshelf.llm_model" তৈরি করা দূরবর্তী মডেলটি ব্যবহার করি:

SELECT * FROM ML.GENERATE_TEXT(MODEL `bookshelf.llm_model`,
(
SELECT
     CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` LIMIT 1
));

ঐচ্ছিক ধাপ: LLM-উত্পন্ন ফলাফল ক্ষেত্রের ফলাফল নেস্ট করা হয়। কিছু LLM প্যারামিটার এবং "flatten_json_output" অ্যাট্রিবিউট যোগ করা যাক ক্যোয়ারীতে। "flatten_json_output" অ্যাট্রিবিউট ব্যবহার করে LLM-উত্পাদিত ফলাফল ক্ষেত্র থেকে নেস্টেড কাঠামো সরাতে সাহায্য করে।

SELECT * FROM ML.GENERATE_TEXT ( MODEL `bookshelf.llm_model`, (
 SELECT CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt FROM `gdelt-bq.internetarchivebooks.1920` limit 1),
    STRUCT( 0.2 AS temperature, 100 AS max_output_tokens, TRUE AS flatten_json_output));

এখন, BigQuery এডিটরে SELECT কোয়েরি চালান এবং ফলাফল যাচাই করুন। আমরা পরীক্ষার জন্য প্রশ্নের ফলাফল 1-এ সীমাবদ্ধ করেছি। ফলাফল নিম্নরূপ প্রদর্শিত হয়:

9b0d33eca61a73d2.png

10. রিমোট ফাংশন ব্যবহার করে বইয়ের সম্পূর্ণ পাঠ্য সংক্ষিপ্ত করুন

আমরা এখন বুকশেলফ চালিয়ে বইটির সারসংক্ষেপ করার চেষ্টা করব৷ GEMINI_REMOTE_CALL ক্লাউড ফাংশনটি আমরা আগে তৈরি করেছি৷

দ্রষ্টব্য: আপনি যদি দূরবর্তী FUNCTION তৈরি (এই কোডল্যাবের পূর্ববর্তী বিষয়) এড়িয়ে গিয়ে থাকেন তবে বুকশেলফ এড়িয়ে যেতে ভুলবেন না। SELECT ক্যোয়ারীতেও GEMINI_REMOTE_CALL ফাংশন কল করুন।

SELECT ক্যোয়ারী ব্যবহার করুন যা আমরা আগে তৈরি করা দূরবর্তী ফাংশনকে (GEMINI_REMOTE_CALL) কল করে। এই ফাংশনের কল, GEMINI_REMOTE_CALL, বইয়ের পাঠ্যের সারাংশের জন্য জিজ্ঞাসা করার একটি প্রম্পট অন্তর্ভুক্ত করে:

select BookMeta_Title, `bookshelf.GEMINI_REMOTE_CALL` (
  CONCAT('This is about a book. The title of the book is this: ', BookMeta_Title,  ' . The theme of the book is as follows: ', Themes, 'The following text contains an excerpt from the book. Summarize it in less than 5 lines to create the gist. If you do not have a summary, use the title and themes to make up a short summary. DO NOT RETURN EMPTY RESPONSE. ', SUBSTR(BookMeta_FullText, 5000, 10000))) Summary 
  from `gdelt-bq.internetarchivebooks.1920` where Themes like '%EDUCATION%' limit 1;

মনে রাখবেন যে আমরা বইটির সম্পূর্ণ পাঠ্যের একটি সাবস্ট্রিং নিয়েছি যাতে সারাংশ তৈরি করা যায়।

প্রশ্নের ফলাফল নিম্নরূপ:

658bb0a9c9cf0938.png

11. একটি টেবিলে বইয়ের তথ্য সংরক্ষণ করুন

এখন যেহেতু আমরা শুধুমাত্র SQL কোয়েরি ব্যবহার করে BigQuery থেকে উভয় LLM কল (রিমোট মডেল এবং ফাংশন) পরীক্ষা করেছি, চলুন রিমোট মডেল এবং ফাংশনের মতো একই ডেটাসেটে থিম ইনসাইট সহ "বুকশেলফ" ডেটা সংরক্ষণ করার জন্য একটি BigQuery টেবিল তৈরি করি।

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

এখানে আমরা যে প্রশ্নটি ব্যবহার করব তা হল:

SELECT
  BookMeta_Title, Themes, ml_generate_text_llm_result Context 
   FROM
  ML.GENERATE_TEXT (
    MODEL `bookshelf.llm_model`,
    (
 SELECT
      BookMeta_Title,
      Themes,BookMeta_FullText,
      CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
    STRUCT(
      0.2 AS temperature,
      100 AS max_output_tokens,
      TRUE AS flatten_json_output));

আপনি যখন BigQuery এডিটরে কোয়েরি চালান, ফলাফলটি নিম্নরূপ:

2c6e08e75a680867.png

এখন, উপরের ক্যোয়ারী থেকে জেমিনীকে "bookshelf.books" নামে একটি টেবিল তৈরি করতে বলি। Google ক্লাউড কনসোলে জেমিনি চ্যাট কনসোলে নেভিগেট করুন এবং নিম্নলিখিত প্রম্পটে প্রবেশ করুন৷

আমরা যে প্রম্পটটি ব্যবহার করব তা এখানে:

Create a BigQuery table named bookshelf.books from this SELECT query: 
SELECT
  BookMeta_Title, Themes, ml_generate_text_llm_result Context 
   FROM
  ML.GENERATE_TEXT (
    MODEL `bookshelf.llm_model`,
    (
 SELECT
      BookMeta_Title,
      Themes,BookMeta_FullText,
      CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
    STRUCT(
      0.2 AS temperature,
      100 AS max_output_tokens,
      TRUE AS flatten_json_output));

মিথুন চ্যাটের প্রতিক্রিয়া নিম্নরূপ:

df6595a4b14f7b9.png

আপনি যদি এখান থেকে সরাসরি কপি করতে চান তাহলে এখানে ক্যোয়ারী রয়েছে:

CREATE TABLE bookshelf.books (
  BookMeta_Title STRING,
  Themes STRING,
  ml_generate_text_llm_result STRING
) AS (
  SELECT
    BookMeta_Title,
    Themes,
    ml_generate_text_llm_result Context
  FROM
    ML.GENERATE_TEXT (
      MODEL `bookshelf.llm_model`,
      (
        SELECT
          BookMeta_Title,
          Themes,
          BookMeta_FullText,
          CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
        FROM `gdelt-bq.internetarchivebooks.1920`
        LIMIT 5
      ),
      STRUCT(
        0.2 AS temperature,
        100 AS max_output_tokens,
        TRUE AS flatten_json_output
      )
    )
);

BigQuery এডিটরে কোয়েরি চালানোর পরে, ফলাফলটি নিম্নরূপ:

2d1ce716f844b7ad.png

তাই তো! এখন টেবিলটি জিজ্ঞাসা করুন এবং আরও অন্তর্দৃষ্টির জন্য ডেটা নিয়ে খেলুন৷

12. অভিনন্দন

অভিনন্দন! আমরা সফলভাবে নিম্নলিখিতগুলি সম্পন্ন করেছি এবং প্রক্রিয়াটির কিছু ধাপে মিথুন ব্যবহার করেছি:

  • BigQuery-এ একটি দূরবর্তী মডেল তৈরি করা হয়েছে যা ";"-এর তালিকা থেকে বইয়ের জেনার (বা থিম) শনাক্ত করতে Vertex AI "text-bison-32k" এন্ডপয়েন্ট ব্যবহার করে। টেবিলে আলাদা করা কীওয়ার্ড।
  • BigQuery-এ একটি রিমোট ফাংশন তৈরি করা হয়েছে যা এই ডিপ্লোয়েড জেনারেটিভ AI ক্লাউড ফাংশনকে দূর থেকে ব্যবহার করবে। এই ফাংশনটি প্রম্পটটিকে ইনপুট হিসাবে গ্রহণ করবে এবং একটি স্ট্রিং আউটপুট করবে যা বইটিকে 5 লাইনে সংক্ষিপ্ত করে।
  • SQL কোয়েরি সহ একটি বইয়ের থিম এবং পাঠ্য সংক্ষিপ্ত করতে এবং বুকশেল্ফ ডেটাসেটে একটি নতুন টেবিলে ফলাফলগুলি লিখতে রিমোট মডেল এবং ফাংশন ব্যবহার করে৷
  • ফলো-আপ অ্যাসাইনমেন্ট হিসেবে, BigQuery-এ তৈরি করা অবজেক্ট মুছে ফেলার জন্য SQL পেতে জেমিনি ব্যবহার করে দেখুন। এটি পরিচ্ছন্নতার পদক্ষেপটি কভার করবে।