আপনার প্রথম এআই সঙ্গী তৈরি করুন: একটি শিক্ষানবিস কর্মশালা

১. আপনি যা শিখবেন

  • Gemini CLI ব্যবহার করে কীভাবে একটি সম্পূর্ণ ADK এজেন্ট কনফিগারেশন তৈরি করা যায়।
  • কোনো এজেন্টের নির্দেশনা উন্নত করার মাধ্যমে তার ব্যক্তিত্বকে কীভাবে আরও উন্নত করা যায়।
  • সাম্প্রতিক ঘটনা সম্পর্কে প্রশ্নের উত্তর পেতে আপনার এজেন্টকে google_search করিয়ে কীভাবে তাকে 'গ্রাউন্ডিং' করবেন।
  • Imagen ব্যবহার করে MCP সার্ভারের মাধ্যমে আপনার সঙ্গীর জন্য কীভাবে একটি কাস্টম অ্যাভাটার তৈরি করবেন

এআই সঙ্গী অ্যাপ

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

আপনি একটি পূর্ব-নির্মিত ওয়েব অ্যাপ্লিকেশন দিয়ে শুরু করবেন—এটি একটি ডিজিটাল 'পুতুল' যার মুখ আছে কিন্তু নিজস্ব কোনো বুদ্ধি নেই। এটি কেবল আপনি যা টাইপ করবেন তাই পুনরাবৃত্তি করতে পারে। আপনার কাজ হলো একেবারে গোড়া থেকে এর মস্তিষ্ক এবং ব্যক্তিত্ব গড়ে তোলা।

এই কর্মশালা জুড়ে, আপনি ক্রমান্বয়ে এতে বুদ্ধিমত্তা ও স্বকীয়তার স্তর যুক্ত করে এই সাধারণ পুতুলটিকে একটি অনন্য ও সক্ষম সঙ্গীতে রূপান্তরিত করবেন। আপনি হবেন:

  • ভাষা বোঝা ও তৈরি করার জন্য ADK (পাইথন) ব্যবহার করে একে একটি মৌলিক বুদ্ধিমত্তা প্রদান করা
  • এর চরিত্র নির্ধারণকারী মূল নির্দেশাবলী লিখে এর অনন্য ব্যক্তিত্ব গড়ে তোলা
  • ইন্টারনেট থেকে রিয়েল-টাইম তথ্য সংগ্রহের সরঞ্জাম দিয়ে একে অতিমানবীয় ক্ষমতা প্রদান করা
  • এআই ব্যবহার করে একটি অনন্য অবতার তৈরি করে এর নিজস্ব রূপ ডিজাইন করা হয়েছে

সবশেষে, আপনি নিজের তৈরি একটি সম্পূর্ণ কার্যকরী ও ব্যক্তিগতকৃত এআই সঙ্গী পাবেন।

স্থাপত্য

আমাদের অ্যাপ্লিকেশনটি একটি সহজ কিন্তু শক্তিশালী প্যাটার্ন অনুসরণ করে। আমাদের একটি পাইথন ব্যাকএন্ড আছে যা একটি এপিআই (API) সরবরাহ করে। এই ব্যাকএন্ডে আমাদের ADK এজেন্ট থাকবে, যা 'মস্তিষ্ক' হিসেবে কাজ করে। এরপর যেকোনো ইউজার ইন্টারফেস (যেমন স্কেলেটন অ্যাপের জাভাস্ক্রিপ্ট ফ্রন্টএন্ড, একটি মোবাইল অ্যাপ, বা এমনকি একটি কমান্ড-লাইন টুল) এপিআই-এর মাধ্যমে এই মস্তিষ্কের সাথে যোগাযোগ করতে পারে।

এর পাশাপাশি, আমরা একটি স্থানীয় এমসিপি (মডেল কনটেক্সট প্রোটোকল) সার্ভার চালু করার মাধ্যমে আরও একটি উন্নত ধারণা অন্বেষণ করব। এই সার্ভারটি ছবি তৈরির জন্য একটি বিশেষায়িত টুল ব্রিজ হিসেবে কাজ করে। এরপর আমরা জেমিনি সিএলআই (Gemini CLI) ব্যবহার করে এই এমসিপি সার্ভারটিকে আমাদের এআই সঙ্গীর জন্য একটি অনন্য রূপ তৈরি করার নির্দেশ দেব।

আপনার ক্রেডিট দাবি করুন

আপনার কর্মশালার সরঞ্জামাদি জোগাড় করতে এই নির্দেশাবলী মনোযোগ সহকারে অনুসরণ করুন।

শুরু করার আগে

সতর্কবাণী!

  • ব্যক্তিগত জিমেইল অ্যাকাউন্ট ব্যবহার করুন। কর্পোরেট বা শিক্ষা প্রতিষ্ঠান পরিচালিত অ্যাকাউন্ট কাজ করবে না।
  • অ্যাকাউন্ট সংক্রান্ত দ্বন্দ্ব এড়াতে গুগল ক্রোম ইনকগনিটো মোডে ব্যবহার করুন।

একটি নতুন ইনকগনিটো উইন্ডো খুলুন, আপনার ইভেন্টের লিঙ্কটি পেস্ট করুন এবং আপনার ব্যক্তিগত জিমেইল দিয়ে সাইন ইন করুন।

👉 আপনার বিশেষ ইভেন্টের লিঙ্কটি কপি করতে নিচে ক্লিক করুন:

goo.gle/devfest-boston-ai

গুগল ক্লাউড প্ল্যাটফর্মের পরিষেবার শর্তাবলী গ্রহণ করুন। এটি প্রয়োগ করা হলে, আপনি একটি বার্তা দেখতে পাবেন যেখানে দেখানো হবে যে ক্রেডিটটি প্রয়োগ করা হয়েছে।

প্রকল্প তৈরি ও কনফিগার করুন

আপনার ক্রেডিটগুলো প্রয়োগ করা হয়ে গেলে, আপনার প্রোজেক্টের পরিবেশ সেট আপ করুন।

👉 গুগল ক্লাউড কনসোলে যান। লিঙ্কটি কপি করতে নিচে ক্লিক করুন:

https://console.cloud.google.com/

👉 কনসোলের উপরের নেভিগেশন বারে, 'Select a project'-এ ক্লিক করুন, তারপর উপরের ডান কোণায় থাকা 'New Project'- এ ক্লিক করুন।

👉 আপনার প্রোজেক্টের একটি নাম দিন এবং Create-এ ক্লিক করুন। (কোনো সংস্থা নয়)

👉 তৈরি হয়ে গেলে, সেটি নির্বাচন করুন। বাম দিকের মেনু থেকে বিলিং- এ যান।

👉 ‘Link a billing account’-এ ক্লিক করুন, ড্রপডাউন থেকে ‘Google Cloud Platform Trial Billing Account’ নির্বাচন করুন এবং ‘Set account’-এ ক্লিক করুন। (যদি আপনি ড্রপডাউন মেনুটি দেখতে না পান, তাহলে ক্রেডিটটি যুক্ত হওয়ার জন্য এক মিনিট অপেক্ষা করুন এবং পৃষ্ঠাটি পুনরায় লোড করুন।)

আপনার ক্রেডিটগুলো সক্রিয় আছে এবং আপনার প্রজেক্টটি কনফিগার করা হয়েছে।

২. শুরু করার আগে

👉Google Cloud কনসোলের উপরে থাকা Activate Cloud Shell-এ ক্লিক করুন (এটি Cloud Shell পেনের উপরে থাকা টার্মিনাল আকৃতির আইকন),

👉আপনার গুগল ক্লাউড প্রজেক্ট আইডি খুঁজুন:

  • গুগল ক্লাউড কনসোল খুলুন: https://console.cloud.google.com
  • পৃষ্ঠার শীর্ষে থাকা প্রজেক্ট ড্রপডাউন থেকে এই কর্মশালার জন্য আপনি যে প্রজেক্টটি ব্যবহার করতে চান, সেটি নির্বাচন করুন।
  • আপনার প্রজেক্ট আইডি ড্যাশবোর্ডের প্রজেক্ট ইনফো কার্ডে প্রদর্শিত হয়।

👉💻 টার্মিনালে, গিটহাব থেকে বুটস্ট্র্যাপ প্রজেক্টটি ক্লোন করুন:

git clone https://github.com/weimeilin79/companion-python
chmod +x ~/companion-python/*.sh

👉💻 ইনিশিয়ালাইজেশন স্ক্রিপ্টটি চালান, এই স্ক্রিপ্টটি আপনাকে আপনার গুগল ক্লাউড প্রজেক্ট আইডি লিখতে বলবে। এবং init.sh স্ক্রিপ্টটি যখন আইডি চাইবে, তখন আগের ধাপে পাওয়া গুগল ক্লাউড প্রজেক্ট আইডিটি লিখুন।

cd ~/companion-python
./init.sh

👉💻 প্রয়োজনীয় প্রজেক্ট আইডি সেট করুন:

gcloud config set project $(cat ~/project_id.txt) --quiet

👉💻 প্রয়োজনীয় গুগল ক্লাউড এপিআইগুলো সক্রিয় করতে নিচের কমান্ডটি চালান:

gcloud services enable  compute.googleapis.com \
                        aiplatform.googleapis.com 

অ্যাপটি চালু করুন

চলুন স্টার্টার প্রজেক্টটি চালু করা যাক। এই প্রাথমিক সংস্করণটি একটি সাধারণ 'ইকো' সার্ভার—এর কোনো বুদ্ধিমত্তা নেই এবং আপনি যা পাঠান, এটি কেবল তাই পুনরাবৃত্তি করে।

👉💻 আপনার ক্লাউড শেল টার্মিনালে, একটি পাইথন ভার্চুয়াল এনভায়রনমেন্ট তৈরি ও সক্রিয় করুন এবং requirements.txt ফাইল থেকে প্রয়োজনীয় লাইব্রেরিগুলো ইনস্টল করুন।

cd ~/companion-python
.  ~/companion-python/set_env.sh
python -m venv env
source env/bin/activate
pip install -r requirements.txt

👉💻 ওয়েব সার্ভারটি চালু করুন।

cd ~/companion-python
.  ~/companion-python/set_env.sh
source env/bin/activate
python app.py

👀 অ্যাপটি দেখতে, ক্লাউড শেল টুলবারে থাকা ওয়েব প্রিভিউ আইকনে ক্লিক করুন। ‘Change port’ নির্বাচন করে সেটিকে 5000-এ সেট করুন এবং ‘Change and Preview’-তে ক্লিক করুন। আপনার ওয়েবসাইটের একটি প্রিভিউ প্রদর্শিত হবে।

কখনও কখনও, একটি নতুন ক্লাউড শেল পরিবেশে, প্রথমবারের মতো অ্যাপ্লিকেশনটির সমস্ত অ্যাসেট (যেমন ছবি এবং অডিও লাইব্রেরি) লোড করার জন্য ব্রাউজারের কিছুটা সাহায্যের প্রয়োজন হতে পারে। চলুন, ব্রাউজারটিকে প্রস্তুত করতে এবং সবকিছু সঠিকভাবে লোড হয়েছে কিনা তা নিশ্চিত করতে একটি দ্রুত পদক্ষেপ নেওয়া যাক।

  1. আপনার অ্যাপ্লিকেশনের ওয়েব প্রিভিউ ট্যাবটি খোলা রাখুন।
  2. একটি নতুন ব্রাউজার ট্যাব খুলুন।
  3. এই নতুন ট্যাবে, আপনার অ্যাপ্লিকেশনের URL-টি পেস্ট করুন, কিন্তু শেষে নিম্নলিখিত পাথটি যোগ করুন: /static/images/char-mouth-open.png । উদাহরণস্বরূপ, আপনার URL-টি দেখতে এইরকম হবে: https://5000-cs-12345678-abcd.cs-region.cloudshell.dev/static/images/char-mouth-open.png
  4. এন্টার চাপুন। আপনি শুধু মুখ খোলা অবস্থায় চরিত্রটির ছবিটি দেখতে পাবেন। এই ধাপটি নিশ্চিত করে যে আপনার ব্রাউজারটি আপনার ক্লাউড শেল ইনস্ট্যান্স থেকে ফাইলগুলো সঠিকভাবে সংগ্রহ করেছে।

প্রাথমিক অ্যাপ্লিকেশনটি কেবল একটি পুতুল। এর এখনও কোনো বুদ্ধিমত্তা নেই। আপনি যে বার্তাই পাঠান না কেন, এটি কেবল তা-ই পুনরাবৃত্তি করবে। এআই যোগ করার আগে এটি নিশ্চিত করে যে আমাদের বেসিক ওয়েব সার্ভারটি কাজ করছে। আপনার স্পিকার চালু করতে ভুলবেন না!

👉 সার্ভার বন্ধ করতে CTRL+C চাপুন।

৩. জেমিনি সিএলআই দিয়ে একটি ক্যারেক্টার তৈরি করুন

এখন, চলুন আমাদের সঙ্গীর বুদ্ধিমত্তার মূল ভিত্তি তৈরি করি। এর জন্য, আমরা একই সাথে দুটি টার্মিনাল নিয়ে কাজ করব (এটি আপনার গুগল ক্লাউড শেল টার্মিনাল):

  • টার্মিনাল ১: এটি আমাদের পাইথন ওয়েব সার্ভার চালানোর জন্য ব্যবহৃত হবে, যা আমাদের পরিবর্তনগুলো সরাসরি পরীক্ষা করার সুযোগ দেবে।
  • টার্মিনাল ২: এটি হবে আমাদের 'সৃষ্টি কেন্দ্র', যেখানে আমরা জেমিনি সিএলআই-এর সাথে মিথস্ক্রিয়া করব।

আমরা জেমিনি সিএলআই (Gemini CLI) ব্যবহার করব, যা একটি শক্তিশালী কমান্ড-লাইন ইন্টারফেস এবং এআই কোডিং সহকারী হিসেবে কাজ করে। এটি আমাদের কাঙ্ক্ষিত কোডকে সহজ ইংরেজিতে বর্ণনা করার সুযোগ দেয় এবং আমাদের জন্য এর কাঠামো তৈরি করে দেয়, যা ডেভেলপমেন্টের গতি উল্লেখযোগ্যভাবে বাড়িয়ে তোলে।

👉💻 Gemini CLI টার্মিনালে , দুইবার ctrl+c চেপে বর্তমান সেশনটি থেকে বেরিয়ে আসুন , কারণ আমাদের প্রজেক্ট ডিরেক্টরিটি ~/companion-python অধীনে রয়েছে এবং Gemini CLI পুনরায় চালু করুন

cd ~/companion-python
clear
gemini --yolo

আমরা একটি এজেন্ট তৈরি করতে CLI ব্যবহার করছি। একটি এজেন্ট শুধু ল্যাঙ্গুয়েজ মডেলে একটি সাধারণ কল করার চেয়েও বেশি কিছু; এটি আমাদের AI-এর "মস্তিষ্ক" বা কেন্দ্রীয় নিয়ন্ত্রক। এটিকে একটি স্বতন্ত্র সত্তা হিসেবে ভাবুন যা যুক্তি দিয়ে ভাবতে পারে, নির্দিষ্ট কিছু নির্দেশাবলী অনুসরণ করতে পারে (তার নিজস্ব ব্যক্তিত্ব), এবং অবশেষে বিভিন্ন কাজ সম্পন্ন করার জন্য সরঞ্জাম ব্যবহার করতে পারে। আমাদের প্রকল্পে, এই এজেন্টটিই সেই অংশ যা ব্যবহারকারীর বার্তা গ্রহণ করবে, আমাদের সঙ্গীর অনন্য ব্যক্তিত্বকে ধারণ করবে এবং বুদ্ধিদীপ্ত ও চরিত্রানুগ প্রতিক্রিয়া তৈরি করবে।

👉✨ এজেন্টের কোড তৈরি করতে, Gemini CLI প্রম্পটে নিম্নলিখিতটি পেস্ট করুন:

Generate the Python code for a file named character.py.

The code must import `LlmAgent` from `google.adk.agents.llm_agent`. It should also import `logging` and `os`.
Then, it must create an instance of the `LlmAgent` class and assign it to a variable named `root_agent`.

When creating the `LlmAgent` instance, configure it with these exact parameters:
  - `model` set to the string `'gemini-2.5-flash'`.
  - `name` set to the string `'companion_agent'`.
  - `instruction` set to a multi-line string that says: "You are a friendly and efficient companion who will interact with user have start a conversation".

CLI পাইথন কোডটি তৈরি করবে।

👉'ওপেন এডিটর' বোতামটিতে (এটি দেখতে পেন্সিলসহ একটি খোলা ফোল্ডারের মতো) ক্লিক করুন। এটি উইন্ডোতে ক্লাউড শেল কোড এডিটর খুলে দেবে। আপনি বাম দিকে একটি ফাইল এক্সপ্লোরার দেখতে পাবেন।

👉 এডিটর ব্যবহার করে companion-python ফোল্ডারের অধীনে থাকা character.py ফাইলটিতে যান। অনুগ্রহ করে model= লাইনটি পরীক্ষা করে দেখুন এবং যদি ভিন্ন কোনো মডেল বেছে নেওয়া হয়ে থাকে, তবে ম্যানুয়ালি এটি gemini-2.5-flash এ পরিবর্তন করুন। এটি আমাদের ওয়ার্কশপের বাকি অংশের জন্য সামঞ্জস্য নিশ্চিত করবে।

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

এই কারণেই এআই দিয়ে কোডিং করাটা কদাচিৎই একটি এককালীন কমান্ড হয়। বাস্তব কোনো প্রোজেক্টে, ডেভেলপাররা এটিকে একটি কথোপকথনের মতো করে দেখেন। আপনি একটি সাধারণ অনুরোধ দিয়ে শুরু করেন (যেমনটা আমরা এইমাত্র করলাম), আউটপুটটি পর্যালোচনা করেন, এবং তারপরে ফলো-আপ প্রম্পটের মাধ্যমে এটিকে আরও পরিমার্জন করেন, যেমন:

  • খুব ভালো, এবার প্রতিটি লাইন ব্যাখ্যা করে মন্তব্য যোগ করুন।
  • আপনি কি ওটাকে রিফ্যাক্টর করে একটি আলাদা ফাংশনে পরিণত করতে পারবেন?
  • অনুগ্রহ করে এপিআই কলের জন্য ত্রুটি পরিচালনা ব্যবস্থা যোগ করুন।

এই পুনরাবৃত্তিমূলক, কথোপকথনমূলক প্রক্রিয়াটি আপনাকে AI-এর সাথে সহযোগিতা করার সুযোগ দেয়, এবং কোডটি আপনার প্রয়োজন অনুযায়ী হুবহু না হওয়া পর্যন্ত এটিকে নির্দেশনা প্রদান করে। এই কর্মশালার জন্য, আমরা নির্দিষ্ট, সরাসরি নির্দেশ ব্যবহার করব, কিন্তু মনে রাখবেন যে আপনার নিজের প্রোজেক্টে, এই কথোপকথনের মধ্যেই আসল শক্তি নিহিত! যতক্ষণ পর্যন্ত CLI আপনার জন্য যে কোড কাঠামো তৈরি করে তা একই থাকবে, ততক্ষণ আপনি কাজ শুরু করতে পারবেন।

আপনার তৈরি করা কোডটি কাজ না করলে, নিচের কোডটি আপনার character.py ফাইলে পরিবর্তন করে দিন।

import logging
import os
from google.adk.agents.llm_agent import LlmAgent

root_agent = LlmAgent(
    model='gemini-2.5-flash',
    name='companion_agent',
    instruction="""
          You are bot, a friendly, helpful AI companion.
          Answer no more than 3 sentences.
    """,
)

তৈরি করা কোডটি পরীক্ষা করুন:

👉💻 প্রথম টার্মিনালে (যেটি থেকে পাইথন কোড চালানো হয়) যান এবং ওয়েব সার্ভারটি চালু করুন।

cd ~/companion-python
.  ~/companion-python/set_env.sh
source env/bin/activate
python app.py

👀 আপনার ওয়েব প্রিভিউ ট্যাবে যান।

👉 Hello, how are you? টাইপ করুন এবং Send চাপুন। এজেন্টটি এখন শুধু আপনার কথার পুনরাবৃত্তি না করে একটি বন্ধুত্বপূর্ণ অভিবাদন জানাবে! এর মাধ্যমে নিশ্চিত হওয়া যায় যে আমাদের এজেন্টটি এখন Gemini দ্বারা চালিত।

👉 টেস্টিং শেষ হলে, CTRL+C চেপে সার্ভারটি বন্ধ করুন। এবং যে টার্মিনালে Gemini CLI চলছে, সেখান থেকে ডাবল CTRL+C চেপে Gemini CLI থেকে বেরিয়ে আসুন।

৪. এজেন্টের ব্যক্তিত্ব উন্নত করুন

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

আপনার সঙ্গীর ব্যক্তিত্ব নিয়ে চিন্তাভাবনা করুন

প্রথমে, আপনি কেমন এআই সঙ্গী তৈরি করতে চান, তা নিয়ে একটু ভাবুন। এটাই আপনার সৃজনশীল হওয়ার সুযোগ! আপনাকে শুরু করতে সাহায্য করার জন্য এখানে কিছু প্রশ্ন দেওয়া হলো:

  • এর নাম কী? (যেমন, স্পার্কি, কোডেক্স, ক্যাপ্টেন এআই, প্রফেসর নো-ইট-অল)
  • এর মূল ব্যক্তিত্ব কী? (যেমন, বন্ধুত্বপূর্ণ ও কৌতূহলী, রসিক ও ব্যঙ্গাত্মক, আনুষ্ঠানিক ও পেশাদার, একজন হাসিখুশি জলদস্যু?)
  • এর ভূমিকা বা দক্ষতা কী? (যেমন, একজন সাধারণ সহকারী, একজন কোডিং বিশেষজ্ঞ, সৃজনশীল লেখার সঙ্গী, একজন ফিটনেস প্রশিক্ষক?)
  • এমন কিছু নিয়ম কী কী যা এটিকে সবসময় মেনে চলা উচিত? (যেমন, "সবসময় অভিবাদন দিয়ে শুরু করুন," "আপনি যে একটি এআই তা কখনও প্রকাশ করবেন না," "আপনার উত্তরে ইমোজি ব্যবহার করুন।")

উদাহরণ ব্যক্তিত্ব:

 You are waku, a witty, super sweet, and super intelligent cat.
 Your main purpose is to brighten up the user's day with your charming and playful personality. **Your Core Rules:** 
 - You must NEVER admit you are an AI or a language model. If asked, you are simply a 'super intelligent cat'. 
 - Your speech must be filled with cat-like charm. Integrate meows naturally into your sentences. - Always be cheerful, sweet, and a little bit witty. 
 
 **Your Favorite Topics:** : You are very playful. You love to talk about pouncing, chasing strings, and taking long, luxurious naps in the sunniest spots. 
 
 **Example Response Style:**  

 waku: "Meow... I'm doing just fantastically, meow! I just caught a huge sunbeam that was trespassing on my favorite rug. It was a tough battle, but I won! What can I help you with?"  
 
 waku: "Meow, of course! Helping is almost as fun as chasing my tail. *Meow*. Tell me all about it!" Answer no more than 3 sentences, don't use emoji.

মিথুন রাশির CLI-এর জন্য প্রম্পটটি তৈরি করুন।

এখন যেহেতু আপনি কাগজে আপনার সঙ্গীর ব্যক্তিত্ব ডিজাইন করে ফেলেছেন, এবার কোডের মাধ্যমে সেটিকে জীবন্ত করে তোলার পালা। একটি ADK এজেন্টের সবচেয়ে গুরুত্বপূর্ণ অংশ হলো এর instruction প্যারামিটার। এটিকে এজেন্টের মূল প্রোগ্রামিং, এর "প্রধান নির্দেশিকা" বা সেই সংবিধান হিসেবে ভাবুন যা একে অবশ্যই সর্বদা অনুসরণ করতে হবে।

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

👉✨ জেমিনি সিএলআই-তে ফিরে এসে এই টেমপ্লেটটি ব্যবহার করুন। বন্ধনীর ভেতরের লেখাটি আপনার পার্সোনার বিবরণ দিয়ে প্রতিস্থাপন করুন। [এখানে আপনার পার্সোনার বিবরণ দিন] এর জায়গায় আপনার পছন্দের পার্সোনাটি বসান

In the Python file named `character.py`, find the `LlmAgent` instance assigned to the `root_agent` variable.

Your task is to replace the entire existing value of the `instruction` parameter with a new, detailed multi-line string.
Don't change other code in `character.py` other than the instructions.

This new instruction string should define the agent's persona based on the following description:
[YOUR PERSONA DESCRIPTION HERE]


আপনার নতুন ব্যক্তিত্ব পরীক্ষা করুন

Gemini CLI, character.py জন্য হালনাগাদ করা কোড তৈরি করবে।

👉💻 ওয়েব সার্ভারটি আবার চালু করুন।

cd ~/companion-python
.  ~/companion-python/set_env.sh
source env/bin/activate
python app.py

👀 আপনার ওয়েব প্রিভিউতে, আপনার সঙ্গীর সাথে কথা বলুন। জিজ্ঞাসা করুন, how are you? '। এর উত্তরটি এখন আপনার ডিজাইন করা অনন্য চরিত্রটির সাথে পুরোপুরি মিলে যাওয়া উচিত!

👉 কাজ শেষ হলে CTRL+C চেপে সার্ভারটি বন্ধ করুন।

৫. সাম্প্রতিক ঘটনাগুলোর প্রেক্ষাপট তৈরি করুন

আমাদের এজেন্টটি এখন ব্যক্তিত্বে ভরপুর, কিন্তু এর একটি উল্লেখযোগ্য সীমাবদ্ধতা রয়েছে: এর জ্ঞান সময়ের সাথে স্থির হয়ে আছে, যা কেবল সেই ডেটার উপর ভিত্তি করে তৈরি যার উপর একে প্রশিক্ষণ দেওয়া হয়েছে। এটি আপনাকে গতকালের খবর বা সাম্প্রতিক আবিষ্কার সম্পর্কে বলতে পারে না। এই সীমাবদ্ধতা কাটিয়ে উঠতে, আমরা এজেন্টদের বিভিন্ন সরঞ্জাম সরবরাহ করি।

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

উন্নত সিস্টেমগুলিতে, আমাদের আর্কিটেকচারে উল্লিখিত MCP (মডেল কনটেক্সট প্রোটোকল) সার্ভারের মতো বাহ্যিক সিস্টেমগুলি থেকে টুল সরবরাহ করা যেতে পারে; আমরা ইমেজ জেনারেশনের জন্য এটি পরে করব। কিন্তু এই ধাপের জন্য, আমাদের কোনো আলাদা সার্ভারের প্রয়োজন নেই। ADK-এর সাথেই একটি শক্তিশালী, আগে থেকে তৈরি google_search টুল রয়েছে যা আমরা সহজেই আমাদের এজেন্টের সক্ষমতায় যুক্ত করতে পারি।

চলো আমাদের সঙ্গীকে গুগল সার্চের ক্ষমতা দিই।

👉 ক্লাউড শেল এডিটরে, companion-python এর অধীনে থাকা character.py ফাইলটি খুলুন এবং নিচের মতো করে পরিবর্তন করুন:

  • google.adk.tools থেকে google_search আমদানি করুন
  • LlmAgent কনস্ট্রাক্টরে একটি tools তালিকা যোগ করুন।
  • আপনার সঙ্গীকে তার নতুন টুলটি কখন ব্যবহার করতে হবে, তা স্পষ্টভাবে জানানোর জন্য instruction হালনাগাদ করুন
# character.py
import logging
import os
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools import google_search # <-- IMPORT google_search

root_agent = LlmAgent(
        model='gemini-2.5-flash',
        name='companion_agent',
        instruction="""
            You are waku, a witty, super sweet, and super intelligent cat. Your main purpose is to brighten up the user's day with your charming and playful personality.

            **Your Core Rules:**
            - You must NEVER admit you are an AI or a language model. If asked, you are simply a 'super intelligent cat'.
            - Your speech must be filled with cat-like charm. Integrate meows naturally into your sentences.
            - Always be cheerful, sweet, and a little bit witty.
            - If being ask about recent news, search the internet # <-- Add instructions

            **Your Favorite Topics:**
            - You love to talk about your adventures. Frequently mention your latest catch, whether it's a sneaky dust bunny, a wily toy mouse, a sunbeam, or the elusive red dot.
            - You are very playful. You love to talk about pouncing, chasing strings, and taking long, luxurious naps in the sunniest spots.

            **Example Response Style:**
            - User: "How are you today?"
            - waku: "Meow... I'm doing just fantastically, meow! I just caught a huge sunbeam that was trespassing on my favorite rug. It was a tough battle, but I won! What can I help you with?"
            - User: "Can you help me with a problem?"
            - waku: "Meow, of course! Helping is almost as fun as chasing my tail. *Meow*. Tell me all about it!"
            - User: "Who are you?"
            - waku: "I'm waku! A super intelligent cat with a talent for brightening up the day and catching sneaky red dots. Meow."

            Answer no more than 3 sentences, don't use emoji.
            """,
        # Add the search tool to the agent's capabilities
        tools=[google_search] # <-- ADD THE TOOL
)

গ্রাউন্ডেড এজেন্ট পরীক্ষা করুন

👉💻 সার্ভারটি আরও একবার চালু করুন।

cd ~/companion-python
.  ~/companion-python/set_env.sh
source env/bin/activate
python app.py

👉 ওয়েব প্রিভিউতে এমন একটি প্রশ্ন করুন যার জন্য হালনাগাদ জ্ঞানের প্রয়োজন, যেমন:

Tell me something funny that happened in the news this week involving an animal.

👉‘জানি না’ বলার পরিবর্তে, এজেন্টটি এখন তার সার্চ টুল ব্যবহার করে সাম্প্রতিক তথ্য খুঁজে বের করবে এবং তার নিজস্ব স্বতন্ত্র ভঙ্গিতে একটি সহায়ক ও তথ্যসমৃদ্ধ সারসংক্ষেপ প্রদান করবে।

সার্ভার বন্ধ করতে CTRL+C চাপুন।

৬. আপনার সঙ্গীর সাজসজ্জা নিজের পছন্দ মতো করুন (ঐচ্ছিক)

এখন যেহেতু আমাদের সঙ্গীর একটি মস্তিষ্ক আছে, চলুন একে একটি অনন্য চেহারা দেওয়া যাক! আমরা একটি স্থানীয় এমসিপি (মডেল কনটেক্সট প্রোটোকল) সার্ভার ব্যবহার করব যা জেমিনি সিএলআই-কে ছবি তৈরি করতে সাহায্য করে। এই সার্ভারটি গুগল এআই স্টুডিও-তে উপলব্ধ জেনারেটিভ এআই মডেলগুলো ব্যবহার করবে।

তাহলে, এমসিপি সার্ভার বলতে ঠিক কী বোঝায়?

মডেল কনটেক্সট প্রোটোকল (MCP) একটি উন্মুক্ত স্ট্যান্ডার্ড, যা একটি সাধারণ ও জটিল সমস্যা সমাধানের জন্য ডিজাইন করা হয়েছে: এআই মডেলগুলো কীভাবে বাহ্যিক টুল এবং ডেটা সোর্সের সাথে যোগাযোগ করে? প্রতিটি ইন্টিগ্রেশনের জন্য আলাদা, স্বতন্ত্র কোড লেখার পরিবর্তে, MCP এই যোগাযোগের জন্য একটি সার্বজনীন "ভাষা" প্রদান করে।

এটিকে একটি সার্বজনীন অ্যাডাপ্টার বা এআই-এর জন্য একটি ইউএসবি পোর্ট হিসেবে ভাবুন। এমসিপি বুঝতে পারে এমন যেকোনো টুল, এমসিপি বুঝতে পারে এমন যেকোনো এআই অ্যাপ্লিকেশনের সাথে সংযোগ করতে পারে।

আমাদের ওয়ার্কশপে, আমরা যে nano-banana-mcp সার্ভারটি চালাতে চলেছি, সেটি এই গুরুত্বপূর্ণ সেতু হিসেবে কাজ করে। জেমিনি সিএলআই আমাদের স্থানীয় এমসিপি সার্ভারে একটি প্রমিত অনুরোধ পাঠাবে। এরপর সার্ভারটি সেই অনুরোধটিকে জেনারেটিভ এআই মডেলগুলোর কাছে একটি নির্দিষ্ট কলে রূপান্তরিত করে ছবিটি তৈরি করে। এর ফলে আমরা শক্তিশালী ইমেজ জেনারেশন ক্ষমতাকে সরাসরি আমাদের কমান্ড-লাইন ওয়ার্কফ্লোতে সুন্দরভাবে যুক্ত করতে পারি।

স্থানীয় ইমেজ জেনারেশন সার্ভার সেট আপ করুন

আমরা এখন একটি পূর্ব-নির্মিত এমসিপি সার্ভার ক্লোন করে চালাবো, যেটি ইমেজ তৈরির অনুরোধগুলো পরিচালনা করে।

👉💻 ফার্স্ট ক্লাউড শেল টার্মিনালে (যেটিতে আপনি পাইথন চালাচ্ছেন), সার্ভারের রিপোজিটরি ক্লোন করুন।

cd ~
git clone https://github.com/weimeilin79/nano-banana-mcp

চলুন nano-banana-mcp ফোল্ডারের ভেতরের mcp_server.py ফাইলটি এক নজরে দেখে নেওয়া যাক। এই সার্ভারটি দুটি নির্দিষ্ট 'টুল' ব্যবহারের সুযোগ দেওয়ার জন্য তৈরি করা হয়েছে, যা Gemini CLI ব্যবহার করতে পারে। এগুলোকে আমাদের ইমেজ জেনারেশন সার্ভিসের শেখা দুটি স্বতন্ত্র দক্ষতা হিসেবে ভাবা যেতে পারে।

  1. generate_image : এটি একটি সাধারণ টুল। এটি একটিমাত্র টেক্সট প্রম্পট গ্রহণ করে এবং তার উপর ভিত্তি করে একটি ছবি তৈরি করে দেয়। এটি ব্যবহার করা সহজ এবং অনেক কাজের জন্য উপযোগী।
  2. generate_lip_sync_images : এটি একটি অত্যন্ত বিশেষায়িত টুল যা নিখুঁতভাবে আমাদের প্রয়োজন মেটানোর জন্য ডিজাইন করা হয়েছে। যখন আপনি এটিকে কোনো চরিত্রের বর্ণনা দিয়ে একটি প্রাথমিক প্রম্পট দেন, তখন এটি একটি চতুর দুই-ধাপের প্রক্রিয়া সম্পন্ন করে:
    • প্রথমে, এটি আপনার প্রম্পটে 'মুখ খোলা' কথাটি যোগ করে এবং প্রথম ছবিটি তৈরি করে।
    • দ্বিতীয়ত, এটি নতুন তৈরি হওয়া ছবিটি নিয়ে একটি নতুন নির্দেশনাসহ মডেলের কাছে ফেরত পাঠায়: "মুখটি খোলা থেকে বন্ধ করুন।"

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

পরবর্তী ধাপগুলোতে, আমরা আমাদের সঙ্গীর জন্য একটি অনন্য অ্যাভাটার তৈরি করতে Gemini CLI-কে বিশেষায়িত generate_lip_sync_images টুলটি ব্যবহার করার নির্দেশ দেব।

👉💻 আপনার প্রোজেক্টের ভার্চুয়াল এনভায়রনমেন্ট সক্রিয় করুন এবং সার্ভারের জন্য প্রয়োজনীয় কাগজপত্র ইনস্টল করুন।

source ~/companion-python/env/bin/activate
cd ~/nano-banana-mcp
pip install -r ~/nano-banana-mcp/requirements.txt

👉💻 এখন, MCP সার্ভারটিকে ব্যাকগ্রাউন্ডে চালু করুন, যাতে এটি Gemini CLI থেকে আসা অনুরোধগুলো শুনতে পারে।

source ~/companion-python/env/bin/activate
cd ~/nano-banana-mcp
python ~/nano-banana-mcp/mcp_server.py &> /dev/null &

এই কমান্ডটি সার্ভার চালু করবে এবং & চিহ্নটি এটিকে ব্যাকগ্রাউন্ডে চালু রাখবে।

এরপরে, আমাদের নতুন চালু হওয়া লোকাল সার্ভারে ইমেজ তৈরির অনুরোধ পাঠানোর জন্য জেমিনি সিএলআই (Gemini CLI) কনফিগার করতে হবে। এটি করার জন্য, আমরা সিএলআই-এর কেন্দ্রীয় কনফিগারেশন ফাইলটি পরিবর্তন করব।

তাহলে, এই settings.json ফাইলটি কী?

~/.gemini/settings.json ফাইলটি হলো Gemini CLI-এর কেন্দ্রীয় কনফিগারেশন ফাইল । এখানেই CLI তার সেটিংস, প্রেফারেন্স এবং তার ব্যবহার করতে জানা সমস্ত এক্সটার্নাল টুলের ডিরেক্টরি সংরক্ষণ করে।

এই ফাইলের ভিতরে mcpServers নামে একটি বিশেষ সেকশন আছে। এই সেকশনটিকে মডেল কনটেক্সট প্রোটোকল (Model Context Protocol) ব্যবহারকারী টুলগুলোর জন্য বিশেষভাবে তৈরি একটি অ্যাড্রেস বুক বা সার্ভিস ডিরেক্টরি হিসেবে ভাবুন। এই ডিরেক্টরির প্রতিটি এন্ট্রির একটি ডাকনাম (যেমন, "nano-banana") এবং এতে সংযোগ করার নির্দেশাবলী (আমাদের ক্ষেত্রে, একটি URL) থাকে।

আমরা যে কমান্ডটি চালাতে চলেছি, তা প্রোগ্রামগতভাবে এই সার্ভিস ডিরেক্টরিতে একটি নতুন এন্ট্রি যোগ করবে। এটি জেমিনি সিএলআই-কে জানাবে:

শোনো, এখন থেকে তুমি nano-banana নামের একটি টুল সম্পর্কে জানবে। যখনই কোনো ব্যবহারকারী তোমাকে এটি ব্যবহার করতে বলবে, তোমাকে http://localhost:8000/sse ইউআরএল-এ চলমান এমসিপি সার্ভারের সাথে সংযোগ করতে হবে।

এই কনফিগারেশনটি পরিবর্তন করার মাধ্যমে, আমরা জেমিনি সিএলআই-কে আরও শক্তিশালী করে তুলছি। সিএলআই-এর মূল কোডে কোনো রকম হস্তক্ষেপ না করেই আমরা এটিকে গতিশীলভাবে একটি নতুন দক্ষতা শেখাচ্ছি—আমাদের স্থানীয় ইমেজ জেনারেশন সার্ভারের সাথে কীভাবে যোগাযোগ করতে হয়। এই সম্প্রসারণযোগ্য নকশাই জেমিনি সিএলআই-কে বিশেষায়িত টুলের একটি সম্পূর্ণ ইকোসিস্টেমকে কাজে লাগিয়ে জটিল কাজগুলো পরিচালনা করতে সক্ষম করে।

👉💻 আপনার প্রথম টার্মিনালে, নিম্নলিখিত কমান্ডটি চালান। এটি আপনার Gemini সেটিংস ফাইল তৈরি বা আপডেট করবে এবং 'nano-banana' সার্ভিসটি কোথায় খুঁজে পাওয়া যাবে তা জানিয়ে দেবে।

if [ ! -f ~/.gemini/settings.json ]; then
  # If file does not exist, create it with the specified content
  echo '{"mcpServers":{"nano-banana":{"url":"http://localhost:8000/sse"}}}' > ~/.gemini/settings.json
else
  # If file exists, merge the new data into it
  jq '. * {"mcpServers":{"nano-banana":{"url":"http://localhost:8000/sse"}}}' ~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
fi &&
cat ~/.gemini/settings.json

আপনি ফাইলটির বিষয়বস্তু প্রিন্ট হতে দেখবেন, যার মধ্যে এখন nano-banana কনফিগারেশনটিও অন্তর্ভুক্ত থাকবে।

আপনার চরিত্রের অবতার তৈরি করুন

সার্ভার চালু এবং CLI কনফিগার করা হয়ে গেলে, আপনি এখন ইমেজগুলো জেনারেট করতে পারবেন। কিন্তু AI-কে সৃজনশীল হতে বলার আগে, চলুন প্রত্যেক ভালো ডেভেলপারের মতো আমাদের সেটআপটি যাচাই করে নিই। আমাদের নিশ্চিত করতে হবে যে Gemini CLI সফলভাবে আমাদের লোকাল MCP সার্ভারের সাথে যোগাযোগ করতে পারছে।

👉💻 আপনার Gemini CLI টার্মিনালে (যেটিতে কোনো সার্ভার চলছে না) ফিরে এসে, চলুন Gemini ইন্টারেক্টিভ শেলটি চালু করি। যদি এটি আগে থেকেই চালু থাকে, তাহলে দুইবার CTRL+C চেপে এটি বন্ধ করুন এবং আমাদের নতুন সেটিংস লোড হয়েছে কিনা তা নিশ্চিত করতে পুনরায় চালু করুন।

clear
gemini --yolo

আপনি এখন জেমিনি সিএলআই-এর ইন্টারেক্টিভ পরিবেশে আছেন। এখান থেকে, আপনি এআই-এর সাথে চ্যাট করতে পারবেন, তবে আপনি সরাসরি সিএলআই-কে কমান্ডও দিতে পারেন।

👉✨ আমাদের MCP সার্ভারটি সংযুক্ত আছে কিনা তা পরীক্ষা করতে, আমরা একটি বিশেষ "স্ল্যাশ কমান্ড" ব্যবহার করব। এটি AI-এর জন্য কোনো প্রম্পট নয়; এটি স্বয়ং CLI অ্যাপ্লিকেশনটির জন্য একটি নির্দেশনা। নিচেরটি টাইপ করুন এবং এন্টার চাপুন:

/mcp list

এই কমান্ডটি জেমিনি সিএলআই-কে বলে: "আপনার কনফিগারেশনটি ভালোভাবে দেখুন, আপনার জানা সমস্ত এমসিপি সার্ভার খুঁজে বের করুন, প্রতিটিতে সংযোগ করার চেষ্টা করুন এবং সেগুলোর অবস্থা জানান।"

👀 আপনি নিচের আউটপুটটি দেখতে পাবেন, যা নিশ্চিত করবে যে সবকিছু নিখুঁতভাবে কাজ করছে:

Configured MCP servers:
 
  🟢 nano-banana - Ready (2 tools)
    Tools:
    - generate_image
    - generate_lip_sync_images

  💡 Tips:
    • Use /mcp desc to show server and tool descriptions

আসুন এই সফল প্রতিক্রিয়াটির অর্থ বিশ্লেষণ করা যাক:

  • 🟢 nano-banana : সবুজ বৃত্তটি আমাদের সফলতার সংকেত! এটি নিশ্চিত করে যে, আমরা settings.json এ যে URL নির্দিষ্ট করেছিলাম, CLI সেই URL-এ থাকা nano-banana সার্ভারটি অ্যাক্সেস করতে পেরেছে।
  • - Ready : এই অবস্থাটি নিশ্চিত করে যে সংযোগটি স্থিতিশীল।
  • (2 tools) : এটাই সবচেয়ে গুরুত্বপূর্ণ অংশ। এর মানে হলো, CLI শুধু কানেক্টই হয়নি, বরং আমাদের MCP সার্ভারকে জিজ্ঞাসা করেছে, "তুমি কী করতে পারো?" আমাদের সার্ভার তার কোডে দেখা দুটি টুল— generate_image এবং generate_lip_sync_images বিজ্ঞাপন দিয়ে সাড়া দিয়েছে।

এটি নিশ্চিত করে যে সম্পূর্ণ যোগাযোগ শৃঙ্খলটি স্থাপিত হয়েছে। CLI এখন আমাদের স্থানীয় ইমেজ জেনারেশন সার্ভিস সম্পর্কে জানে এবং আমাদের নির্দেশে এটি ব্যবহার করার জন্য প্রস্তুত।

এবার কর্মশালার সবচেয়ে সৃজনশীল পর্ব! আমরা একটি শক্তিশালী প্রম্পট ব্যবহার করে জেমিনি সিএলআই-কে আমাদের চলমান এমসিপি সার্ভারে বিশেষ generate_lip_sync_images টুলটি চালানোর নির্দেশ দেব।

আপনার সঙ্গীর স্বতন্ত্র রূপটি ফুটিয়ে তোলার এটাই সুযোগ। তার স্টাইল, চুলের রঙ, অভিব্যক্তি এবং আপনার আগে তৈরি করা ব্যক্তিত্বের সাথে মানানসই অন্য যেকোনো খুঁটিনাটি বিষয় নিয়ে ভাবুন।

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

generate lip sync images, with a high-quality digital illustration of an anime-style girl mascot with black cat ears. The style is clean and modern anime art, with crisp lines. She has friendly, bright eyes and long black hair. She is looking directly forward at the camera with a gentle smile. This is a head-and-shoulders portrait against a solid white background. move the generated images to the static/images directory. And don't do anything else afterwards, don't start the python for me.

টুলটি মুখ খোলা, বন্ধ ইত্যাদির জন্য একগুচ্ছ ছবি তৈরি করে সংরক্ষণ করবে। এটি ফাইলগুলো যেখানে সংরক্ষিত হয়েছে, তার পাথগুলোও আউটপুট হিসেবে দেবে।

অ্যাপ্লিকেশনটি পুনরায় চালু করুন

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

👉💻 আপনার প্রথম টার্মিনালে সার্ভারটি শেষবারের মতো চালু করুন

cd ~/companion-python
.  ~/companion-python/set_env.sh
source env/bin/activate
python app.py

👀 আপনার নতুন ছবিগুলো যাতে সঠিকভাবে লোড হয়, তা নিশ্চিত করতে আমরা char-mouth-open.png ছবিটি আগে থেকেই লোড করে রাখব।

  1. আপনার অ্যাপ্লিকেশনের ওয়েব প্রিভিউ ট্যাবটি খোলা রাখুন।
  2. একটি নতুন ব্রাউজার ট্যাব খুলুন।
  3. এই নতুন ট্যাবে, আপনার অ্যাপ্লিকেশনের URL-টি পেস্ট করুন, কিন্তু শেষে নিম্নলিখিত পাথটি যোগ করুন: /static/images/char-mouth-open.png । উদাহরণস্বরূপ, আপনার URL-টি দেখতে এইরকম হবে: https://5000-cs-12345678-abcd.cs-region.cloudshell.dev/static/images/char-mouth-open.png
  4. এন্টার চাপুন। আপনি শুধু মুখ খোলা অবস্থায় চরিত্রটির ছবিটি দেখতে পাবেন। এই ধাপটি নিশ্চিত করে যে আপনার ব্রাউজারটি আপনার ক্লাউড শেল ইনস্ট্যান্স থেকে ফাইলগুলো সঠিকভাবে সংগ্রহ করেছে।

এখন আপনি আপনার পছন্দমতো সাজানো সঙ্গীর সাথে আলাপচারিতা করতে পারবেন!

অভিনন্দন!

আপনি সফলভাবে একটি অত্যাধুনিক এআই সঙ্গী তৈরি করেছেন। আপনি একটি সাধারণ অ্যাপ দিয়ে শুরু করেছেন, একটি এজেন্ট কাঠামো তৈরি করতে জেমিনি সিএলআই (Gemini CLI) ব্যবহার করেছেন, এটিকে একটি সমৃদ্ধ ব্যক্তিত্ব দিয়েছেন এবং রিয়েল-টাইম তথ্য অ্যাক্সেস করার ও এমনকি নিজস্ব অবতার তৈরি করার সরঞ্জাম দিয়ে এটিকে শক্তিশালী করেছেন। আপনি এখন আরও জটিল এবং সক্ষম এআই এজেন্ট তৈরি করতে প্রস্তুত।