1. সংক্ষিপ্ত বিবরণ
আজকাল AI দিয়ে নির্মাণ কোথা থেকে শুরু হয়? আমাদের বেশিরভাগের ক্ষেত্রেই প্রায়শই একটি সহজ প্রশ্ন দিয়ে শুরু হয়, "এই মডেল কি আসলেই আমার এই সমস্যা সমাধানে সাহায্য করতে পারে?"। ঠিক এখানেই Google AI Studio আসে। এটি এমন একটি জায়গা যেখানে আপনি দ্রুত যেকোনো কিছু প্রোটোটাইপ করতে পারেন। আমি আমার রান্নাঘর পুনর্নির্মাণ করতে চাইছিলাম এবং আমি নিশ্চিত যে জেমিনি সাহায্য করতে পারবে - কিন্তু আমি একজন প্রকৌশলী, সাধারণ ঠিকাদার নই। আমি নিশ্চিত নই যে কী চাইব - বিবেচনা করার মতো অনেক কিছু আছে: নিয়মকানুন, ফিক্সচার ইত্যাদি। তাহলে আসুন এটি ভেঙে ফেলি এবং জেমিনি আমাদের জন্য একটি অতি বিস্তারিত প্রম্পট তৈরি করতে বলি, তারপর একটি সম্পূর্ণ সংস্কার পরিকল্পনা তৈরি করি এবং পুনর্নির্মাণটি কল্পনা করি! কিন্তু অপেক্ষা করুন। এখান থেকে আমি আসলে কীভাবে ব্যবসাগুলিকে স্কেল করতে সাহায্য করতে পারি? AGENTS লিখুন!!!
এজেন্ট হলো একটি স্বায়ত্তশাসিত প্রোগ্রাম যা একটি AI মডেলের সাথে কথা বলে লক্ষ্য-ভিত্তিক ক্রিয়াকলাপ সম্পাদন করে তার কাছে থাকা সরঞ্জাম এবং প্রেক্ষাপট ব্যবহার করে এবং সত্যের উপর ভিত্তি করে স্বায়ত্তশাসিত সিদ্ধান্ত গ্রহণে সক্ষম!
এজেন্ট ডেভেলপমেন্ট কিট (ADK)
এজেন্ট ডেভেলপমেন্ট কিট (ADK) হল AI এজেন্ট তৈরি এবং স্থাপনের জন্য একটি নমনীয় এবং মডুলার কাঠামো। ADK একাধিক, স্বতন্ত্র এজেন্ট ইনস্ট্যান্সকে একটি মাল্টি-এজেন্ট সিস্টেম (MAS) এ সংকলন করে অত্যাধুনিক অ্যাপ্লিকেশন তৈরিতে সহায়তা করে।
ADK-তে, একটি মাল্টি-এজেন্ট সিস্টেম হল এমন একটি অ্যাপ্লিকেশন যেখানে বিভিন্ন এজেন্ট, প্রায়শই একটি শ্রেণিবিন্যাস গঠন করে, একটি বৃহত্তর লক্ষ্য অর্জনের জন্য সহযোগিতা বা সমন্বয় করে। এইভাবে আপনার অ্যাপ্লিকেশন গঠন করা উল্লেখযোগ্য সুবিধা প্রদান করে, যার মধ্যে রয়েছে বর্ধিত মডুলারিটি, বিশেষীকরণ, পুনঃব্যবহারযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা এবং ডেডিকেটেড ওয়ার্কফ্লো এজেন্ট ব্যবহার করে কাঠামোগত নিয়ন্ত্রণ প্রবাহ সংজ্ঞায়িত করার ক্ষমতা।
তুমি কী তৈরি করবে
আমাদের প্রোটোটাইপ PROMPT থেকে এজেন্ট তৈরিতে যেতে প্রস্তুত??? রান্নাঘর সংস্কার প্রকল্পের প্রস্তাবনা নথি তৈরিতে সাহায্য করার জন্য আমরা একজন এজেন্ট তৈরি করব। এই ল্যাবের অংশ হিসেবে, আপনি:
- ADK দিয়ে সংস্কার প্রস্তাবনা নথি তৈরি করার জন্য একটি সহজ এজেন্ট তৈরি করুন
- তৈরি করা সংস্কার প্রস্তাবের নথিটি একটি ক্লাউড স্টোরেজ বাকেটে সংরক্ষণ করুন।
- ক্লাউড শেল এবং এজেন্ট ওয়েব আউটপুটে এজেন্ট পরীক্ষা করুন
আবশ্যকতা
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- বিলিং সক্ষম করা একটি Google ক্লাউড প্রকল্প।
2. শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং সক্ষম আছে কিনা তা নিশ্চিত করুন। কোনও প্রোজেক্টে বিলিং সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন তা শিখুন।
- এছাড়াও যদি আপনি এটি পড়ছেন এবং গুগল ক্লাউড শুরু করতে এবং ADK ব্যবহার করতে সাহায্য করার জন্য কিছু ক্রেডিট পেতে চান, তাহলে ক্রেডিট রিডিম করতে এই লিঙ্কটি ব্যবহার করুন।
- আপনি এটি রিডিম করতে এখানে দেওয়া নির্দেশাবলী অনুসরণ করতে পারেন। অনুগ্রহ করে মনে রাখবেন যে রিডিম করার জন্য এই লিঙ্কটি শুধুমাত্র ১৫ জুলাই, ২০২৫ পর্যন্ত বৈধ।
- এই লিঙ্কে ক্লিক করে ক্লাউড শেল সক্রিয় করুন। আপনি ক্লাউড শেল থেকে সংশ্লিষ্ট বোতামে ক্লিক করে ক্লাউড শেল টার্মিনাল (ক্লাউড কমান্ড চালানোর জন্য) এবং এডিটর (প্রকল্প তৈরির জন্য) এর মধ্যে টগল করতে পারেন।
- ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা করতে পারবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণপ্রাপ্ত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে কিনা:
gcloud auth list
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- যদি আপনার প্রকল্পটি সেট না করা থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
- পাইথন ৩.৯+ আছে কিনা তা নিশ্চিত করুন।
অন্যান্য gcloud কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন দেখুন।
৩. প্রোটোটাইপ
গুগল এআই স্টুডিওতে যান। আপনার প্রম্পট টাইপ করা শুরু করুন। আমার প্রম্পটটি এখানে:
I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.
সর্বোত্তম প্রতিক্রিয়া পেতে ডানদিকের প্যারামিটারগুলি সামঞ্জস্য করুন এবং কনফিগার করুন।
এই সহজ বর্ণনার উপর ভিত্তি করে, জেমিনি আমাকে আমার সংস্কার শুরু করার জন্য একটি অবিশ্বাস্যভাবে বিস্তারিত প্রম্পট দিয়েছে! বাস্তবে, আমরা এআই স্টুডিও এবং আমাদের মডেলগুলি থেকে আরও ভাল প্রতিক্রিয়া পেতে জেমিনি ব্যবহার করছি। আপনার ব্যবহারের ক্ষেত্রের উপর ভিত্তি করে আপনি বিভিন্ন মডেল ব্যবহার করতে পারেন।
আমরা জেমিনি ২.৫ প্রো বেছে নিয়েছি। এটি একটি থিংকিং মডেল, যার অর্থ হল আমরা আরও বেশি আউটপুট টোকেন পাব, এই ক্ষেত্রে দীর্ঘ-ফর্ম বিশ্লেষণ এবং বিস্তারিত ডকুমেন্টের জন্য ৬৫,০০০ টোকেন পর্যন্ত। জেমিনি ২.৫ প্রো সক্ষম করলে জেমিনি থিংকিং বক্সটি আসে যার নেটিভ রিজনিং ক্ষমতা রয়েছে এবং দীর্ঘ প্রসঙ্গ অনুরোধ গ্রহণ করতে পারে।
নীচের প্রতিক্রিয়ার স্নিপেটটি দেখুন:

এআই স্টুডিও আমার তথ্য বিশ্লেষণ করে ক্যাবিনেট, কাউন্টারটপ, ব্যাকস্প্ল্যাশ, মেঝে, সিঙ্ক, সমন্বয়, রঙ প্যালেট এবং উপাদান নির্বাচনের মতো সমস্ত জিনিস তৈরি করেছে। জেমিনি এমনকি সূত্রের উদ্ধৃতিও দিচ্ছে!
এবার ভিন্ন প্রম্পটের মাধ্যমে ধারণাটিকে বাস্তবে রূপ দেওয়ার চেষ্টা করুন।
- এই প্রম্পটটি কপি করে প্রম্পট এডিটরে পেস্ট করুন:
Add flat and circular light accessories above the island area for my current kitchen in the attached image.
- আপনার বর্তমান রান্নাঘরের একটি ছবি সংযুক্ত করুন (অথবা আপনি আমার নমুনা রান্নাঘরের ছবি ব্যবহার করতে পারেন)।
- মডেলটি "জেমিনি ২.০ ফ্ল্যাশ প্রিভিউ ইমেজ জেনারেশন" এ পরিবর্তন করুন যাতে আপনার ছবি তৈরি করার সুযোগ থাকে।
আমি এই আউটপুটটি পেয়েছি:

এটাই মিথুন রাশির শক্তি!
ভিডিও বোঝা থেকে শুরু করে নেটিভ ইমেজ জেনারেশন, গুগল সার্চের মাধ্যমে প্রকৃত তথ্য সংগ্রহ - এমন কিছু জিনিস আছে যা কেবল জেমিনি দিয়েই তৈরি করা যেতে পারে।
AI স্টুডিও থেকে, আপনি এই প্রোটোটাইপটি নিতে পারেন, API কীটি ধরে ফেলতে পারেন এবং Vertex AI ADK এর শক্তি ব্যবহার করে এটিকে একটি সম্পূর্ণ এজেন্টিক অ্যাপ্লিকেশনে রূপান্তর করতে পারেন।
৪. ADK সেটআপ
এবার "Before you begin" বিভাগে আমরা যে ক্লাউড শেল টার্মিনালটি সক্রিয় করেছি তাতে যাওয়া যাক:
- ভার্চুয়াল পরিবেশ তৈরি এবং সক্রিয় করুন (প্রস্তাবিত)
আপনার ক্লাউড শেল টার্মিনাল থেকে, একটি ভার্চুয়াল পরিবেশ তৈরি করুন:
python -m venv .venv
ভার্চুয়াল পরিবেশ সক্রিয় করুন:
source .venv/bin/activate
- ADK ইনস্টল করুন
pip install google-adk
৫. প্রকল্প কাঠামো
- ক্লাউড শেল টার্মিনাল থেকে, আপনার পছন্দসই প্রকল্পের স্থানে আপনার এজেন্টিক অ্যাপগুলির জন্য একটি রুট ডিরেক্টরি তৈরি করুন:
mkdir agentic-apps
- মূল ডিরেক্টরির ভিতরে, আমাদের বর্তমান প্রকল্পের জন্য নির্দিষ্ট একটি ফোল্ডার তৈরি করুন:
mkdir renovation-agent
- ক্লাউড শেল এডিটরে যান এবং ফাইলগুলি তৈরি করে নিম্নলিখিত প্রকল্প কাঠামো তৈরি করুন (শুরুতে খালি):
renovation-agent/
__init__.py
agent.py
requirements.txt
.env
6. সোর্স কোড
- " init .py" এ যান এবং নিম্নলিখিত কন্টেন্ট দিয়ে আপডেট করুন:
from . import agent
- agent.py এ যান এবং নিম্নলিখিত পথ থেকে নিম্নলিখিত বিষয়বস্তু সহ ফাইলটি আপডেট করুন:
agent.py তে, আমরা প্রয়োজনীয় নির্ভরতা আমদানি করি, .env ফাইল থেকে কনফিগারেশন প্যারামিটারগুলি পুনরুদ্ধার করি এবং root_agent সংজ্ঞায়িত করি যা একটি প্রস্তাবনা নথি তৈরি করে এবং এটি একটি ক্লাউড স্টোরেজ বাকেটে সংরক্ষণ করে। ক্লাউড স্টোরেজ ধাপটি করার জন্য, আমরা store_pdf নামক একটি টুল ব্যবহার করি।
দ্রষ্টব্য: বর্তমানে PDF টি ফর্ম্যাট করা নেই! কমিউনিটি ডেভেলপারের PR এর উপর ভিত্তি করে , নিম্নলিখিত স্নিপেটটি এখানে অন্তর্ভুক্ত করা হয়েছে [পরীক্ষিত নয়], store_pdf পদ্ধতির মধ্যে এটি অন্তর্ভুক্ত করতে দ্বিধা করবেন না:
doc = SimpleDocTemplate(
pdf_buffer,
pagesize=letter,
rightMargin=0.75 * inch,
leftMargin=0.75 * inch,
topMargin=0.75 * inch,
bottomMargin=0.75 * inch
)
styles = getSampleStyleSheet()
story = []
# --- CUSTOM STYLES FOR HEADERS ---
# Define a new style for section headers
styles.add(ParagraphStyle(name='SectionHeader',
parent=styles['Normal'],
fontName='Helvetica-Bold', # Make it bolder
fontSize=14, # Make it slightly larger
leading=16, # Line spacing
spaceAfter=0.15 * inch, # Space after the header
spaceBefore=0.25 * inch, # Space before the header
textColor=black # Ensure color is bright/black (default is usually black, but explicit is good)
))
# Define a style for the main document title
styles.add(ParagraphStyle(name='DocumentTitle',
parent=styles['Normal'],
fontName='Helvetica-Bold',
fontSize=20,
leading=24,
spaceAfter=0.25 * inch,
alignment=TA_CENTER, # Center align the title
textColor=black
))
# ---------------------------------
paragraphs_raw = pdf_text.split('\n\n')
# Heuristic for the garbled line issue (as before, temporary)
if paragraphs_raw and len(paragraphs_raw[-1]) < 50 and any(char in paragraphs_raw[-1] for char in ['io', 'og', 'al', 'op']):
logger.warning("Detected potentially garbled last paragraph. Attempting to trim/omit.")
paragraphs_raw[-1] = "11. Entire Agreement:\nThis proposal constitutes the entire agreement between the parties and supersedes all prior discussions and agreements."
for i, para_text in enumerate(paragraphs_raw):
para_text = para_text.strip()
if not para_text:
continue
# Special handling for the main document title (PROPOSAL DOCUMENT)
if i == 0 and "PROPOSAL DOCUMENT" in para_text.upper():
p = Paragraph("PROPOSAL DOCUMENT", styles['DocumentTitle'])
story.append(p)
story.append(Spacer(1, 0.15 * inch)) # Add space after the title
# Skip the rest of this initial block if it's just the title
remaining_text_lines = para_text.splitlines()[1:]
if remaining_text_lines:
formatted_text = "<br/>".join(remaining_text_lines)
p = Paragraph(formatted_text, styles['Normal'])
story.append(p)
story.append(Spacer(1, 0.1 * inch))
continue # Move to the next paragraph
# Check if the paragraph looks like a section header (e.g., starts with a number and dot or just bold text)
# This is a heuristic and might need fine-tuning based on actual proposal content variability.
is_section_header = False
# Check for numbered sections (e.g., "1. Scope of Work:")
if para_text.startswith(('1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.')):
is_section_header = True
# Check for Exhibit headers (e.g., "Exhibit A: Cabinet Design") or Roman numeral headings
elif para_text.startswith(('Exhibit ', 'I.', 'II.', 'III.', 'IV.', 'V.', 'VI.', 'VII.')):
is_section_header = True
# Check for specific known headers
elif para_text.strip().upper() in ["IN WITNESS WHEREOF,", "EXHIBITS:"]:
is_section_header = True
if is_section_header:
p = Paragraph(para_text, styles['SectionHeader'])
story.append(p)
# No additional Spacer here, as SectionHeader style has spaceAfter
else:
formatted_text = para_text.replace('\n', '<br/>')
p = Paragraph(formatted_text, styles['Normal'])
story.append(p)
story.append(Spacer(1, 0.1 * inch)) # Standard space after body paragraphs
doc.build(story)
pdf_buffer.seek(0)
# Upload the PDF to GCS
storage_client = storage.Client()
bucket = storage_client.bucket(STORAGE_BUCKET)
blob = bucket.blob(PROPOSAL_DOCUMENT_FILE_NAME)
blob.upload_from_file(pdf_buffer, content_type="application/pdf")
logger.info(f"Successfully uploaded PDF to gs://{STORAGE_BUCKET}/{PROPOSAL_DOCUMENT_FILE_NAME}")
except Exception as e:
logger.error(f"Error writing text to PDF and uploading: {e}")
raise
finally:
if 'pdf_buffer' in locals():
pdf_buffer.close()
return "Successfully uploaded PDF to GCS!!"
- নিশ্চিত করুন যে আপনার কাছে ক্লাউড স্টোরেজ বাকেট আছে।
এটি এজেন্ট কর্তৃক তৈরি করা প্রস্তাবনা নথি সংরক্ষণ করার জন্য। এটি তৈরি করুন এবং অ্যাক্সেসের ব্যবস্থা করুন যাতে Vertex AI দিয়ে আমরা যে এজেন্টিক সিস্টেম তৈরি করি তা এটি অ্যাক্সেস করতে পারে। আপনি এটি কীভাবে করতে পারেন তা এখানে দেওয়া হল:
https://cloud.google.com/storage/docs/creating-buckets#console
তোমার বাকেটের নাম দাও " next-demo-store "। যদি তুমি এর নাম অন্য কিছু রাখো, তাহলে .env ফাইলে (ENV ভেরিয়েবল সেটআপ ধাপে) STORAGE_BUCKET এর মান আপডেট করতে ভুলো না।
- বাকেট অ্যাক্সেস সেট আপ করতে, ক্লাউড স্টোরেজ কনসোল এবং আপনার স্টোরেজ বাকেট-এ যান (আমাদের ক্ষেত্রে বাকেটের নাম "next-demo-storage": https://console.cloud.google.com/storage/browser/next-demo-storage )।
Permissions -> View Principals -> Grant Access-এ নেভিগেট করুন। "allUsers" হিসেবে Principals এবং "Storage Object User" হিসেবে Role নির্বাচন করুন।
Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
- নির্ভরতা তালিকা তৈরি করুন
requirements.txt- এ সমস্ত নির্ভরতা তালিকাভুক্ত করুন। আপনি এটি repo থেকে কপি করতে পারেন।
একক এজেন্ট সিস্টেম সোর্স কোড ব্যাখ্যা
agent.py ফাইলটি এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে আমাদের রান্নাঘর সংস্কার মাল্টি-এজেন্ট সিস্টেমের গঠন এবং আচরণ সংজ্ঞায়িত করে। আসুন মূল উপাদানগুলি ভেঙে ফেলা যাক:
এজেন্ট সংজ্ঞা
রুট এজেন্ট (অর্কেস্ট্রেটর): প্রস্তাব_এজেন্ট
root_agent এই একক-এজেন্ট সিস্টেমের অর্কেস্ট্রেটর হিসেবে কাজ করে। এটি প্রাথমিক সংস্কার অনুরোধ গ্রহণ করে এবং অনুরোধের চাহিদার উপর ভিত্তি করে কোন সরঞ্জামগুলি ব্যবহার করতে হবে তা নির্ধারণ করে।
root_agent তারপর টুলগুলি থেকে প্রতিক্রিয়া সংগ্রহ করে এবং ব্যবহারকারীকে একটি বিস্তৃত প্রতিক্রিয়া প্রদানের জন্য সেগুলিকে একত্রিত করে। এই ক্ষেত্রে আমাদের কাছে কেবল একটি টুল আছে "store_pdf"।
৭. তথ্য প্রবাহ এবং মূল ধারণা
ব্যবহারকারী ADK ইন্টারফেসের মাধ্যমে (টার্মিনাল অথবা ওয়েব UI) একটি অনুরোধ শুরু করেন।
- অনুরোধটি রুট_এজেন্ট দ্বারা গৃহীত হয়েছে।
- রুট_এজেন্ট অনুরোধটি বিশ্লেষণ করে এবং প্রয়োজন অনুসারে এটিকে টুলে পাঠায়।
- "store_pdf" টুলটি পুনর্নবীকরণ করা টেক্সট কন্টেন্টকে একটি PDF ফাইলে লেখার জন্য ডিজাইন করা হয়েছে, তারপর এটি Google Cloud Storage-এ আপলোড করা হবে।
- এটি তারপর root_agent-এর প্রতিক্রিয়া ফেরত দেয়।
- root_agent প্রতিক্রিয়াগুলিকে একত্রিত করে এবং ব্যবহারকারীকে একটি চূড়ান্ত আউটপুট প্রদান করে।
এলএলএম (বৃহৎ ভাষার মডেল)
এজেন্টরা টেক্সট তৈরি করতে, প্রশ্নের উত্তর দিতে এবং যুক্তির কাজ সম্পাদন করতে LLM-এর উপর প্রচুর নির্ভর করে। ব্যবহারকারীর অনুরোধ বোঝার এবং সাড়া দেওয়ার জন্য এজেন্টদের ক্ষমতার পিছনে LLM হল "মস্তিষ্ক"। আমরা এই অ্যাপ্লিকেশনটিতে Gemini 2.5 ব্যবহার করছি।
গুগল ক্লাউড স্টোরেজ
তৈরি করা সংস্কার প্রস্তাবের নথি সংরক্ষণ করতে ব্যবহৃত হয়। আপনাকে একটি বালতি তৈরি করতে হবে এবং এজেন্টদের এটি অ্যাক্সেস করার জন্য প্রয়োজনীয় অনুমতি দিতে হবে।
ক্লাউড রান (ঐচ্ছিক)
OrderingAgent AlloyDB-এর সাথে ইন্টারফেস করার জন্য একটি Cloud Run ফাংশন ব্যবহার করে। ক্লাউড রান HTTP অনুরোধের প্রতিক্রিয়ায় কোড কার্যকর করার জন্য একটি সার্ভারহীন পরিবেশ প্রদান করে।
অ্যালয়ডিবি
আপনি যদি OrderingAgent ব্যবহার করেন, তাহলে অর্ডারের তথ্য সংরক্ষণের জন্য আপনাকে একটি AlloyDB ডাটাবেস সেট আপ করতে হবে।
.env ফাইল
.env ফাইলটি API কী, ডাটাবেস ক্রেডেনশিয়াল এবং বাকেট নামের মতো সংবেদনশীল তথ্য সংরক্ষণ করে। এই ফাইলটিকে সুরক্ষিত রাখা এবং এটি আপনার সংগ্রহস্থলে জমা না করা অত্যন্ত গুরুত্বপূর্ণ। এটি এজেন্ট এবং আপনার Google ক্লাউড প্রকল্পের জন্য কনফিগারেশন সেটিংসও সংরক্ষণ করে। root_agent বা সহায়ক ফাংশনগুলি সাধারণত এই ফাইল থেকে মানগুলি পড়বে। নিশ্চিত করুন যে সমস্ত প্রয়োজনীয় ভেরিয়েবল .env ফাইলে সঠিকভাবে সেট করা আছে। এর মধ্যে ক্লাউড স্টোরেজ বাকেটের নাম অন্তর্ভুক্ত রয়েছে।
৮. মডেল সেটআপ
আপনার এজেন্টের ব্যবহারকারীর অনুরোধ বোঝার এবং প্রতিক্রিয়া তৈরি করার ক্ষমতা একটি লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) দ্বারা চালিত। আপনার এজেন্টকে এই বহিরাগত LLM পরিষেবাতে নিরাপদ কল করতে হবে, যার জন্য প্রমাণীকরণ শংসাপত্রের প্রয়োজন। বৈধ প্রমাণীকরণ ছাড়া, LLM পরিষেবা এজেন্টের অনুরোধগুলি অস্বীকার করবে এবং এজেন্ট কাজ করতে অক্ষম হবে।
- গুগল এআই স্টুডিও থেকে একটি API কী পান।
- পরবর্তী ধাপে যেখানে আপনি .env ফাইলটি সেট আপ করবেন,
<<your API KEY>>আপনার প্রকৃত API KEY মান দিয়ে প্রতিস্থাপন করুন।
9. ENV ভেরিয়েবল সেটআপ
- এই রেপোতে টেমপ্লেট .env ফাইলের প্যারামিটারগুলির জন্য আপনার মানগুলি সেট করুন। আমার ক্ষেত্রে, .env-এর এই ভেরিয়েবলগুলি রয়েছে:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION = us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT = <<your project id>>
PROJECT_ID = <<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET = next-demo-store <<or your storage bucket name>>
স্থানধারকগুলিকে আপনার মান দিয়ে প্রতিস্থাপন করুন।
১০. আপনার এজেন্ট চালান
- টার্মিনাল ব্যবহার করে, আপনার এজেন্ট প্রকল্পের মূল ডিরেক্টরিতে যান:
cd agentic-apps/renovation-agent
- সমস্ত নির্ভরতা ইনস্টল করুন
pip install -r requirements.txt
- এজেন্টটি কার্যকর করতে আপনি আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
adk run .
- ADK প্রভিশনড ওয়েব UI তে এটি চালানোর জন্য আপনি নিম্নলিখিতগুলি চালাতে পারেন:
দ্রষ্টব্য: আপনাকে আপনার এজেন্ট প্রজেক্ট ফোল্ডারের বাইরে থেকে এই কমান্ডটি চালাতে হবে এবং এর এক ধাপ বাইরে গিয়ে এটি চালাতে হবে:
adk web
- নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে পরীক্ষা করুন:
user>>
Hello. Generate Proposal Document for the kitchen remodel requirement in a proper format that applies to a renovation contract. Remember this text will eventually be stored as a pdf file so make sure to have the formatting appropriate. I have no other specification.
১১. ফলাফল
adk run কমান্ডের জন্য ফলাফল নিম্নরূপ"
![2703603a907329ae.png - [অনলাইন].](https://codelabs.developers.google.com/static/your-first-agent-with-adk/img/2703603a907329ae.png?hl=bn)

...

ক্লাউড স্টোরেজ বাকেটে সংস্কার প্রস্তাবনা ডকুমেন্ট তৈরি করা হলে আপনি যাচাই করতে পারবেন।
১২. ক্লাউড রানে স্থাপন করুন
- প্রজেক্ট রুট ফোল্ডারের ভিতরে Dockerfile নামে একটি ফাইল তৈরি করুন:
cd agentic-apps/renovation-agent
- গিটহাব রেপো থেকে কন্টেন্ট কপি করুন
https://github.com/AbiramiSukumaran/adk-renovation-single-agent/blob/main/Dockerfile
এই ডকারফাইল ফাইলে।
- নিম্নলিখিত কমান্ড ব্যবহার করে ক্লাউড রানে স্থাপন করুন:
adk deploy cloud_run --project=abis-345004 --region=us-central1 --service_name=renovation-agent --app_name=renovation-app --with_ui .
ব্যস, এটা স্থাপন হয়ে গেলে, টার্মিনালে আপনার এন্ডপয়েন্টটি দেখতে পাবেন যা আপনার ব্যবহারের জন্য প্রস্তুত।
১৩. পরিষ্কার করা
এই পোস্টে ব্যবহৃত রিসোর্সের জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- গুগল ক্লাউড কনসোলে, রিসোর্স পরিচালনা পৃষ্ঠায় যান।
- প্রকল্পের তালিকায়, আপনি যে প্রকল্পটি মুছতে চান তা নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
- ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন, এবং তারপর প্রজেক্টটি মুছে ফেলতে Shut down এ ক্লিক করুন।
১৪. অভিনন্দন
অভিনন্দন! আপনি ADK ব্যবহার করে আপনার মাল্টি-এজেন্ট অ্যাপটি সফলভাবে তৈরি করেছেন এবং এর সাথে ইন্টারঅ্যাক্ট করেছেন! মাল্টি-এজেন্ট সিস্টেমটি প্রস্তাব তৈরি, পারমিট চেকিং এবং অর্ডার স্ট্যাটাস ট্র্যাকিংয়ের মতো কাজগুলিকে স্বয়ংক্রিয় করে রান্নাঘর সংস্কার প্রক্রিয়াটিকে সহজতর করার জন্য ডিজাইন করা হয়েছে। প্রতিটি এজেন্টের একটি নির্দিষ্ট ভূমিকা থাকে এবং root_agent একটি বিস্তৃত সমাধান প্রদানের জন্য তাদের কার্যকলাপ সমন্বয় করে। সিস্টেমটি তার কার্যকারিতা প্রদানের জন্য LLM, Google ক্লাউড পরিষেবা এবং সম্ভাব্য বহিরাগত API ব্যবহার করে। পণ্য ডকুমেন্টেশনের একটি লিঙ্ক এখানে দেওয়া হল।