1. ওভারভিউ
ডাটাবেসের জন্য Gen AI টুলবক্স হল Google এর একটি ওপেন সোর্স সার্ভার যা ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য Gen AI টুল তৈরি করা সহজ করে তোলে। এটি আপনাকে সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক কিছুর মতো জটিলতাগুলি পরিচালনা করে সহজ, দ্রুত এবং আরও নিরাপদে সরঞ্জামগুলি বিকাশ করতে সক্ষম করে৷ এটি আপনাকে Gen AI টুল তৈরি করতে সাহায্য করে যা আপনার এজেন্টদের আপনার ডাটাবেসের ডেটা অ্যাক্সেস করতে দেয়। টুলবক্স প্রদান করে:
সরলীকৃত উন্নয়ন: আপনার এজেন্টের সাথে 10 লাইনের কম কোডে টুলগুলিকে একীভূত করুন, একাধিক এজেন্ট বা ফ্রেমওয়ার্কের মধ্যে টুলগুলিকে পুনঃব্যবহার করুন এবং আরও সহজে টুলগুলির নতুন সংস্করণ স্থাপন করুন৷
আরও ভাল কর্মক্ষমতা: সর্বোত্তম অনুশীলন যেমন সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক কিছু।
বর্ধিত নিরাপত্তা: আপনার ডেটাতে আরও নিরাপদ অ্যাক্সেসের জন্য সমন্বিত প্রমাণীকরণ।
এন্ড-টু-এন্ড পর্যবেক্ষণযোগ্যতা: ওপেনটেলিমেট্রির জন্য অন্তর্নির্মিত সমর্থন সহ বাক্সের বাইরের মেট্রিক্স এবং ট্রেসিং।
টুলবক্স আপনার অ্যাপ্লিকেশনের অর্কেস্ট্রেশন ফ্রেমওয়ার্ক এবং আপনার ডাটাবেসের মধ্যে বসে, একটি কন্ট্রোল প্লেন প্রদান করে যা সরঞ্জামগুলি সংশোধন, বিতরণ বা আহ্বান করতে ব্যবহৃত হয়। এটি আপনাকে সরঞ্জামগুলি সঞ্চয় এবং আপডেট করার জন্য একটি কেন্দ্রীভূত অবস্থান প্রদান করে আপনার সরঞ্জামগুলির পরিচালনাকে সহজ করে, আপনাকে এজেন্ট এবং অ্যাপ্লিকেশনগুলির মধ্যে সরঞ্জামগুলি ভাগ করে নেওয়ার অনুমতি দেয় এবং আপনার অ্যাপ্লিকেশনটিকে পুনরায় ব্যবহার না করেই সেই সরঞ্জামগুলিকে আপডেট করতে দেয়৷
আপনি কি নির্মাণ করবেন
এই ল্যাবের অংশ হিসাবে, আপনি একটি অ্যাপ্লিকেশন তৈরি করবেন যা একটি সহজ ডাটাবেস (অ্যালোয়ডিবি) কোয়েরি সম্পাদন করার জন্য একটি টুল ব্যবহার করে যা আপনার এজেন্ট বা জেনারেটিভ এআই অ্যাপ্লিকেশন থেকে আহ্বান করা যেতে পারে। এই জন্য আপনি হবে
- টুলবক্স ইনস্টল করুন
- টুলবক্স সার্ভারে টুলটি সেট আপ করুন (যা AlloyDB-তে একটি কাজ করার জন্য ডিজাইন করা হয়েছে)
- ক্লাউড রানে টুলবক্স স্থাপন করুন
- ক্লাউড রান এন্ডপয়েন্টের সাহায্যে টুলটি পরীক্ষা করুন
- টুলবক্স চালু করতে ক্লাউড রান ফাংশন তৈরি করুন
প্রয়োজনীয়তা
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প (পরবর্তী বিভাগে পদক্ষেপ)।
2. আপনি শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
- নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
- আপনি Cloud Shell ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ। গুগল ক্লাউড কনসোলের শীর্ষে সক্রিয় ক্লাউড শেল ক্লিক করুন।
- একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি ইতিমধ্যেই প্রমাণীকৃত কিনা এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রকল্পটি সঠিক প্রকল্প আইডিতে সেট করা আছে কিনা তা পরীক্ষা করুন:
gcloud auth list
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
- আপনার ক্লাউড শেল টার্মিনালে একের পর এক নিম্নলিখিত কমান্ডগুলি চালিয়ে প্রয়োজনীয় API গুলি সক্ষম করুন:
নীচে চালানোর জন্য একটি একক কমান্ডও রয়েছে, কিন্তু আপনি যদি একজন ট্রায়াল অ্যাকাউন্ট ব্যবহারকারী হন, তাহলে এইগুলিকে বাল্কভাবে সক্ষম করার চেষ্টা করার সময় আপনি কোটা সমস্যার সম্মুখীন হতে পারেন। এই কারণেই প্রতি লাইনে একটি করে কমান্ড দেওয়া হয়।
gcloud services enable alloydb.googleapis.com
gcloud services enable compute.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable servicenetworking.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable cloudfunctions.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud কমান্ডের বিকল্প হল কনসোলের মাধ্যমে প্রতিটি পণ্য অনুসন্ধান করে বা এই লিঙ্কটি ব্যবহার করে।
যদি কোনো API মিস হয়, আপনি সর্বদা বাস্তবায়নের সময় এটি সক্রিয় করতে পারেন।
জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।
3. ডাটাবেস সেটআপ
এই ল্যাবে আমরা খুচরা ডেটা রাখার জন্য ডাটাবেস হিসাবে AlloyDB ব্যবহার করব। এটি ডাটাবেস এবং লগগুলির মতো সমস্ত সংস্থান ধরে রাখতে ক্লাস্টার ব্যবহার করে। প্রতিটি ক্লাস্টারের একটি প্রাথমিক উদাহরণ রয়েছে যা ডেটাতে অ্যাক্সেস পয়েন্ট সরবরাহ করে। টেবিলে প্রকৃত তথ্য থাকবে।
আসুন একটি AlloyDB ক্লাস্টার, উদাহরণ এবং টেবিল তৈরি করি যেখানে ইকমার্স ডেটাসেট লোড করা হবে।
একটি ক্লাস্টার এবং উদাহরণ তৈরি করুন
- ক্লাউড কনসোলে AlloyDB পৃষ্ঠাটি নেভিগেট করুন।
ক্লাউড কনসোলে বেশিরভাগ পৃষ্ঠাগুলি খুঁজে পাওয়ার একটি সহজ উপায় হল কনসোলের অনুসন্ধান বার ব্যবহার করে সেগুলি অনুসন্ধান করা৷
- সেই পৃষ্ঠা থেকে ক্লাস্টার তৈরি করুন নির্বাচন করুন:
- আপনি নীচের মত একটি পর্দা দেখতে পাবেন. নিম্নলিখিত মানগুলির সাথে একটি ক্লাস্টার এবং উদাহরণ তৈরি করুন (আপনি রেপো থেকে অ্যাপ্লিকেশন কোড ক্লোন করার ক্ষেত্রে মানগুলি মেলে তা নিশ্চিত করুন):
- ক্লাস্টার আইডি: "
vector-cluster
" - পাসওয়ার্ড: "
alloydb
" - PostgreSQL 15 সামঞ্জস্যপূর্ণ
- অঞ্চল: "
us-central1
" - নেটওয়ার্কিং: "
default
"
- আপনি যখন ডিফল্ট নেটওয়ার্ক নির্বাচন করেন, আপনি নীচের মত একটি স্ক্রীন দেখতে পাবেন। সংযোগ সেট আপ নির্বাচন করুন.
- সেখান থেকে, "স্বয়ংক্রিয়ভাবে বরাদ্দকৃত আইপি পরিসর ব্যবহার করুন" নির্বাচন করুন এবং চালিয়ে যান। তথ্য পর্যালোচনা করার পরে, সংযোগ তৈরি করুন নির্বাচন করুন।
- আপনার নেটওয়ার্ক সেট আপ হয়ে গেলে, আপনি আপনার ক্লাস্টার তৈরি করা চালিয়ে যেতে পারেন। নীচে দেখানো হিসাবে ক্লাস্টার সেট আপ সম্পূর্ণ করতে CREATE CLUSTER এ ক্লিক করুন:
ইনস্ট্যান্স আইডি পরিবর্তন করতে নিশ্চিত করুন "
vector-instance"
.
মনে রাখবেন ক্লাস্টার তৈরি হতে প্রায় 10 মিনিট সময় লাগবে। একবার এটি সফল হলে, আপনি একটি স্ক্রীন দেখতে পাবেন যা আপনার তৈরি করা ক্লাস্টারটির ওভারভিউ দেখায়।
4. ডেটা ইনজেশন
এখন স্টোর সম্পর্কে ডেটা সহ একটি টেবিল যুক্ত করার সময়। AlloyDB-তে নেভিগেট করুন, প্রাথমিক ক্লাস্টার এবং তারপর AlloyDB স্টুডিও নির্বাচন করুন:
আপনার উদাহরণ তৈরি করা শেষ হওয়ার জন্য আপনাকে অপেক্ষা করতে হতে পারে। এটি সম্পূর্ণ হয়ে গেলে, ক্লাস্টার তৈরির সময় আপনার তৈরি শংসাপত্রগুলি ব্যবহার করে AlloyDB-এ সাইন ইন করুন। PostgreSQL এ প্রমাণীকরণের জন্য নিম্নলিখিত ডেটা ব্যবহার করুন:
- ব্যবহারকারীর নাম: "
postgres
" - ডাটাবেস : "
postgres
" - পাসওয়ার্ড: "
alloydb
"
একবার আপনি সফলভাবে AlloyDB স্টুডিওতে প্রমাণীকরণ করলে, এসকিউএল কমান্ড এডিটরে প্রবেশ করা যেতে পারে। আপনি শেষ উইন্ডোর ডানদিকে প্লাস ব্যবহার করে একাধিক সম্পাদক উইন্ডো যোগ করতে পারেন।
আপনি প্রয়োজনীয় হিসাবে Run, Format, এবং Clear অপশন ব্যবহার করে সম্পাদক উইন্ডোতে AlloyDB-এর জন্য কমান্ড লিখতে পারেন।
এক্সটেনশন সক্রিয় করুন
এই অ্যাপটি তৈরি করার জন্য, আমরা pgvector
এবং google_ml_integration
এক্সটেনশনগুলি ব্যবহার করব। pgvector এক্সটেনশন আপনাকে ভেক্টর এম্বেডিং সংরক্ষণ এবং অনুসন্ধান করতে দেয়। google_ml_integration এক্সটেনশন এমন ফাংশন প্রদান করে যা আপনি SQL-এ ভবিষ্যদ্বাণী পেতে Vertex AI পূর্বাভাস শেষ পয়েন্ট অ্যাক্সেস করতে ব্যবহার করেন। নিম্নলিখিত ডিডিএলগুলি চালিয়ে এই এক্সটেনশনগুলিকে সক্ষম করুন :
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;
আপনি যদি আপনার ডাটাবেসে সক্ষম করা এক্সটেনশনগুলি পরীক্ষা করতে চান তবে এই SQL কমান্ডটি চালান:
select extname, extversion from pg_extension;
একটি টেবিল তৈরি করুন
নীচের ডিডিএল স্টেটমেন্ট ব্যবহার করে একটি টেবিল তৈরি করুন:
CREATE TABLE toys ( id VARCHAR(25), name VARCHAR(25), description VARCHAR(20000), quantity INT, price FLOAT, image_url VARCHAR(200), text_embeddings vector(768)) ;
উপরের কমান্ডটি সফলভাবে কার্যকর করার পরে, আপনি ডাটাবেসের টেবিলটি দেখতে সক্ষম হবেন।
ডেটা ইনজেস্ট করুন
এই ল্যাবের জন্য, আমাদের কাছে এই SQL ফাইলে প্রায় 72 টি রেকর্ডের টেস্ট ডেটা আছে। এতে id, name, description, quantity, price, image_url
ক্ষেত্র রয়েছে। অন্যান্য ক্ষেত্রগুলি পরে ল্যাবে পূরণ করা হবে।
সেখান থেকে লাইনগুলি/বিবৃতি সন্নিবেশ করুন এবং তারপরে একটি ফাঁকা সম্পাদক ট্যাবে সেই লাইনগুলি পেস্ট করুন এবং RUN নির্বাচন করুন।
টেবিলের বিষয়বস্তু দেখতে, এক্সপ্লোরার বিভাগটি প্রসারিত করুন যতক্ষণ না আপনি পোশাক নামের টেবিলটি দেখতে পাচ্ছেন। সারণীতে প্রশ্ন করার বিকল্পটি দেখতে ত্রিকোণ (⋮) নির্বাচন করুন। একটি SELECT স্টেটমেন্ট একটি নতুন এডিটর ট্যাবে খুলবে।
অনুমতি দিন
ব্যবহারকারী postgres
embedding
ফাংশনে কার্যকর অধিকার প্রদানের জন্য নীচের বিবৃতিটি চালান:
GRANT EXECUTE ON FUNCTION embedding TO postgres;
AlloyDB পরিষেবা অ্যাকাউন্টে Vertex AI ব্যবহারকারীর ভূমিকা মঞ্জুর করুন
ক্লাউড শেল টার্মিনালে যান এবং নিম্নলিখিত কমান্ড দিন:
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
5. প্রসঙ্গের জন্য এম্বেডিং তৈরি করুন
কম্পিউটারের জন্য টেক্সট প্রক্রিয়া করার চেয়ে সংখ্যা প্রক্রিয়া করা অনেক সহজ। একটি এমবেডিং সিস্টেম পাঠ্যকে ফ্লোটিং পয়েন্ট সংখ্যার একটি সিরিজে রূপান্তরিত করে, যাকে ভেক্টর এমবেডিং বলা হয়, এটি পাঠ্যকে উপস্থাপন করা উচিত, এটি যেভাবে লেখা হোক না কেন, এটি কোন ভাষা ব্যবহার করে, ইত্যাদি।
উদাহরণস্বরূপ, একটি সমুদ্রতীরবর্তী অবস্থানকে বলা যেতে পারে "জলের উপর", "সৈকত", "আপনার ঘর থেকে সমুদ্রে হাঁটুন", "সুর লা মের", "на берегу океана" ইত্যাদি। এই পদগুলি সবই আলাদা দেখতে, কিন্তু তাদের শব্দার্থিক অর্থ বা মেশিন লার্নিং পরিভাষায়, তাদের এম্বেডিংগুলি একে অপরের খুব কাছাকাছি হওয়া উচিত।
এখন যেহেতু ডেটা এবং প্রসঙ্গ প্রস্তুত, আমরা embedding
ক্ষেত্রের টেবিলে পণ্যের বিবরণের এমবেডিং যোগ করতে SQL চালাব। আপনি ব্যবহার করতে পারেন এমবেডিং মডেল বিভিন্ন আছে. আমরা Vertex AI থেকে text-embedding-005
ব্যবহার করছি। পুরো প্রকল্প জুড়ে একই এমবেডিং মডেল ব্যবহার করতে ভুলবেন না!
দ্রষ্টব্য: আপনি যদি একটি পুরানো Google ক্লাউড প্রজেক্ট ব্যবহার করেন, তাহলে আপনাকে টেক্সট-এমবেডিং মডেলের পুরানো সংস্করণগুলি যেমন টেক্সটেমবেডিং-গেকো ব্যবহার করা চালিয়ে যেতে হবে।
AlloyDB স্টুডিও ট্যাবে ফিরে যান এবং নিম্নলিখিত DML টাইপ করুন:
UPDATE toys set text_embeddings = embedding( 'text-embedding-005', description);
কিছু এমবেডিং দেখতে আবার toys
টেবিলের দিকে তাকান। পরিবর্তনগুলি দেখতে SELECT স্টেটমেন্টটি পুনরায় চালু করতে ভুলবেন না।
SELECT id, name, description, price, quantity, image_url, text_embeddings FROM toys;
নিচে দেখানো খেলনার বর্ণনার জন্য এটি এম্বেডিং ভেক্টরকে ফিরিয়ে দিতে হবে, যা দেখতে ফ্লোটের অ্যারের মতো দেখাচ্ছে:
দ্রষ্টব্য: বিনামূল্যের স্তরের অধীনে নতুন তৈরি করা Google ক্লাউড প্রকল্পগুলি এম্বেডিং মডেলগুলিতে প্রতি সেকেন্ডে অনুমোদিত এমবেডিং অনুরোধের সংখ্যার ক্ষেত্রে কোটা সমস্যার সম্মুখীন হতে পারে৷ আমরা পরামর্শ দিই যে আপনি আইডির জন্য একটি ফিল্টার ক্যোয়ারী ব্যবহার করুন এবং তারপর এম্বেডিং তৈরি করার সময় বেছে বেছে 1-5টি রেকর্ড এবং আরও অনেক কিছু বেছে নিন।
6. ভেক্টর অনুসন্ধান করুন
এখন যেহেতু টেবিল, ডেটা এবং এম্বেডিং সবই প্রস্তুত, চলুন ব্যবহারকারীর সার্চ টেক্সটের জন্য রিয়েল টাইম ভেক্টর সার্চ করা যাক।
ধরুন ব্যবহারকারী জিজ্ঞাসা করেছেন:
" I want a white plush teddy bear toy with a floral pattern
।"
আপনি নীচের ক্যোয়ারী চালিয়ে এর জন্য মিল খুঁজে পেতে পারেন:
select * from toys
ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', 'I want a white plush teddy bear toy with a floral pattern') as vector(768))
LIMIT 5;
আসুন এই প্রশ্নটি বিস্তারিতভাবে দেখুন:
এই প্রশ্নে,
- ব্যবহারকারীর অনুসন্ধান পাঠ্য হল: "
I want a white plush teddy bear toy with a floral pattern.
" - আমরা মডেলটি ব্যবহার করে
embedding()
পদ্ধতিতে এম্বেডিং এ রূপান্তর করছি:text-embedding-005
। এই ধাপটি শেষ ধাপের পরে পরিচিত দেখা উচিত, যেখানে আমরা টেবিলের সমস্ত আইটেমে এমবেডিং ফাংশন প্রয়োগ করেছি। - "
<=>
" COSINE SIMILARITY দূরত্ব পদ্ধতির ব্যবহার প্রতিনিধিত্ব করে৷ আপনি pgvector এর ডকুমেন্টেশনে উপলব্ধ সমস্ত সাদৃশ্য পরিমাপ খুঁজে পেতে পারেন। - ডাটাবেসে সংরক্ষিত ভেক্টরের সাথে সামঞ্জস্যপূর্ণ করতে আমরা এম্বেডিং পদ্ধতির ফলাফলকে ভেক্টর টাইপে রূপান্তর করছি।
- LIMIT 5 প্রতিনিধিত্ব করে যে আমরা অনুসন্ধান পাঠ্যের জন্য 5টি নিকটতম প্রতিবেশী বের করতে চাই।
ফলাফল এই মত দেখায়:
আপনি আপনার ফলাফলগুলিতে লক্ষ্য করতে পারেন, মিলগুলি অনুসন্ধান পাঠ্যের বেশ কাছাকাছি। ফলাফল কিভাবে পরিবর্তিত হয় তা দেখতে পাঠ্য পরিবর্তন করার চেষ্টা করুন।
7. টুলবক্স ইন্টারঅ্যাকশনের জন্য AlloyDB প্রস্তুত করা হচ্ছে
টুলবক্স সেট আপ করার প্রস্তুতির জন্য, আসুন আমাদের AlloyDB দৃষ্টান্তে পাবলিক আইপি সংযোগ সক্ষম করি যাতে নতুন টুল ডাটাবেস অ্যাক্সেস করতে পারে।
- আপনার AlloyDB ইন্সট্যান্সে যান, EDIT এ ক্লিক করুন এবং প্রাথমিক ইন্সট্যান্স সম্পাদনা পৃষ্ঠায় যান।
- পাবলিক আইপি সংযোগ বিভাগে যান, পাবলিক আইপি সক্ষম করুন চেকবক্সটি চেক করুন এবং আপনার ক্লাউড শেল মেশিনের আইপি ঠিকানা লিখুন।
- আপনার ক্লাউড শেল মেশিনের আইপি পেতে, ক্লাউড শেল টার্মিনালে যান এবং ifconfig লিখুন। ফলাফল থেকে eth0 inet ঠিকানাটি চিহ্নিত করুন এবং শেষ 2 সংখ্যাটিকে 0.0 দিয়ে একটি মাস্ক আকার '/16' দিয়ে প্রতিস্থাপন করুন। উদাহরণের জন্য এটি দেখতে "XX.XX.0.0/16" এর মত হবে যেখানে XX সংখ্যা।
- সম্পাদনা উদাহরণ পৃষ্ঠার অনুমোদিত বহিরাগত নেটওয়ার্ক "নেটওয়ার্ক" পাঠ্যবক্সে এই আইপিটি আটকান৷
- একবার হয়ে গেলে UPDATE INSTANCE এ ক্লিক করুন।
এটি সম্পূর্ণ হতে কয়েক মিনিট সময় লাগবে।
8. টুলবক্স ইনস্টলেশন
- আপনি টুল বিবরণ সংরক্ষণ করার জন্য একটি প্রকল্প ফোল্ডার তৈরি করতে পারেন. এই ক্ষেত্রে যেহেতু আমরা খেলনার দোকানের ডেটা নিয়ে কাজ করছি, আসুন "টয়স্টোর" নামে একটি ফোল্ডার তৈরি করি এবং এটিতে নেভিগেট করি। ক্লাউড শেল টার্মিনালে নেভিগেট করুন এবং নিশ্চিত করুন যে আপনার প্রকল্পটি নির্বাচিত হয়েছে এবং টার্মিনালের প্রম্পটে দেখানো হয়েছে। আপনার ক্লাউড শেল টার্মিনাল থেকে নীচের কমান্ডটি চালান:
mkdir toystore
cd toystore
- আপনার নতুন ফোল্ডারে টুলবক্স ডাউনলোড এবং ইনস্টল করতে নীচের কমান্ডটি চালান:
# see releases page for other versions
export VERSION=0.1.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
- ক্লাউড শেল এডিটরে টগল করুন। নতুন তৈরি ফোল্ডার "toystore" প্রসারিত করুন এবং tools.yaml নামে একটি নতুন ফাইল তৈরি করুন। নীচের বিষয়বস্তু অনুলিপি. YOUR_PROJECT_ID প্রতিস্থাপন করুন এবং অন্যান্য সমস্ত সংযোগের বিবরণ সঠিক কিনা তা পরীক্ষা করুন।
sources:
alloydb-toys:
kind: "alloydb-postgres"
project: "YOUR_PROJECT_ID"
region: "us-central1"
cluster: "vector-cluster"
instance: "vector-instance"
database: "postgres"
user: "postgres"
password: "alloydb"
tools:
get-toy-price:
kind: postgres-sql
source: alloydb-toys
description: Get the price of a toy based on a description.
parameters:
- name: description
type: string
description: A description of the toy to search for.
statement: |
SELECT price FROM toys
ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', $1) AS vector(768))
LIMIT 1;
এই টুলে, আমরা শুধু ব্যবহারকারীর সার্চ টেক্সটের (কাস্টম টয় বিবরণ) সাথে সবচেয়ে কাছের মিল খুঁজে পাচ্ছি এবং এর মূল্য ফেরত দিচ্ছি। আপনি শীর্ষ 5টি নিকটতম ম্যাচিং খেলনাগুলির গড় মূল্য খুঁজে পেতে এটিকে সংশোধন করতে পারেন:
মূল্য হিসাবে ( খেলনা থেকে মূল্য নির্বাচন করুন ORDER BY text_embeddings <=> CAST(Embedding('text-embedding-005', $1) AS ভেক্টর(768)) সীমা 5 ) থেকে গড় (মূল্য) নির্বাচন করুন;
আপনি টুল সংজ্ঞা সঙ্গে সব সেট!
আপনার tools.yaml কনফিগার করার বিষয়ে আরো বিস্তারিত জানার জন্য, এই ডকুমেন্টেশন পড়ুন।
- ক্লাউড শেল টার্মিনালে টগল করুন এবং আপনার সরঞ্জাম কনফিগারেশনের সাথে টুলবক্স সার্ভার শুরু করতে নিম্নলিখিত কমান্ডটি প্রবেশ করান:
./toolbox --tools_file "tools.yaml"
- এখন আপনি যদি ক্লাউডে একটি ওয়েব প্রিভিউ মোডে সার্ভারটি খোলেন, তাহলে আপনি দেখতে পাবেন টুলবক্স সার্ভার আপ এবং আপনার নতুন টুলের সাহায্যে চলছে, যার নাম
get-toy-price.
9. টুলবক্সের ক্লাউড রান স্থাপনা
আসুন এটিকে ক্লাউড রানে স্থাপন করি যাতে আপনি এই সরঞ্জামটিকে বাস্তবে ব্যবহার করতে পারেন।
- এই পৃষ্ঠার নির্দেশাবলী এক এক করে অনুসরণ করুন যতক্ষণ না আপনি
gcloud run deploy toolbox
কমান্ডে পৌঁছান যা "ক্লাউড রানে স্থাপন" বিভাগের অধীনে 3য় পয়েন্টে রয়েছে। আপনি যখন একটি VPC নেটওয়ার্ক পদ্ধতি ব্যবহার করছেন তখন আপনার প্রথম বিকল্পটি প্রয়োজন এবং দ্বিতীয়টি নয়। - একবার সফলভাবে স্থাপন করা হলে, আপনি আপনার টুলবক্স সার্ভারের একটি ক্লাউড রান নিয়োজিত শেষ পয়েন্ট পাবেন। একটি CURL কমান্ড দিয়ে এটি পরীক্ষা করুন।
আপনি আপনার এজেন্টিক অ্যাপ্লিকেশনে আপনার নতুন স্থাপন করা টুল ব্যবহার করতে প্রস্তুত!!!
10. টুলবক্সের সাথে আপনার অ্যাপ সংযুক্ত করুন
এই অংশে, আমরা অ্যাপ্লিকেশনটির প্রয়োজনীয়তার সাথে ইন্টারঅ্যাক্ট করতে এবং প্রতিক্রিয়া পুনরুদ্ধার করার জন্য আপনার সরঞ্জামটি পরীক্ষা করার জন্য একটি ছোট অ্যাপ্লিকেশন তৈরি করব।
- Google Colab- এ নেভিগেট করুন এবং একটি নতুন নোটবুক খুলুন।
- আপনার নোটবুকে নিম্নলিখিতটি চালান
pip install toolbox-langchain
from toolbox_langchain import ToolboxClient
# Replace with your Toolbox service's URL
toolbox = ToolboxClient("https://toolbox-*****-uc.a.run.app")
tool = toolbox.load_tool("get-toy-price")
# Invoke the tool with a search text to pass as the parameter
result = tool.invoke({"description": "white plush toy"})
# Print result
print(result)
- আপনি এই মত ফলাফল করা উচিত:
এই টুলটি একটি পাইথন অ্যাপ্লিকেশনে স্পষ্টভাবে আহ্বান করা হচ্ছে যা টুলকিট toolbox-langchain
ব্যবহার করে .
- আপনি যদি এই টুলটি ব্যবহার করতে চান এবং এটিকে একটি ল্যাংগ্রাফ ইন্টিগ্রেটেড অ্যাপ্লিকেশনের মধ্যে একটি এজেন্টের সাথে আবদ্ধ করতে চান, তাহলে আপনি
langgraph
টুলকিটের মাধ্যমে এটি সহজেই করতে পারেন। - এর জন্য কোড স্নিপেট পড়ুন।
11. ক্লাউডে নিয়ে যাও!!!
আসুন এই পাইথন কোড স্নিপেটটিকে একটি ক্লাউড রান ফাংশনে মোড়ানো যাক যাতে এটি সার্ভারহীন হয়!
- ক্লাউড ফাংশনে এটি পাওয়ার জন্য কোড রেপো ফোল্ডার থেকে উত্সটি অনুলিপি করুন।
- ক্লাউড রান ফাংশন কনসোলে যান এবং ফাংশন তৈরি করুন ক্লিক করুন।
- ডেমো অ্যাপ্লিকেশনের জন্য এটিকে অনুমোদনহীন রাখুন এবং পরবর্তী পৃষ্ঠায় Python 3.11 রানটাইম নির্বাচন করুন।
- ধাপ 1-এ শেয়ার করা সোর্স রেপো থেকে
main.py
এবংrequirements.txt
ফাইলগুলি কপি করুন এবং সংশ্লিষ্ট ফাইলগুলিতে পেস্ট করুন৷ - ফাংশনটি স্থাপন করুন এবং আপনি টয়স্টোর ওয়েব অ্যাপ্লিকেশনে অ্যাক্সেস করার জন্য মূল্য পূর্বাভাস টুলের জন্য একটি REST শেষ পয়েন্ট পেয়েছেন।
- আপনার শেষ পয়েন্ট এই মত দেখতে হবে:
https://us-central1-*****.cloudfunctions.net/toolbox-toys
- আপনি টেস্টিং ট্যাবে নেভিগেট করে এবং অনুরোধ ইনপুট হিসাবে নিম্নলিখিতটি প্রবেশ করে সরাসরি ক্লাউড ফাংশন কনসোলে এটি পরীক্ষা করতে পারেন:
{
"`search`"`:` "`White plush toy`"
}
- ফাংশন পরীক্ষা করুন ক্লিক করুন বা ক্লাউড শেল টার্মিনালে আপনি যা ব্যবহার করতে চান তা চালান। আপনার "আউটপুট" শিরোনামের অধীনে ডানদিকে ফলাফলটি দেখতে হবে:
12. অভিনন্দন
অভিনন্দন! আপনি সফলভাবে একটি শক্তিশালী এবং সত্যিকারের মডুলার টুল তৈরি করেছেন যা আপনার এজেন্টিক অ্যাপ্লিকেশন তৈরি করতে সাহায্য করার জন্য ডেটাবেস, প্ল্যাটফর্ম এবং জেনারেটিভ এআই অর্কেস্ট্রেশন ফ্রেমওয়ার্ক জুড়ে ইন্টারঅ্যাক্ট করতে পারে।