1. ওভারভিউ
এই ল্যাবে, আপনি GenAI এর সাথে JIRA ব্যবহারের গল্প বাস্তবায়ন স্বয়ংক্রিয় করার জন্য একটি সমাধান তৈরি করবেন।
যা শিখবেন
ল্যাবের বেশ কয়েকটি প্রধান অংশ রয়েছে:
- জেমিনি API-এর সাথে একীভূত করতে ক্লাউড রান অ্যাপ্লিকেশন স্থাপন করুন
- JIRA-এর জন্য Atlassian Forge অ্যাপ তৈরি এবং স্থাপন করুন
- GitLab টাস্ক অটোমেশনের জন্য LangChain ReAct এজেন্ট
পূর্বশর্ত
- এই ল্যাবটি ক্লাউড কনসোল এবং ক্লাউড শেল পরিবেশের সাথে পরিচিতি অনুমান করে।
2. সেটআপ এবং প্রয়োজনীয়তা
ক্লাউড প্রজেক্ট সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
- প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে। - আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
পরিবেশ সেটআপ
মিথুন চ্যাট খুলুন।
অথবা সার্চ বারে "Ask Gemini" টাইপ করুন।
Cloud AI Companion API সক্ষম করুন:
" Start chatting
" ক্লিক করুন এবং একটি নমুনা প্রশ্ন অনুসরণ করুন বা এটি চেষ্টা করার জন্য আপনার নিজস্ব প্রম্পট টাইপ করুন।
চেষ্টা করার জন্য অনুরোধ করে:
- ক্লাউড রানকে ৫টি মূল পয়েন্টে ব্যাখ্যা কর।
- আপনি Google ক্লাউড রান প্রোডাক্ট ম্যানেজার, ক্লাউড রানকে 5টি সংক্ষিপ্ত মূল পয়েন্টে ব্যাখ্যা করুন।
- আপনি Google ক্লাউড রান প্রোডাক্ট ম্যানেজার, একজন প্রত্যয়িত কুবারনেটস ডেভেলপারকে 5টি সংক্ষিপ্ত মূল পয়েন্টে ক্লাউড রান ব্যাখ্যা করুন।
- আপনি Google ক্লাউড রান প্রোডাক্ট ম্যানেজার, আপনি কখন ক্লাউড রান বনাম GKE ব্যবহার করবেন একজন সিনিয়র ডেভেলপারকে ৫টি সংক্ষিপ্ত মূল পয়েন্টে ব্যাখ্যা করুন।
আরও ভাল প্রম্পট লেখার বিষয়ে আরও জানতে প্রম্পট গাইড দেখুন।
গুগল ক্লাউডের জন্য মিথুন কীভাবে আপনার ডেটা ব্যবহার করে
Google এর গোপনীয়তা প্রতিশ্রুতি
AI/ML গোপনীয়তা প্রতিশ্রুতি প্রকাশ করার জন্য Google শিল্পের প্রথম একজন, যা আমাদের বিশ্বাসের রূপরেখা দেয় যে গ্রাহকদের ক্লাউডে সঞ্চিত তাদের ডেটার উপর সর্বোচ্চ স্তরের নিরাপত্তা এবং নিয়ন্ত্রণ থাকা উচিত।
আপনার জমা দেওয়া এবং প্রাপ্ত ডেটা
আপনি জেমিনিকে যে প্রশ্নগুলি জিজ্ঞাসা করেন, তার মধ্যে যেকোন ইনপুট তথ্য বা কোড যা আপনি বিশ্লেষণ বা সম্পূর্ণ করার জন্য মিথুনে জমা দেন, তাকে প্রম্পট বলা হয়। আপনি মিথুন থেকে প্রাপ্ত উত্তর বা কোড সমাপ্তিগুলিকে প্রতিক্রিয়া বলা হয়। মিথুন আপনার প্রম্পট বা এর প্রতিক্রিয়াগুলি তার মডেলগুলিকে প্রশিক্ষণের জন্য ডেটা হিসাবে ব্যবহার করে না ।
প্রম্পট এনক্রিপশন
আপনি যখন মিথুনে প্রম্পট জমা দেন, তখন আপনার ডেটা মিথুনের অন্তর্নিহিত মডেলে ইনপুট হিসাবে ট্রানজিটে এনক্রিপ্ট করা হয় ।
মিথুন থেকে তৈরি করা প্রোগ্রাম ডেটা
মিথুনকে প্রথম-পক্ষের Google ক্লাউড কোডের পাশাপাশি নির্বাচিত তৃতীয়-পক্ষের কোডে প্রশিক্ষণ দেওয়া হয়। আপনি আপনার কোডের নিরাপত্তা, পরীক্ষা এবং কার্যকারিতার জন্য দায়ী , যার মধ্যে যেকোন কোড সমাপ্তি, প্রজন্ম বা বিশ্লেষণ যা জেমিনি আপনাকে অফার করে।
Google কীভাবে আপনার প্রম্পট পরিচালনা করে তা আরও জানুন ।
3. প্রম্পট পরীক্ষা করার বিকল্প
প্রম্পট পরীক্ষা করার জন্য আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে।
Vertex AI স্টুডিও হল Google ক্লাউডের Vertex AI প্ল্যাটফর্মের একটি অংশ, বিশেষভাবে তৈরি করা হয়েছে যাতে জেনারেটিভ AI মডেলগুলির বিকাশ এবং ব্যবহারকে ত্বরান্বিত করা যায়৷
Google AI স্টুডিও হল প্রোটোটাইপিং এবং প্রম্পট ইঞ্জিনিয়ারিং এবং জেমিনি API-এর সাথে পরীক্ষা করার জন্য একটি ওয়েব-ভিত্তিক টুল।
- জেমিনি ওয়েব অ্যাপ (gemini.google.com)
Google Gemini ওয়েব অ্যাপ (gemini.google.com) হল একটি ওয়েব-ভিত্তিক টুল যা আপনাকে Google-এর জেমিনি AI মডেলগুলির শক্তি অন্বেষণ এবং ব্যবহার করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে৷
- Android এর জন্য Google Gemini মোবাইল অ্যাপ এবং iOS-এ Google অ্যাপ
4. (ঐচ্ছিক বিভাগ) পরিষেবা অ্যাকাউন্ট তৈরি করুন
এই পদক্ষেপগুলি ল্যাব সেটআপের সময় সম্পাদিত হয়েছিল - আপনাকে সেগুলি চালানোর দরকার নেই৷
কীভাবে একটি পরিষেবা অ্যাকাউন্ট এবং IAM ভূমিকা সেট আপ করতে হয় তা দেখানোর জন্য এই পদক্ষেপগুলি অন্তর্ভুক্ত করা হয়েছে৷
গুগল ক্লাউড কনসোলে ফিরে যান এবং অনুসন্ধান বারের ডানদিকে আইকনে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।
খোলা টার্মিনালে, একটি নতুন পরিষেবা অ্যাকাউন্ট এবং কী তৈরি করতে নিম্নলিখিত কমান্ডগুলি চালান।
আপনি ক্লাউড রান অ্যাপ্লিকেশন থেকে Vertex AI Gemini API-এ API কল করতে এই পরিষেবা অ্যাকাউন্টটি ব্যবহার করবেন।
আপনার Qwiklabs প্রকল্পের বিবরণ ব্যবহার করে প্রকল্পের বিবরণ কনফিগার করুন।
উদাহরণ: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন এবং ভূমিকা প্রদান করুন।
PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
KEY_FILE_NAME='vertex-client-key'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_ID --display-name "$DISPLAY_NAME"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.user"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudbuild.builds.editor"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/storage.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/run.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
অনুমোদনের জন্য অনুরোধ করা হলে, চালিয়ে যেতে "অনুমোদিত করুন" এ ক্লিক করুন।
Vertex AI API এবং Gemini চ্যাট ব্যবহার করতে প্রয়োজনীয় পরিষেবাগুলি সক্ষম করুন৷
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Vertex AI API এবং Gemini চ্যাট ব্যবহার করতে প্রয়োজনীয় পরিষেবাগুলি সক্ষম করুন৷
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
runapps.googleapis.com \
workstations.googleapis.com \
servicemanagement.googleapis.com \
secretmanager.googleapis.com \
containerscanning.googleapis.com
(ঐচ্ছিক বিভাগের শেষ)
5. ক্লাউড ওয়ার্কস্টেশনগুলিতে অ্যাক্সেস মঞ্জুর করুন৷
ক্লাউড কনসোলে ক্লাউড ওয়ার্কস্টেশন খুলুন।
Qwiklabs ছাত্রদের জন্য ক্লাউড ওয়ার্কস্টেশনে অ্যাক্সেস মঞ্জুর করুন।
এই প্রকল্পের জন্য তৈরি করা Qwiklabs ব্যবহারকারীর নাম/ইমেলটি অনুলিপি করুন এবং একটি প্রধান যোগ করতে এটি ব্যবহার করুন। ওয়ার্কস্টেশন নির্বাচন করুন এবং " PERMISSIONS
" এ ক্লিক করুন।
নীচে বিস্তারিত দেখুন.
" ADD PRINCIPAL
" বোতামে ক্লিক করুন।
Qwiklabs শিক্ষার্থীর ইমেল পেস্ট করুন এবং " Cloud Workstations User
" ভূমিকা নির্বাচন করুন।
ওয়ার্কস্টেশন খুলতে " Start
" এবং তারপর " Launch
" এ ক্লিক করুন এবং বিল্টইন টার্মিনাল ব্যবহার করে নিম্নলিখিত পদক্ষেপগুলি নিয়ে এগিয়ে যান।
GitHub সংগ্রহস্থল ক্লোন করুন
একটি ফোল্ডার তৈরি করুন এবং GitHub সংগ্রহস্থল ক্লোন করুন।
mkdir github
cd github
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
" File / Open Folder
" মেনু আইটেমটি ব্যবহার করে, " github/genai-for-developers
" খুলুন।
6. জেমিনি কোড অ্যাসিস্ট সক্ষম করুন৷
"মিথুন" আইকনে ক্লিক করুন, নীচের ডানদিকে কোণায়, " Login to Google Cloud
" এ ক্লিক করুন৷
অনুমোদন প্রবাহ শুরু করতে টার্মিনালে লিঙ্কে ক্লিক করুন।
লিঙ্ক অনুসরণ করতে "খুলুন" ক্লিক করুন.
আপনার Qwiklabs ছাত্র অ্যাকাউন্ট নির্বাচন করুন এবং পরবর্তী স্ক্রিনে "সাইন ইন করুন" এ ক্লিক করুন।
যাচাইকরণ কোড কপি করুন:
টার্মিনালে ফিরে যান এবং কোডটি পেস্ট করুন।
প্রমাণীকরণ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন এবং তারপরে "একটি Google প্রকল্প নির্বাচন করুন" এ ক্লিক করুন।
পপআপ উইন্ডো থেকে, আপনার Qwiklabs প্রকল্প নির্বাচন করুন।
উদাহরণ:
" devai-api/app/routes.py
" ফাইলটি খুলুন এবং তারপরে ফাইলের যে কোনও জায়গায় ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে " Gemini > Explain
this"
নির্বাচন করুন৷
নির্বাচিত ফাইলের জন্য মিথুনের ব্যাখ্যা পর্যালোচনা করুন।
7. ল্যাংচেইন টুলকিটস
LangChain Toolkits হল LangChain-এর সাথে অ্যাপ্লিকেশনগুলির বিকাশকে স্ট্রীমলাইন এবং উন্নত করার জন্য ডিজাইন করা টুলগুলির সেট। তারা নির্দিষ্ট টুলকিটের উপর নির্ভর করে বিভিন্ন কার্যকারিতা অফার করে, তবে সাধারণত, তারা এতে সহায়তা করে:
- বাহ্যিক ডেটা উত্সগুলির সাথে সংযোগ করা : আপনার LangChain অ্যাপ্লিকেশনগুলিতে API, ডেটাবেস এবং অন্যান্য বাহ্যিক উত্স থেকে তথ্য অ্যাক্সেস এবং অন্তর্ভুক্ত করুন৷
- উন্নত প্রম্পটিং কৌশল : ভাষা মডেলের সাথে মিথস্ক্রিয়া অপ্টিমাইজ করতে পূর্ব-নির্মিত প্রম্পট ব্যবহার করুন বা কাস্টম তৈরি করুন।
- চেইন তৈরি এবং পরিচালনা : সহজে জটিল চেইন তৈরি করুন এবং দক্ষতার সাথে পরিচালনা করুন।
- মূল্যায়ন এবং পর্যবেক্ষণ : আপনার LangChain অ্যাপ্লিকেশন এবং চেইনগুলির কর্মক্ষমতা বিশ্লেষণ করুন।
কিছু জনপ্রিয় ল্যাংচেইন টুলকিটের মধ্যে রয়েছে:
- এজেন্ট এক্সিকিউটর টুলকিটস : উন্নয়নশীল এজেন্টদের জন্য টুল যা ওয়েব ব্রাউজিং বা কোড এক্সিকিউশনের মতো ক্রিয়াকলাপের মাধ্যমে বাস্তব জগতের সাথে যোগাযোগ করতে পারে।
- প্রম্পট ইঞ্জিনিয়ারিং টুলকিট : কার্যকর প্রম্পট তৈরির জন্য সম্পদের একটি সংগ্রহ।
গিটল্যাব টুলকিট
এই ল্যাবে, আপনি গিটল্যাব মার্জ রিকোয়েস্ট তৈরি স্বয়ংক্রিয় করতে গিটল্যাব টুলকিট ব্যবহার করবেন।
গিটল্যাব টুলকিটে এমন সরঞ্জাম রয়েছে যা একটি LLM এজেন্টকে একটি গিটল্যাব সংগ্রহস্থলের সাথে যোগাযোগ করতে সক্ষম করে। টুলটি python-gitlab
লাইব্রেরির জন্য একটি মোড়ক।
গিটল্যাব টুলকিট নিম্নলিখিত কাজগুলি সম্পাদন করতে পারে:
- ফাইল তৈরি করুন - সংগ্রহস্থলে একটি নতুন ফাইল তৈরি করে।
- ফাইল পড়ুন - সংগ্রহস্থল থেকে একটি ফাইল পড়ে।
- ফাইল আপডেট করুন - সংগ্রহস্থলে একটি ফাইল আপডেট করে।
- ক্রিয়েট পুল রিকোয়েস্ট - বটের ওয়ার্কিং ব্রাঞ্চ থেকে বেস ব্রাঞ্চে একটি পুল রিকোয়েস্ট তৈরি করে।
- ইস্যুগুলি পান - সংগ্রহস্থল থেকে সমস্যাগুলি নিয়ে আসে।
- ইস্যু পান - একটি নির্দিষ্ট সমস্যা সম্পর্কে বিশদ সংগ্রহ করে।
- ইস্যুতে মন্তব্য - একটি নির্দিষ্ট ইস্যুতে একটি মন্তব্য পোস্ট করে।
- ফাইল মুছুন - সংগ্রহস্থল থেকে একটি ফাইল মুছে দেয়।
8. গিটল্যাব রিপোজিটরি এবং টুলকিট কনফিগারেশন
GitLab খুলুন, একটি নতুন সর্বজনীন প্রকল্প তৈরি করুন এবং " Settings / Access Tokens
" এর অধীনে প্রজেক্ট অ্যাক্সেস টোকেন সেট আপ করুন।
নিম্নলিখিত বিবরণ ব্যবহার করুন:
- টোকেন নাম:
devai-api-qwiklabs
- ভূমিকা:
Maintainer
- স্কোপ নির্বাচন করুন:
api
আপনার ল্যাপটপের একটি টেম্প ফাইলে অ্যাক্সেস টোকেন মানটি অনুলিপি করুন এবং পেস্ট করুন, এটি পরবর্তী ধাপে ব্যবহার করা হবে।
" Code / Branches
" এর অধীনে " main
" শাখা থেকে একটি নতুন শাখা " devai
" তৈরি করুন।
9. ক্লাউড রানে অ্যাপ্লিকেশন স্থাপন করার জন্য প্রস্তুত হন
ক্লাউড ওয়ার্কস্টেশন ইনস্ট্যান্সে ফিরে যান এবং বিদ্যমান ব্যবহার করুন বা একটি নতুন টার্মিনাল খুলুন।
একটি ওয়েব-ভিত্তিক অনুমোদন প্রবাহের মাধ্যমে আপনার ব্যবহারকারীর অ্যাকাউন্টের জন্য অ্যাক্সেসের শংসাপত্রগুলি পান৷
লিঙ্কটিতে ক্লিক করুন এবং যাচাইকরণ কোড তৈরি করতে পদক্ষেপগুলি অনুসরণ করুন৷
gcloud auth login
আপনার Qwiklabs প্রকল্পের বিবরণ ব্যবহার করে প্রকল্পের বিবরণ কনফিগার করুন।
উদাহরণ: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
বাকি পরিবেশ ভেরিয়েবল সেট করুন:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
GitLab ইন্টিগ্রেশনের জন্য প্রয়োজনীয় পরিবেশ ভেরিয়েবল সেট করুন।
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
টার্মিনালে সংবেদনশীল তথ্য প্রকাশ না করার জন্য, সর্বোত্তম অনুশীলন হল read -s
ব্যবহার করা কনসোলের কমান্ড ইতিহাসে মান দেখানো ছাড়াই পরিবেশের ভেরিয়েবল সেট করার একটি নিরাপদ উপায়। এটি চালানোর পরে, আপনাকে মানটি পেস্ট করতে হবে এবং এন্টার টিপুন।
এই কমান্ডের জন্য আপনাকে আপনার GitLab userid এবং সংগ্রহস্থলের নাম আপডেট করতে হবে।
উদাহরণ: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"
export GITLAB_REPOSITORY="USERID/REPOSITORY"
বাকি পরিবেশ ভেরিয়েবল সেট করুন:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
10. ল্যাংস্মিথ এলএলএম ট্রেসিং কনফিগারেশন
একটি ল্যাংস্মিথ অ্যাকাউন্ট তৈরি করুন এবং সেটিংস বিভাগে একটি পরিষেবা API কী তৈরি করুন৷ https://docs.smith.langchain.com/
ল্যাংস্মিথ ইন্টিগ্রেশনের জন্য প্রয়োজনীয় পরিবেশ ভেরিয়েবল সেট করুন।
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
11. জিরা কনফিগারেশন
এই মানগুলি এই ল্যাবে ব্যবহার করা হয় না, তাই কমান্ডগুলি চালানোর আগে আপনাকে এটিকে আপনার নির্দিষ্ট JIRA প্রকল্পের মানগুলিতে আপডেট করতে হবে না।
ক্লাউড রান পরিষেবা স্থাপনের জন্য প্রয়োজনীয় পরিবেশ ভেরিয়েবল সেট করুন।
export JIRA_API_TOKEN=jira-token
export JIRA_USERNAME="YOUR-EMAIL"
export JIRA_INSTANCE_URL="https://YOUR-JIRA-PROJECT.atlassian.net"
export JIRA_PROJECT_KEY="YOUR-JIRA-PROJECT-KEY"
12. ক্লাউড রানে দেবাই-এপিআই স্থাপন করুন
আপনি সঠিক ফোল্ডারে আছেন কিনা পরীক্ষা করুন।
cd ~/github/genai-for-developers/devai-api
এই ল্যাবের জন্য, আমরা সর্বোত্তম অনুশীলনগুলি অনুসরণ করি এবং ক্লাউড রানে অ্যাক্সেস টোকেন এবং ল্যাংচেইন এপিআই কী মানগুলি সংরক্ষণ এবং উল্লেখ করতে সিক্রেট ম্যানেজার ব্যবহার করি।
সিক্রেট ম্যানেজারে জিরা অ্যাক্সেস টোকেন সংরক্ষণ করুন।
echo -n $JIRA_API_TOKEN | \
gcloud secrets create JIRA_API_TOKEN \
--data-file=-
সিক্রেট ম্যানেজারে গিটল্যাব অ্যাক্সেস টোকেন সংরক্ষণ করুন।
echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
--data-file=-
সিক্রেট ম্যানেজারে ল্যাংচেইন এপিআই কী সংরক্ষণ করুন।
echo -n $LANGCHAIN_API_KEY | \
gcloud secrets create LANGCHAIN_API_KEY \
--data-file=-
ক্লাউড রানে অ্যাপ্লিকেশন স্থাপন করুন।
gcloud beta run deploy "$SERVICE_NAME" \
--source=. \
--region="$LOCATION" \
--allow-unauthenticated \
--service-account vertex-client \
--set-env-vars PROJECT_ID="$PROJECT_ID" \
--set-env-vars LOCATION="$LOCATION" \
--set-env-vars GITLAB_URL="$GITLAB_URL" \
--set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
--set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
--set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
--set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
--set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
--set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
--set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
--update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
--update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
--update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
--min-instances=1 \
--max-instances=3 \
--service-min-instances=1
আর্টিফ্যাক্ট রেজিস্ট্রি ডকার সংগ্রহস্থল তৈরি করতে Y
উত্তর দিন।
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in
region [us-central1] will be created.
Do you want to continue (Y/n)? y
পর্যালোচনা gcloud run deploy SERVICE_NAME --source=.
নীচে প্রবাহ। আরও জানুন
পর্দার আড়ালে, এই কমান্ডটি আপনার মেশিনে ডকার ইনস্টল না করে বা বিল্ডপ্যাক বা ক্লাউড বিল্ড সেট আপ না করেই আপনার উত্স কোড থেকে স্বয়ংক্রিয়ভাবে ধারক চিত্র তৈরি করতে Google ক্লাউডের buildpacks
এবং Cloud Build
ব্যবহার করে৷ অর্থাৎ, উপরে উল্লিখিত একক কমান্ডটি তা করে যা অন্যথায় gcloud builds submit
এবং gcloud run deploy
কমান্ডের প্রয়োজন হবে।
আপনি যদি ডকারফাইল প্রদান করেন (যা আমরা এই সংগ্রহস্থলে করেছি) তাহলে ক্লাউড বিল্ড এটিকে কন্টেইনার ইমেজ তৈরি করতে ব্যবহার করবে বনাম বিল্ডপ্যাকের উপর নির্ভর করে স্বয়ংক্রিয়ভাবে ধারক চিত্রগুলি সনাক্ত করতে এবং তৈরি করতে। বিল্ডপ্যাক সম্পর্কে আরও জানতে ডকুমেন্টেশন দেখুন।
কনসোলে ক্লাউড বিল্ড লগগুলি পর্যালোচনা করুন।
আর্টিফ্যাক্ট রেজিস্ট্রিতে তৈরি ডকার ইমেজ পর্যালোচনা করুন।
cloud-run-source-deploy/devai-api
খুলুন এবং স্বয়ংক্রিয়ভাবে সনাক্ত করা দুর্বলতাগুলি পর্যালোচনা করুন। যেসব ফিক্স উপলব্ধ আছে সেগুলো পরীক্ষা করে দেখুন এবং বর্ণনার উপর ভিত্তি করে কীভাবে এটি ঠিক করা যায় তা দেখুন।
ক্লাউড কনসোলে ক্লাউড রান ইনস্ট্যান্সের বিবরণ পর্যালোচনা করুন।
কার্ল কমান্ড চালিয়ে শেষ পয়েন্ট পরীক্ষা করুন।
curl -X POST \
-H "Content-Type: application/json" \
-d '{"prompt": "Create HTML, CSS and JavaScript using React.js framework to implement Login page with username and password fields, validation and documentation. Provide complete implementation, do not omit anything."}' \
$(gcloud run services list --filter="(devai-api)" --format="value(URL)")/generate
(ঐচ্ছিক বিভাগ) ক্লাউড ওয়ার্কস্টেশন সেটআপ করুন
ক্লাউড ওয়ার্কস্টেশন Google ক্লাউডে বিল্ট-ইন নিরাপত্তা এবং পূর্ব-কনফিগার করা এখনো কাস্টমাইজযোগ্য উন্নয়ন পরিবেশ সহ পরিচালিত উন্নয়ন পরিবেশ প্রদান করে। আপনার ডেভেলপারদের সফ্টওয়্যার ইনস্টল করার এবং সেটআপ স্ক্রিপ্ট চালানোর প্রয়োজনের পরিবর্তে, আপনি একটি ওয়ার্কস্টেশন কনফিগারেশন তৈরি করতে পারেন যা আপনার পরিবেশকে একটি পুনরুত্পাদনযোগ্য উপায়ে নির্দিষ্ট করে। ওয়ার্কস্টেশন কনফিগারেশনের যেকোনো আপডেট পরের বার শুরু হলে ওয়ার্কস্টেশনে স্বয়ংক্রিয়ভাবে প্রযোজ্য হবে। ডেভেলপাররা একাধিক স্থানীয় কোড এডিটর (যেমন VSCode বা JetBrains IDE যেমন IntelliJ IDEA Ultimate এবং PyCharm Professional) বা SSH-এর মাধ্যমে একটি ব্রাউজার-ভিত্তিক IDE-এর মাধ্যমে ওয়ার্কস্টেশন অ্যাক্সেস করে।
ক্লাউড ওয়ার্কস্টেশনগুলি আপনার উন্নয়ন পরিবেশগুলি পরিচালনা করতে নিম্নলিখিত Google ক্লাউড সংস্থানগুলি ব্যবহার করে:
- ওয়ার্কস্টেশন ক্লাস্টারগুলি একটি নির্দিষ্ট অঞ্চলে ওয়ার্কস্টেশনগুলির একটি গ্রুপ এবং তারা যে ভিপিসি নেটওয়ার্কের সাথে সংযুক্ত রয়েছে তা সংজ্ঞায়িত করে। ওয়ার্কস্টেশন ক্লাস্টারগুলি Google Kubernetes Engine (GKE) ক্লাস্টারগুলির সাথে সম্পর্কিত নয়৷
- ওয়ার্কস্টেশন কনফিগারেশন ওয়ার্কস্টেশনের জন্য টেমপ্লেট হিসেবে কাজ করে। ওয়ার্কস্টেশন কনফিগারেশন বিশদ বর্ণনা করে যেমন ওয়ার্কস্টেশন ভার্চুয়াল মেশিন (ভিএম) ইনস্ট্যান্স টাইপ, স্থায়ী স্টোরেজ, কনটেইনার ইমেজ ডিফাইনিং এনভায়রনমেন্ট, কোন আইডিই বা কোড এডিটর ব্যবহার করতে হবে এবং আরও অনেক কিছু। অ্যাডমিনিস্ট্রেটর এবং প্ল্যাটফর্ম দলগুলি টিমগুলিতে বা স্বতন্ত্র বিকাশকারীদের অ্যাক্সেস দেওয়ার জন্য আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট (IAM) নিয়মগুলিও ব্যবহার করতে পারে।
- ওয়ার্কস্টেশনগুলি হল পূর্ব-কনফিগার করা উন্নয়ন পরিবেশ যা একটি ক্লাউড আইডিই, ভাষা টুলিং, লাইব্রেরি এবং আরও অনেক কিছু প্রদান করে। ওয়ার্কস্টেশনগুলি চাহিদা অনুযায়ী শুরু বা বন্ধ করা যেতে পারে এবং সেশনগুলির মধ্যে ডেটা সঞ্চয় করার জন্য একটি স্থায়ী ডিস্ক সংযুক্ত করে আপনার প্রকল্পের কম্পিউট ইঞ্জিন ভিএমগুলিতে চালানো যেতে পারে।
অ্যাডমিনিস্ট্রেটর এবং প্ল্যাটফর্ম টিম ওয়ার্কস্টেশন কনফিগারেশন তৈরি করে যা তারা তাদের ডেভেলপমেন্ট টিমের সাথে শেয়ার করে। প্রতিটি বিকাশকারী একটি ওয়ার্কস্টেশন কনফিগারেশনের উপর ভিত্তি করে একটি ওয়ার্কস্টেশন তৈরি করে।
এই ল্যাবে আপনি ব্রাউজার ভিত্তিক IDE ব্যবহার করছেন তবে ক্লাউড ওয়ার্কস্টেশনগুলি অন্যান্য সাধারণ বিকাশ ইন্টারফেসগুলিকেও সমর্থন করে:
- আপনি JetBrains গেটওয়ের মাধ্যমে নিজের স্থানীয় JetBrains IDE ব্যবহার করতে পারেন
- আপনি যদি স্থানীয় VSCode ব্যবহার করেন, আপনি SSH এর মাধ্যমে দূরবর্তী উন্নয়নের জন্য আপনার ওয়ার্কস্টেশনগুলিতেও অ্যাক্সেস করতে পারেন।
- আপনি আপনার স্থানীয় মেশিন থেকে আপনার ওয়ার্কস্টেশনে SSH এমনকি TCP টানেলও সেট-আপ করতে পারেন
(ঐচ্ছিক বিভাগ) ওয়ার্কস্টেশন ক্লাস্টার তৈরি করুন
এই পদক্ষেপগুলি ল্যাব সেটআপের সময় সম্পাদিত হয়েছিল - আপনাকে সেগুলি চালানোর দরকার নেই৷
ক্লাউড ওয়ার্কস্টেশন ক্লাস্টার, কনফিগারেশন এবং ওয়ার্কস্টেশন কীভাবে সেট আপ করবেন তা দেখানোর জন্য এই পদক্ষেপগুলি অন্তর্ভুক্ত করা হয়েছে।
এই বিভাগটি পর্যালোচনা করুন এবং Forge Platform বিভাগে যান।
ওয়ার্কস্টেশন ক্লাস্টার তৈরি করুন:
gcloud workstations clusters create ws-cluster --region=us-central1
ওয়ার্কস্টেশন কনফিগারেশন তৈরি করুন
gcloud workstations configs create devai-config \
--cluster=ws-cluster \
--machine-type=e2-standard-8 \
--region=us-central1 \
--running-timeout=21600 \
--idle-timeout=1800 \
--container-predefined-image=codeoss \
--pd-disk-size=200 \
--pd-disk-type=pd-standard \
--service-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \
--pool-size=1
ওয়ার্কস্টেশন তৈরি করুন
gcloud workstations create devai-workstation \
--cluster=ws-cluster \
--config=devai-config \
--region=us-central1
ক্লাউড কনসোলে উপলব্ধ ওয়ার্কস্টেশনগুলি দেখুন। " devai-workstation
" শুরু করুন এবং চালু করুন।
নীচের ডানদিকে কোণায় " Gemini
" সক্ষম করুন, নতুন ব্রাউজার ট্যাবে সাইন-ইন ফ্লো অনুসরণ করুন এবং সাইন-ইন সম্পূর্ণ করতে তৈরি করা কোডটি আবার কনসোলে অনুলিপি করুন৷
বাম প্যানেলে " Gemini
" চ্যাট খুলুন এবং মিথুনকে জিজ্ঞাসা করুন:
" You are a Cloud Workstations Product Manager, tell me about Cloud Workstations
"।
" You are Cloud Workstations Product Manager, Can I create my custom Cloud Workstations image with my company tools so new developers can onboard in minutes?
"
(ঐচ্ছিক বিভাগের শেষ)
13. ফরজ প্ল্যাটফর্ম
Forge হল একটি প্ল্যাটফর্ম যা ডেভেলপারদের অ্যাটলাসিয়ান পণ্যগুলির সাথে একীভূত হয় এমন অ্যাপ তৈরি করতে দেয়, যেমন জিরা, কনফ্লুয়েন্স, কম্পাস এবং বিটবাকেট।
Forge CLI ইনস্টল করুন
টার্মিনালে নীচের কমান্ডগুলি চালান।
নোড সংস্করণ ম্যানেজার ( nvm ) ডাউনলোড করুন এবং বর্তমান টার্মিনাল সেশনে এটিকে পাথে উপলব্ধ করুন।
cd ~/github/genai-for-developers
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
nvm ইনস্টল করুন।
টার্মিনালে নিম্নলিখিতটি চালিয়ে সর্বশেষ Node.js LTS রিলিজ নির্বাচন করুন:
nvm install --lts
nvm use --lts
চালিয়ে বিশ্বব্যাপী Forge CLI ইনস্টল করুন:
npm install -g @forge/cli
এই ল্যাবের জন্য, আমরা লগইন করার জন্য পরিবেশ ভেরিয়েবল ব্যবহার করব।
জিরা প্রকল্প সেটআপ করুন
JIRA প্রকল্পগুলি তৈরি/দেখতে আপনার ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করুন।
আপনার বিদ্যমান জিরা প্রকল্পগুলি পর্যালোচনা করুন: https://admin.atlassian.com/
আপনার ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করে একটি নতুন JIRA প্রকল্প তৈরি করুন।
https://team.atlassian.com/your-work- এ যান এবং ক্লিক করুন এবং তারপর নির্বাচন করুন
. এর পরে, "JIRA সফ্টওয়্যার" নির্বাচন করুন - "এখনই চেষ্টা করুন"। প্রকল্প/সাইট তৈরি সম্পূর্ণ করতে প্রম্পট অনুসরণ করুন।
JIRA সফ্টওয়্যার নির্বাচন করুন।
একটি নতুন প্রকল্প তৈরি করুন।
14. Atlassian API টোকেন
CLI-তে লগ ইন করতে একটি বিদ্যমান Atlassian API টোকেন তৈরি করুন বা ব্যবহার করুন।
কমান্ড চালানোর সময় CLI আপনার টোকেন ব্যবহার করে।
- https://id.atlassian.com/manage/api-tokens- এ যান।
- API টোকেন তৈরি করুন ক্লিক করুন।
- আপনার API টোকেন বর্ণনা করতে একটি লেবেল লিখুন। উদাহরণস্বরূপ, forge-api-token.
- তৈরি করুন ক্লিক করুন।
- ক্লিপবোর্ডে অনুলিপি ক্লিক করুন এবং ডায়ালগটি বন্ধ করুন।
ক্লাউড ওয়ার্কস্টেশন টার্মিনালে নীচের কমান্ডটি চালান।
Forge কমান্ড ব্যবহার শুরু করতে Forge CLI এ লগ ইন করুন।
আপনার JIRA/FORGE ইমেল ঠিকানা সেট করুন। আপনার ইমেল ঠিকানা দিয়ে প্রতিস্থাপন করুন.
export FORGE_EMAIL=your-email
Forge API টোকেন সেট করুন। আপনার JIRA API টোকেন দিয়ে প্রতিস্থাপন করুন।
export FORGE_API_TOKEN=your-jira-api-token
নিচের কমান্ডটি চালিয়ে forge cli পরীক্ষা করুন। বিশ্লেষণ সংগ্রহ করতে বলা হলে " No
" উত্তর দিন।
forge settings set usage-analytics false
আপনি লগ ইন করেছেন কিনা চেক করুন.
forge whoami
নমুনা আউটপুট।
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Forge অ্যাপ্লিকেশন তৈরি করুন
আপনি " ~/github/genai-for-developers
" ফোল্ডারে আছেন কিনা পরীক্ষা করুন।
একটি ফরজ অ্যাপ্লিকেশন তৈরি করতে কমান্ড চালান।
forge create
অনুরোধ করা হলে নিম্নলিখিত মানগুলি ব্যবহার করুন:
- অ্যাপের নাম:
devai-jira-ui-qwiklabs
- একটি বিভাগ নির্বাচন করুন:
UI Kit
- একটি পণ্য নির্বাচন করুন:
Jira
- একটি টেমপ্লেট নির্বাচন করুন:
jira-issue-panel
অ্যাপ্লিকেশন ফোল্ডারে পরিবর্তন করুন.
cd devai-jira-ui-qwiklabs/
ডিপ্লয়মেন্ট কমান্ড চালান।
forge deploy
নমুনা আউটপুট:
Deploying your app to the development environment. Press Ctrl+C to cancel. Running forge lint... No issues found. ✔ Deploying devai-jira-ui-qwiklabs to development... ℹ Packaging app files ℹ Uploading app ℹ Validating manifest ℹ Snapshotting functions ℹ Deploying to environment ✔ Deployed Deployed devai-jira-ui-qwiklabs to the development environment.
অ্যাপ্লিকেশন ইনস্টল করুন।
forge install
অনুরোধ করা হলে নিম্নলিখিত মানগুলি ব্যবহার করুন:
- একটি পণ্য নির্বাচন করুন:
Jira
- সাইটের URL লিখুন:
your-domain.atlassian.net
নমুনা আউটপুট:
Select the product your app uses. ? Select a product: Jira Enter your site. For example, your-domain.atlassian.net ? Enter the site URL: genai-for-developers.atlassian.net Installing your app onto an Atlassian site. Press Ctrl+C to cancel. ? Do you want to continue? Yes ✔ Install complete! Your app in the development environment is now installed in Jira on genai-for-developers.atlassian.net
আপনার JIRA সাইট খুলুন এবং নিম্নলিখিত বিবরণ সহ একটি নতুন JIRA টাস্ক তৈরি করুন:
Create HTML, CSS and JavaScript using React.js framework to implement Login page with username and password fields, validation and documentation. Provide complete implementation, do not omit anything.
আপনি যখন টাস্কটি খুলবেন, আপনি " devai-jira-ui-qwiklabs
" বোতামটি দেখতে পাবেন।
বোতামটি ক্লিক করুন এবং UI-তে পরিবর্তনগুলি পর্যালোচনা করুন৷
ফরজ ব্যাকএন্ড লগ দেখুন।
forge logs
আটলাসিয়ান ডেভেলপার কনসোল
এছাড়াও আপনি Atlassian Developer Console- এ স্থাপন করা অ্যাপগুলি দেখতে এবং পরিচালনা করতে পারেন৷
লগগুলি পর্যালোচনা করুন - Development
পরিবেশে স্যুইচ করুন,
ফরজ অ্যাপ্লিকেশন ম্যানিফেস্ট এবং সোর্স কোড পর্যালোচনা করুন
" devai-jira-ui-qwiklabs/manifest.yml
" ফাইলটি খুলুন এবং এটি ব্যাখ্যা করতে জেমিনি কোড সহায়তা ব্যবহার করুন।
পর্যালোচনা ব্যাখ্যা.
নিম্নলিখিত ফাইলগুলি খুলুন এবং জেমিনি কোড অ্যাসিস্টকে তাদের ব্যাখ্যা করতে বলুন:
-
devai-jira-ui-qwiklabs/src/frontend/index.jsx
-
devai-jira-ui-qwiklabs/src/resolvers/index.js
DevAI API ক্লাউড রান এন্ডপয়েন্ট সহ Forge অ্যাপ আপডেট করুন
GCP প্রকল্প আইডি সেট করা আছে কিনা তা পরীক্ষা করুন:
gcloud config get project
যদি না হয়, Qwiklabs ল্যাব পৃষ্ঠা থেকে প্রকল্প আইডি ব্যবহার করে আপনার GCP প্রকল্প সেট করুন:
উদাহরণ: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
ক্লাউড রান পরিষেবা url সেট করুন:
export DEVAI_API_URL=$(gcloud run services list --filter="(devai-api)" --format="value(URL)")
forge variables set DEVAI_API_URL $DEVAI_API_URL
নীচের কমান্ড চালিয়ে নিশ্চিত করুন:
forge variables list
নমুনা আউটপুট
ফোরজ অ্যাপ্লিকেশন ম্যানিফেস্ট এবং কোড আপডেট করুন
এই কোড স্নিপেটগুলি রেপোতে sample-devai-jira-ui
ফোল্ডারের অধীনে পাওয়া যাবে।
সম্পাদকে ম্যানিফেস্ট ফাইল খুলুন: devai-jira-ui-qwiklabs/manifest.yml
ফাইলের শেষে নীচের লাইনগুলি যোগ করুন - ক্লাউড রান এন্ডপয়েন্টটি আপনার স্থাপনের সাথে প্রতিস্থাপন করুন৷
permissions:
scopes:
- read:jira-work
- write:jira-work
external:
fetch:
client:
- devai-api-gjerpi6qqq-uc.a.run.app/generate # replace with YOUR CLOUD RUN URL
এডিটরে রিসোলভার/ইনডেক্স ফাইল খুলুন: devai-jira-ui-qwiklabs/src/resolvers/index.js
বিদ্যমান getText
ফাংশনের পরে নীচের লাইন যোগ করুন।
resolver.define('getApiKey', (req) => {
return process.env.LLM_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
সম্পাদকে ফ্রন্টএন্ড/ইনডেক্স ফাইল খুলুন: devai-jira-ui-qwiklabs/src/frontend/index.jsx
নীচের বিষয়বস্তু দিয়ে index.jsx
প্রতিস্থাপন করুন। আপনার GitLab userid/রিপোজিটরিতে লিঙ্ক আপডেট করুন।
দুটি জায়গা আছে যেখানে আপনাকে আপনার-GIT-USERID এবং YOUR-GIT-REPO আপডেট করতে হবে।
ফাইলটিতে এই লাইনটি অনুসন্ধান করুন এবং পরিবর্তনগুলি করুন:
https://gitlab.com/
YOUR-GIT-USERID/YOUR-GIT-REPO
/-/merge_requests
import React from 'react';
import ForgeReconciler, { Text, Link, useProductContext } from '@forge/react';
import { requestJira } from '@forge/bridge';
import { invoke } from '@forge/bridge';
import api, { route, assumeTrustedRoute } from '@forge/api';
// const apiKey = await invoke("getApiKey")
const devAIApiUrl = await invoke("getDevAIApiUrl")
const App = () => {
const context = useProductContext();
const [description, setDescription] = React.useState();
const fetchDescriptionForIssue = async () => {
const issueId = context?.extension.issue.id;
const res = await requestJira(`/rest/api/2/issue/${issueId}`);
const data = await res.json();
// const genAI = new GoogleGenerativeAI(apiKey);
// const model = genAI.getGenerativeModel({ model: "gemini-pro"});
// const prompt = `You are principal software engineer at Google and given requirements below to implement.\nPlease provide implementation details and documentation.\n\nREQUIREMENTS:\n\n${data.fields.description}`
// const result = await model.generateContent(prompt);
// const text = result.response.text();
// const jsonText = JSON.stringify(text);
const bodyGenerateData = `{"prompt": ${JSON.stringify(data.fields.description)}}`;
const generateRes = await api.fetch(devAIApiUrl+'/generate',
{
body: bodyGenerateData,
method: 'post',
headers: { 'Content-Type': 'application/json' },
}
)
const resData = await generateRes.text();
const jsonText = JSON.stringify(resData);
const bodyData = `{
"body": ${jsonText}
}`;
console.log("bodyData", bodyData)
// Add Gemini response as a comment on the JIRA issue
await requestJira(`/rest/api/2/issue/${issueId}/comment`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
});
// Add link to the GitLab merge request page as a comment
await requestJira(`/rest/api/2/issue/${issueId}/comment`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: `{"body": "[GitLab Merge Request|https://gitlab.com/YOUR-GIT-USERID/YOUR-GIT-REPO/-/merge_requests]"}`
});
return "Response will be added as a comment. Please refresh in a few moments.";
};
React.useEffect(() => {
if (context) {
fetchDescriptionForIssue().then(setDescription);
}
}, [context]);
return (
<>
<Text>{description}</Text>
<Link href='https://gitlab.com/YOUR-GIT-USERID/YOUR-GIT-REPO/-/merge_requests' openNewTab={true}>GitLab Merge Request</Link>
</>
);
};
ForgeReconciler.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
Forge অ্যাপ্লিকেশন পুনরায় ব্যবহার করুন
আপডেট করা অ্যাপ্লিকেশন স্থাপন করুন:
forge deploy
নমুনা আউটপুট:
ℹ Uploading app ℹ Validating manifest ℹ Snapshotting functions ℹ Deploying to environment ✔ Deployed Deployed devai-jira-ui-qwiklabs to the development environment. We've detected new scopes or egress URLs in your app. Run forge install --upgrade and restart your tunnel to put them into effect.
আপডেট করা অ্যাপ্লিকেশন ইনস্টল করুন:
forge install --upgrade
নমুনা আউটপুট:
Upgrading your app on the Atlassian site. Your app will be upgraded with the following additional scopes: - read:jira-work - write:jira-work Your app will exchange data with the following urls: - devai-api-7su2ctuqpq-uc.a.run.app ? Do you want to continue? Yes ✔ Upgrade complete! Your app in the development environment is now the latest in Jira on genai-for-developers.atlassian.net.
টেস্ট ফরজ অ্যাপ্লিকেশন
আপনার জিরা প্রকল্পে বিদ্যমান খুলুন বা একটি নতুন জিরা টাস্ক তৈরি করুন।
পূর্ববর্তী প্যানেলটি যদি ইতিমধ্যে যোগ করা থাকে তবে আপনাকে এটি সরাতে হবে।
" ...
" ক্লিক করুন এবং মেনু থেকে সরান নির্বাচন করুন। এর পরে, আপনি আবার বোতামে ক্লিক করতে পারেন।
জিরা মন্তব্য চেক করুন
একবার আপনি DEVAI API থেকে একটি প্রতিক্রিয়া ফিরে পেলে, JIRA ইস্যুতে দুটি মন্তব্য যোগ করা হবে।
- গিটল্যাব একত্রিত করার অনুরোধ
- মিথুন ব্যবহারকারী গল্প বাস্তবায়ন বিবরণ
ভিউ রিফ্রেশ করতে " History
" এবং " Comments
" ট্যাবের মধ্যে টগল করুন৷
GitLab মার্জ রিকোয়েস্ট তৈরি সক্ষম করুন
devai-api/app/routes.py
ফাইল খুলুন এবং generate_handler
পদ্ধতিতে নীচের লাইনগুলি আনকমেন্ট করুন:
print(f"{response.text}\n")
# resp_text = response.candidates[0].content.parts[0].text
# pr_prompt = f"""Create GitLab merge request using provided details below.
# Create new files, commit them and push them to opened merge request.
# When creating new files, remove the lines that start with ``` before saving the files.
# DETAILS:
# {resp_text}
# """
# print(pr_prompt)
# agent.invoke(pr_prompt)
ক্লাউড রান অ্যাপ্লিকেশন পুনরায় স্থাপন করুন
আপনি সঠিক ফোল্ডারে আছেন কিনা পরীক্ষা করুন।
cd ~/github/genai-for-developers/devai-api
আপনি যদি একই টার্মিনাল সেশন ব্যবহার করেন তবে আপনার সমস্ত পরিবেশ ভেরিয়েবল এখনও সেট থাকতে পারে।
টার্মিনালে " echo $GITLAB_REPOSITORY
" চালিয়ে এটি পরীক্ষা করুন৷
একটি নতুন টার্মিনাল অধিবেশন খোলা হলে সেগুলি পুনরায় সেট করতে এই পদক্ষেপগুলি অনুসরণ করুন৷
অ্যাপ্লিকেশনটি পুনরায় স্থাপন করার আগে প্রয়োজনীয় পরিবেশের ভেরিয়েবলগুলি পুনরায় সেট করা নিশ্চিত করুন।
এই কমান্ডের জন্য আপনাকে আপনার GitLab userid এবং সংগ্রহস্থলের নাম আপডেট করতে হবে।
export GITLAB_REPOSITORY="USERID/REPOSITORY"
বাকি পরিবেশ ভেরিয়েবল সেট করুন:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
export PROJECT_ID=$(gcloud config get-value project)
export JIRA_USERNAME="YOUR-EMAIL"
export JIRA_INSTANCE_URL="https://YOUR-JIRA-PROJECT.atlassian.net"
export JIRA_PROJECT_KEY="YOUR-JIRA-PROJECT-KEY"
GitLab টুলকিট একত্রীকরণ অনুরোধের জন্য পরিবর্তনগুলি পুশ করতে " devai
" শাখা ব্যবহার করবে।
আপনি ইতিমধ্যে সেই শাখা তৈরি করেছেন তা যাচাই করুন।
ক্লাউড রানে অ্যাপ্লিকেশন স্থাপন করুন।
gcloud beta run deploy "$SERVICE_NAME" \
--source=. \
--region="$LOCATION" \
--allow-unauthenticated \
--service-account vertex-client \
--set-env-vars PROJECT_ID="$PROJECT_ID" \
--set-env-vars LOCATION="$LOCATION" \
--set-env-vars GITLAB_URL="$GITLAB_URL" \
--set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
--set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
--set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
--set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
--set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
--set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
--set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
--update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
--update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
--update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
--min-instances=1 \
--max-instances=3 \
--service-min-instances=1
শেষ থেকে শেষ ইন্টিগ্রেশন যাচাই করুন
আবার বোতামে ক্লিক করে JIRA টাস্ক থেকে প্রক্রিয়াটি শুরু করুন এবং GitLab সংগ্রহস্থলে, মার্জ রিকোয়েস্ট বিভাগ এবং ল্যাংস্মিথের অধীনে আউটপুট যাচাই করুন।
GitLab মার্জ অনুরোধের বিবরণ।
ল্যাংস্মিথ এলএলএম ট্রেস
ল্যাংস্মিথ পোর্টাল খুলুন এবং JIRA ইস্যু তৈরি কলের জন্য LLM ট্রেস পর্যালোচনা করুন।
নমুনা ল্যাংস্মিথ এলএলএম ট্রেস।
গিটল্যাব টুলকিট নতুন শাখা তৈরি করে না এবং আপনি যদি প্রক্রিয়াটি পুনরায় চালাতে চান তবে আপনাকে ম্যানুয়ালি নিম্নলিখিত জিনিসগুলি করতে হবে।
- গিটল্যাবে একত্রীকরণের অনুরোধ বন্ধ করুন
- GitLab সংগ্রহস্থলে বিদ্যমান "
devai
" শাখাটি মুছুন এবং তারপর একটি নতুন তৈরি করুন।
(ঐচ্ছিক বিভাগ) GitHub রেপোতে আপনার পরিবর্তনগুলি পুশ করুন
GitHub ওয়েবসাইটে যান এবং এই ল্যাবের পরিবর্তনগুলি আপনার ব্যক্তিগত সংগ্রহস্থলে পুশ করতে একটি নতুন সংগ্রহস্থল তৈরি করুন৷
ক্লাউড ওয়ার্কস্টেশন ইনস্ট্যান্সে ফিরে যান এবং টার্মিনালে গিট ব্যবহারকারীর নাম এবং ইমেল সেট করুন।
কমান্ড চালানোর আগে মান আপডেট করুন।
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
SSH কী তৈরি করুন এবং এটি GitHub সংগ্রহস্থলে যোগ করুন।
কমান্ড চালানোর আগে আপনার ইমেল আপডেট করুন.
কী জেনারেশন সম্পূর্ণ করতে পাসফ্রেজ লিখবেন না এবং একাধিকবার এন্টার টিপুন।
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
আপনার GitHub অ্যাকাউন্টে জেনারেটেড পাবলিক কী যোগ করুন।
https://github.com/settings/keys খুলুন এবং " New SSH key
" এ ক্লিক করুন।
কী নামের জন্য " qwiklabs-key
" ব্যবহার করুন এবং শেষ কমান্ড থেকে আউটপুটটি কপি/পেস্ট করুন।
টার্মিনালে ফিরে যান, পরিবর্তন করুন এবং চাপ দিন।
cd ~/github/genai-for-developers
git remote rm origin
উপরে তৈরি করা রিপোজিটরি ব্যবহার করে রিমোট অরিজিন সেট করুন।
আপনার সংগ্রহস্থল url দিয়ে প্রতিস্থাপন করুন।
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
পরিবর্তনগুলি যোগ করুন, কমিট করুন এবং চাপ দিন।
git add .
git commit -m "lab changes"
git push -u origin main
15. অভিনন্দন!
অভিনন্দন, আপনি ল্যাব শেষ!
আমরা যা কভার করেছি:
- জেমিনি API-এর সাথে সংহত করতে ক্লাউড রান অ্যাপ্লিকেশনগুলি কীভাবে স্থাপন করবেন।
- কিভাবে JIRA এর জন্য Atlassian Forge অ্যাপ তৈরি এবং স্থাপন করবেন।
- GitLab টাস্ক অটোমেশনের জন্য LangChain ReAct এজেন্টগুলি কীভাবে ব্যবহার করবেন।
- ল্যাংস্মিথে এলএলএম ট্রেসগুলি কীভাবে পর্যালোচনা করবেন।
এরপর কি:
- আরো হ্যান্ড-অন সেশন আসছে!
পরিষ্কার করুন
এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় সংস্থানগুলি রয়েছে এমন প্রকল্পটি মুছুন, অথবা প্রকল্পটি রাখুন এবং পৃথক সংস্থানগুলি মুছুন৷
প্রকল্প মুছে ফেলা হচ্ছে
বিলিং দূর করার সবচেয়ে সহজ উপায় হল আপনি টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।
©2024 Google LLC সর্বস্বত্ব সংরক্ষিত৷ Google এবং Google লোগো হল Google LLC-এর ট্রেডমার্ক। অন্যান্য সমস্ত কোম্পানি এবং পণ্যের নাম সংশ্লিষ্ট কোম্পানির ট্রেডমার্ক হতে পারে যার সাথে তারা যুক্ত।