GenAI এর সাথে JIRA ব্যবহারকারীর গল্প বাস্তবায়ন

GenAI এর সাথে JIRA ব্যবহারকারীর গল্প বাস্তবায়ন

এই কোডল্যাব সম্পর্কে

subjectমার্চ ২৪, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleAndrey Shakirov-এর লেখা

1. ওভারভিউ

এই ল্যাবে, আপনি GenAI এর সাথে JIRA ব্যবহারকারী গল্প বাস্তবায়ন স্বয়ংক্রিয় করার জন্য একটি সমাধান তৈরি করবেন।

a4ba5d8788dc40.png

ল্যাবের বেশ কয়েকটি প্রধান অংশ রয়েছে:

  • জেমিনি API-এর সাথে একীভূত করতে ক্লাউড রান অ্যাপ্লিকেশন স্থাপন করুন
  • JIRA-এর জন্য Atlassian Forge অ্যাপ তৈরি এবং স্থাপন করুন
  • GitLab টাস্ক অটোমেশনের জন্য LangChain ReAct এজেন্ট ব্যবহার করুন
  • এই ল্যাবটি ক্লাউড কনসোল এবং ক্লাউড শেল পরিবেশের সাথে পরিচিতি অনুমান করে।

2. সেটআপ এবং প্রয়োজনীয়তা

ক্লাউড প্রজেক্ট সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

পরিবেশ সেটআপ

মিথুন চ্যাট খুলুন।

bc3c899ac8bcf488.png

অথবা সার্চ বারে "Ask Gemini" টাইপ করুন।

e1e9ad314691368a.png

Google Cloud API-এর জন্য Gemini সক্ষম করুন:

990a0ceea7d05531.png

" Start chatting " ক্লিক করুন এবং একটি নমুনা প্রশ্ন অনুসরণ করুন বা এটি চেষ্টা করার জন্য আপনার নিজস্ব প্রম্পট টাইপ করুন।

ed120d672468b412.png

চেষ্টা করার জন্য অনুরোধ করে:

  • ক্লাউড রানকে ৫টি মূল পয়েন্টে ব্যাখ্যা কর।
  • আপনি Google ক্লাউড রান প্রোডাক্ট ম্যানেজার, ক্লাউড রানকে 5টি সংক্ষিপ্ত মূল পয়েন্টে ব্যাখ্যা করুন।
  • আপনি Google ক্লাউড রান প্রোডাক্ট ম্যানেজার, একজন প্রত্যয়িত কুবারনেটস ডেভেলপারকে 5টি সংক্ষিপ্ত মূল পয়েন্টে ক্লাউড রান ব্যাখ্যা করুন।
  • আপনি Google ক্লাউড রান প্রোডাক্ট ম্যানেজার, আপনি কখন ক্লাউড রান বনাম GKE ব্যবহার করবেন একজন সিনিয়র ডেভেলপারকে ৫টি সংক্ষিপ্ত মূল পয়েন্টে ব্যাখ্যা করুন।

আরও ভাল প্রম্পট লেখার বিষয়ে আরও জানতে প্রম্পট গাইড দেখুন।

গুগল ক্লাউডের জন্য মিথুন কীভাবে আপনার ডেটা ব্যবহার করে

Google এর গোপনীয়তা প্রতিশ্রুতি

AI/ML গোপনীয়তা প্রতিশ্রুতি প্রকাশ করার জন্য Google শিল্পের প্রথম একজন, যা আমাদের বিশ্বাসের রূপরেখা দেয় যে গ্রাহকদের ক্লাউডে সঞ্চিত তাদের ডেটার উপর সর্বোচ্চ স্তরের নিরাপত্তা এবং নিয়ন্ত্রণ থাকা উচিত।

আপনার জমা দেওয়া এবং প্রাপ্ত ডেটা

আপনি জেমিনিকে যে প্রশ্নগুলি জিজ্ঞাসা করেন, তার মধ্যে যেকোন ইনপুট তথ্য বা কোড যা আপনি বিশ্লেষণ বা সম্পূর্ণ করার জন্য মিথুনে জমা দেন, তাকে প্রম্পট বলা হয়। আপনি মিথুন থেকে প্রাপ্ত উত্তর বা কোড সমাপ্তিগুলিকে প্রতিক্রিয়া বলা হয়। মিথুন আপনার প্রম্পট বা এর প্রতিক্রিয়াগুলি তার মডেলগুলিকে প্রশিক্ষণের জন্য ডেটা হিসাবে ব্যবহার করে না

প্রম্পট এনক্রিপশন

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

মিথুন থেকে তৈরি করা প্রোগ্রাম ডেটা

মিথুনকে প্রথম-পক্ষের Google ক্লাউড কোডের পাশাপাশি নির্বাচিত তৃতীয়-পক্ষের কোডে প্রশিক্ষণ দেওয়া হয়। আপনি আপনার কোডের নিরাপত্তা, পরীক্ষা এবং কার্যকারিতার জন্য দায়ী , যার মধ্যে যেকোন কোড সমাপ্তি, প্রজন্ম বা বিশ্লেষণ যা জেমিনি আপনাকে অফার করে।

Google কীভাবে আপনার প্রম্পট পরিচালনা করে তা আরও জানুন

3. প্রম্পট পরীক্ষা করার বিকল্প

প্রম্পট পরীক্ষা করার জন্য আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে।

Vertex AI স্টুডিও হল Google ক্লাউডের Vertex AI প্ল্যাটফর্মের একটি অংশ, বিশেষভাবে তৈরি করা হয়েছে যাতে জেনারেটিভ AI মডেলগুলির বিকাশ এবং ব্যবহারকে ত্বরান্বিত করা যায়৷

Google AI স্টুডিও হল প্রোটোটাইপিং এবং প্রম্পট ইঞ্জিনিয়ারিং এবং জেমিনি API-এর সাথে পরীক্ষা করার জন্য একটি ওয়েব-ভিত্তিক টুল।

Google Gemini ওয়েব অ্যাপ (gemini.google.com) হল একটি ওয়েব-ভিত্তিক টুল যা আপনাকে Google-এর জেমিনি AI মডেলগুলির শক্তি অন্বেষণ এবং ব্যবহার করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে৷

4. আবেদন পর্যালোচনা করুন

সার্ভিস অ্যাকাউন্ট তৈরি করুন

গুগল ক্লাউড কনসোলে ফিরে যান এবং অনুসন্ধান বারের ডানদিকে আইকনে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।

3e0c761ca41f315e.png

খোলা টার্মিনালে, একটি নতুন পরিষেবা অ্যাকাউন্ট এবং কী তৈরি করতে নিম্নলিখিত কমান্ডগুলি চালান।

আপনি ক্লাউড রান অ্যাপ্লিকেশন থেকে 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'

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"

অনুমোদনের জন্য অনুরোধ করা হলে, চালিয়ে যেতে "অনুমোদিত করুন" এ ক্লিক করুন।

6356559df3eccdda.png

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

GitHub সংগ্রহস্থল ক্লোন করুন

GitHub সংগ্রহস্থল ক্লোন করুন।

git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git

ক্লাউড শেল এডিটর খুলুন

7e71f46b6c7b67ca.png

" File / Open Folder " মেনু আইটেমটি ব্যবহার করে, " genai-for-developers " খুলুন।

" devai-api/app/routes.py " ফাইলটি খুলুন এবং তারপরে ফাইলের যে কোনও জায়গায় ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে " Gemini > Explain this" নির্বাচন করুন৷

34054e1fad005ff8.png

নির্বাচিত ফাইলের জন্য মিথুনের ব্যাখ্যা পর্যালোচনা করুন।

f73af988a723142.png

5. গিটল্যাব সংগ্রহস্থল এবং টুলকিট কনফিগারেশন

এই ল্যাবে, আপনি গিটল্যাব মার্জ রিকোয়েস্ট তৈরিকে স্বয়ংক্রিয় করতে GitLabToolkit ব্যবহার করবেন।

ল্যাংচেইন টুলকিটস ওভারভিউ

LangChain Toolkits হল LangChain-এর সাথে অ্যাপ্লিকেশনগুলির বিকাশকে স্ট্রীমলাইন এবং উন্নত করার জন্য ডিজাইন করা টুলগুলির সেট। তারা নির্দিষ্ট টুলকিটের উপর নির্ভর করে বিভিন্ন কার্যকারিতা অফার করে, তবে সাধারণত, তারা এতে সহায়তা করে:

  • বাহ্যিক ডেটা উত্সগুলির সাথে সংযোগ করা : আপনার LangChain অ্যাপ্লিকেশনগুলিতে API, ডেটাবেস এবং অন্যান্য বাহ্যিক উত্স থেকে তথ্য অ্যাক্সেস এবং অন্তর্ভুক্ত করুন৷
  • উন্নত প্রম্পটিং কৌশল : ভাষা মডেলের সাথে মিথস্ক্রিয়া অপ্টিমাইজ করতে পূর্ব-নির্মিত প্রম্পট ব্যবহার করুন বা কাস্টম তৈরি করুন।
  • চেইন তৈরি এবং পরিচালনা : সহজে জটিল চেইন তৈরি করুন এবং দক্ষতার সাথে পরিচালনা করুন।
  • মূল্যায়ন এবং পর্যবেক্ষণ : আপনার LangChain অ্যাপ্লিকেশন এবং চেইনগুলির কর্মক্ষমতা বিশ্লেষণ করুন।

কিছু জনপ্রিয় ল্যাংচেইন টুলকিটের মধ্যে রয়েছে:

  • এজেন্ট এক্সিকিউটর টুলকিটস : উন্নয়নশীল এজেন্টদের জন্য টুল যা ওয়েব ব্রাউজিং বা কোড এক্সিকিউশনের মত ক্রিয়াকলাপের মাধ্যমে বাস্তব জগতের সাথে যোগাযোগ করতে পারে।
  • প্রম্পট ইঞ্জিনিয়ারিং টুলকিট : কার্যকর প্রম্পট তৈরির জন্য সম্পদের একটি সংগ্রহ।

গিটল্যাব টুলকিট ওভারভিউ

গিটল্যাব টুলকিটে এমন সরঞ্জাম রয়েছে যা একটি LLM এজেন্টকে একটি গিটল্যাব সংগ্রহস্থলের সাথে যোগাযোগ করতে সক্ষম করে। টুলটি python-gitlab লাইব্রেরির জন্য একটি মোড়ক।

গিটল্যাব টুলকিট নিম্নলিখিত কাজগুলি সম্পাদন করতে পারে:

  • ফাইল তৈরি করুন - সংগ্রহস্থলে একটি নতুন ফাইল তৈরি করে।
  • ফাইল পড়ুন - সংগ্রহস্থল থেকে একটি ফাইল পড়ে।
  • ফাইল আপডেট করুন - সংগ্রহস্থলে একটি ফাইল আপডেট করে।
  • ক্রিয়েট পুল রিকোয়েস্ট - বটের ওয়ার্কিং ব্রাঞ্চ থেকে বেস ব্রাঞ্চে একটি পুল রিকোয়েস্ট তৈরি করে।
  • ইস্যুগুলি পান - সংগ্রহস্থল থেকে সমস্যাগুলি নিয়ে আসে।
  • ইস্যু পান - একটি নির্দিষ্ট সমস্যা সম্পর্কে বিশদ সংগ্রহ করে।
  • ইস্যুতে মন্তব্য - একটি নির্দিষ্ট ইস্যুতে একটি মন্তব্য পোস্ট করে।
  • ফাইল মুছুন - সংগ্রহস্থল থেকে একটি ফাইল মুছে দেয়।

গিটল্যাব প্রকল্প সেটআপ

GitLab খুলুন, একটি নতুন প্রকল্প তৈরি করুন এবং " Settings / Access Tokens " এর অধীনে প্রজেক্ট অ্যাক্সেস টোকেন সেট আপ করুন।

নিম্নলিখিত বিবরণ ব্যবহার করুন:

  • টোকেন নাম: devai-api-qwiklabs
  • ভূমিকা: Maintainer
  • স্কোপ নির্বাচন করুন: api

c205fd7524c456dc.png

আপনার ল্যাপটপের একটি টেম্প ফাইলে অ্যাক্সেস টোকেন মানটি অনুলিপি করুন এবং পেস্ট করুন, এটি পরবর্তী ধাপে ব্যবহার করা হবে।

6. ক্লাউড রানে অ্যাপ্লিকেশন স্থাপন করার জন্য প্রস্তুত হন

ক্লাউড শেল এডিটরে ফিরে যান এবং বিদ্যমান ব্যবহার করুন বা একটি নতুন টার্মিনাল খুলুন।

941f0c1692037664.png

আপনার 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_PERSONAL_ACCESS_TOKEN ব্যবহার করা কনসোলের কমান্ড ইতিহাসে মান না দেখিয়ে পরিবেশ ভেরিয়েবল সেট করার একটি নিরাপদ উপায়। এটি চালানোর পরে, আপনাকে মানটি পেস্ট করতে হবে এবং এন্টার টিপুন। আপনাকে পরিবেশ পরিবর্তনশীলও রপ্তানি করতে হবে: export GITLAB_PERSONAL_ACCESS_TOKEN

এই কমান্ডের জন্য আপনাকে আপনার GitLab userid এবং সংগ্রহস্থলের নাম আপডেট করতে হবে।

উদাহরণ: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

119489def27115c8.png

export GITLAB_REPOSITORY="USERID/REPOSITORY"

বাকি পরিবেশ ভেরিয়েবল সেট করুন:

export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"

ল্যাংস্মিথ এলএলএম ট্রেসিং কনফিগারেশন

আপনি যদি ল্যাংস্মিথ-এ এজেন্ট ট্রেসিং তথ্য দেখতে চান তাহলে অ্যাকাউন্ট সেটআপ করুন, অন্যথায় কমান্ডগুলি যেমন আছে তেমন চালান।

একটি ল্যাংস্মিথ অ্যাকাউন্ট তৈরি করুন এবং সেটিংস বিভাগে একটি পরিষেবা API কী তৈরি করুন৷ https://smith.langchain.com/settings

ল্যাংস্মিথ ইন্টিগ্রেশনের জন্য প্রয়োজনীয় পরিবেশ ভেরিয়েবল সেট করুন।

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"

export LANGCHAIN_API_KEY=langchain-service-api-key

জিরা কনফিগারেশন

এই মানগুলি এই ল্যাবে ব্যবহার করা হয় না, তাই কমান্ডগুলি চালানোর আগে আপনাকে এটিকে আপনার নির্দিষ্ট 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"
export JIRA_CLOUD=true

API কী তৈরি করুন

ক্লাউড কনসোল / API এবং পরিষেবা / শংসাপত্র বিভাগে একটি নতুন API কী তৈরি করুন৷

এই কী ক্লাউড রান অ্যাপ্লিকেশনে JIRA API কল প্রমাণীকরণ করতে ব্যবহার করা হবে।

উত্পাদন পরিবেশের জন্য, আপনি তৈরি API কী-এর জন্য অ্যাপ্লিকেশন এবং API সীমাবদ্ধতাগুলি কনফিগার করবেন। অ্যাপ্লিকেশন সীমাবদ্ধতা নির্দিষ্ট ওয়েবসাইটগুলিতে একটি API কী-এর ব্যবহার সীমাবদ্ধ করে (যেমন আপনার JIRA উদাহরণ)।

ক্লাউড রান পরিষেবা স্থাপনের জন্য প্রয়োজনীয় পরিবেশ ভেরিয়েবল সেট করুন।

export DEVAI_API_KEY=your-api-key

সিক্রেট ম্যানেজারে গোপনীয়তা তৈরি করুন

এই ল্যাবের জন্য, আমরা সর্বোত্তম অনুশীলনগুলি অনুসরণ করি এবং ক্লাউড রানে অ্যাক্সেস টোকেন, API কী এবং LangChain API কী মানগুলি সংরক্ষণ এবং উল্লেখ করতে সিক্রেট ম্যানেজার ব্যবহার করি।

সিক্রেট ম্যানেজারে প্রয়োজনীয় গোপনীয়তা তৈরি এবং সংরক্ষণ করুন।

echo -n $DEVAI_API_KEY | \
 gcloud secrets create DEVAI_API_KEY
\
 
--data-file=-

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=-

7. ক্লাউড রানে দেবাই-এপিআই স্থাপন করুন

আপনি সঠিক ফোল্ডারে আছেন কিনা পরীক্ষা করুন।

cd ~/genai-for-developers/devai-api

ক্লাউড রানে অ্যাপ্লিকেশন স্থাপন করুন।

gcloud 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 JIRA_CLOUD="$JIRA_CLOUD" \
  --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" \
  --update-secrets="DEVAI_API_KEY=DEVAI_API_KEY:latest" \
  --min-instances=1 \
  --max-instances=3

আর্টিফ্যাক্ট রেজিস্ট্রি ডকার সংগ্রহস্থল তৈরি করতে 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=. নীচে প্রবাহ। আরও জানুন

5c122a89dd11822e.png

পর্দার আড়ালে, এই কমান্ডটি আপনার মেশিনে ডকার ইনস্টল না করে বা বিল্ডপ্যাক বা ক্লাউড বিল্ড সেট আপ না করেই আপনার উত্স কোড থেকে স্বয়ংক্রিয়ভাবে ধারক চিত্র তৈরি করতে Google ক্লাউডের buildpacks এবং Cloud Build ব্যবহার করে৷ অর্থাৎ, উপরে উল্লিখিত একক কমান্ডটি তা করে যা অন্যথায় gcloud builds submit এবং gcloud run deploy কমান্ডের প্রয়োজন হবে।

আপনি যদি ডকারফাইল প্রদান করেন (যা আমরা এই সংগ্রহস্থলে করেছি) তাহলে ক্লাউড বিল্ড এটিকে কন্টেইনার ইমেজ তৈরি করতে ব্যবহার করবে বনাম বিল্ডপ্যাকের উপর নির্ভর করে স্বয়ংক্রিয়ভাবে ধারক চিত্রগুলি সনাক্ত করতে এবং তৈরি করতে। বিল্ডপ্যাক সম্পর্কে আরও জানতে ডকুমেন্টেশন দেখুন।

কনসোলে ক্লাউড বিল্ড লগগুলি পর্যালোচনা করুন।

আর্টিফ্যাক্ট রেজিস্ট্রিতে তৈরি ডকার ইমেজ পর্যালোচনা করুন।

ক্লাউড কনসোলে ক্লাউড রান ইনস্ট্যান্সের বিবরণ পর্যালোচনা করুন।

পরীক্ষার আবেদন

কার্ল কমান্ড চালিয়ে শেষ পয়েন্ট পরীক্ষা করুন।

কমান্ড চালানোর আগে আপনার ক্লাউড রান পরিষেবা url দিয়ে আপডেট করুন।

উদাহরণ:

curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test

8. গল্প বাস্তবায়ন স্বয়ংক্রিয়

Forge হল একটি প্ল্যাটফর্ম যা ডেভেলপারদের অ্যাটলাসিয়ান পণ্যগুলির সাথে একীভূত হয় এমন অ্যাপ তৈরি করতে দেয়, যেমন জিরা, কনফ্লুয়েন্স, কম্পাস এবং বিটবাকেট।

eda6f59ff15df25e.png

Forge CLI ইনস্টল করুন

চালিয়ে বিশ্বব্যাপী Forge CLI ইনস্টল করুন:

npm install -g @forge/cli

এই ল্যাবের জন্য, আমরা লগইন করার জন্য পরিবেশ ভেরিয়েবল ব্যবহার করব।

e4e4e59cf8622e3f.png

জিরা প্রকল্প সেটআপ করুন

JIRA প্রকল্পগুলি তৈরি/দেখতে আপনার ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করুন।

আপনার বিদ্যমান জিরা প্রকল্পগুলি পর্যালোচনা করুন: https://admin.atlassian.com/

আপনার ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করে একটি নতুন JIRA প্রকল্প তৈরি করুন।

https://team.atlassian.com/your-work- এ যান এবং ক্লিক করুন 8654143154cb8665.png এবং তারপর নির্বাচন করুন 47b253090a08932.png . এর পরে, "JIRA সফ্টওয়্যার" নির্বাচন করুন - "এখনই চেষ্টা করুন"। প্রকল্প/সাইট তৈরি সম্পূর্ণ করতে প্রম্পট অনুসরণ করুন।

5bab2a96e3b81383.png

JIRA সফ্টওয়্যার নির্বাচন করুন।

785bc4d8bf920403.png

একটি নতুন প্রকল্প তৈরি করুন।

8a6e7cdc8224ffa0.png

Atlassian API টোকেন তৈরি করুন

CLI-তে লগ ইন করতে একটি বিদ্যমান Atlassian API টোকেন তৈরি করুন বা ব্যবহার করুন।

কমান্ড চালানোর সময় CLI আপনার টোকেন ব্যবহার করে।

  1. https://id.atlassian.com/manage/api-tokens- এ যান।
  2. API টোকেন তৈরি করুন ক্লিক করুন।
  3. আপনার API টোকেন বর্ণনা করতে একটি লেবেল লিখুন। উদাহরণস্বরূপ, forge-api-token.
  4. তৈরি করুন ক্লিক করুন।
  5. ক্লিপবোর্ডে অনুলিপি ক্লিক করুন এবং ডায়ালগটি বন্ধ করুন।

Forge পরিবেশ সেটিংস কনফিগার করুন

ক্লাউড কনসোলে ফিরে যান এবং টার্মিনালে নীচের কমান্ডগুলি চালান৷

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 অ্যাপ্লিকেশন তৈরি করুন

আপনি " ~/genai-for-developers " ফোল্ডারে আছেন কিনা পরীক্ষা করুন৷

একটি ফরজ অ্যাপ্লিকেশন তৈরি করতে কমান্ড চালান।

forge create

অনুরোধ করা হলে নিম্নলিখিত মানগুলি ব্যবহার করুন:

  • অ্যাপের নাম: devai-jira-ui-qwiklabs
  • একটি বিভাগ নির্বাচন করুন: UI Kit
  • একটি পণ্য নির্বাচন করুন: Jira
  • একটি টেমপ্লেট নির্বাচন করুন: jira-issue-panel

bc94e2da059f15cf.png

অ্যাপ্লিকেশন ফোল্ডারে পরিবর্তন করুন.

cd devai-jira-ui-qwiklabs/

নির্ভরতা ইনস্টল করতে কমান্ড চালান।

npm install

ডিপ্লয়মেন্ট কমান্ড চালান।

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-তে পরিবর্তনগুলি পর্যালোচনা করুন৷

a64378e775125654.png

ফরজ ব্যাকএন্ড লগ দেখুন।

forge logs

আটলাসিয়ান ডেভেলপার কনসোল

এছাড়াও আপনি Atlassian Developer Console- এ স্থাপন করা অ্যাপগুলি দেখতে এবং পরিচালনা করতে পারেন৷

10281496d8181597.png

লগগুলি পর্যালোচনা করুন - Development পরিবেশে স্যুইচ করুন,

d5c3b1a18dee166e.png

ফরজ অ্যাপ্লিকেশন ম্যানিফেস্ট এবং সোর্স কোড পর্যালোচনা করুন

" devai-jira-ui-qwiklabs/manifest.yml " ফাইলটি খুলুন এবং কনফিগারেশন ব্যাখ্যা করতে জেমিনি কোড সহায়তা ব্যবহার করুন।

8710dc7cd343a6a4.png

পর্যালোচনা ব্যাখ্যা.

e4c9052a0337527d.png

নিম্নলিখিত ফাইলগুলি খুলুন এবং জেমিনি কোড অ্যাসিস্টকে তাদের ব্যাখ্যা করতে বলুন:

  • devai-jira-ui-qwiklabs/src/frontend/index.jsx
  • devai-jira-ui-qwiklabs/src/resolvers/index.js

3283420f190cda21.png

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

DEVAI API কী সেট করুন:

export DEVAI_API_KEY=api-key-that-you-created

forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY

নীচের কমান্ড চালিয়ে নিশ্চিত করুন:

forge variables list

নমুনা আউটপুট

f63a751f0d6211ff.png

ফোরজ অ্যাপ্লিকেশন ম্যানিফেস্ট এবং কোড আপডেট করুন

এই কোড স্নিপেটগুলি রেপোতে 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/create-gitlab-mr # replace with YOUR CLOUD RUN URL

এডিটরে রিসোলভার/ইনডেক্স ফাইল খুলুন: devai-jira-ui-qwiklabs/src/resolvers/index.js

বিদ্যমান getText ফাংশনের পরে নীচের লাইন যোগ করুন।

resolver.define('getApiKey', (req) => {
 
return process.env.DEVAI_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 devAIApiKey = 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 bodyGenerateData = `{"prompt": ${JSON.stringify(data.fields.description)}}`;

   
const generateRes = await api.fetch(devAIApiUrl+'/create-gitlab-mr,
     
{
       
body: bodyGenerateData,
       
method: 'post',
       
headers: {
         
'Content-Type': 'application/json',
         
'x-devai-api-key': devAIApiKey,
         
},
     
}
   
)

   
const resData = await generateRes.text();

   
// 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 অ্যাপ্লিকেশন পুনরায় ব্যবহার করুন

package.json ফাইলে নির্ভরতা যোগ করুন:

"@forge/api": "4.0.0",

নির্ভরতা ইনস্টল করতে কমান্ড চালান:

npm install

আপডেট করা অ্যাপ্লিকেশন স্থাপন করুন:

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

ef17c7da9b2962d8.png

নমুনা আউটপুট:

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.

টেস্ট ফরজ অ্যাপ্লিকেশন

আপনার জিরা প্রকল্পে বিদ্যমান খুলুন বা একটি নতুন জিরা টাস্ক তৈরি করুন।

পূর্ববর্তী প্যানেলটি যদি ইতিমধ্যে যোগ করা থাকে তবে আপনাকে এটি সরাতে হবে।

" ... " ক্লিক করুন এবং মেনু থেকে সরান নির্বাচন করুন। এর পরে, আপনি আবার বোতামে ক্লিক করতে পারেন।

460503e8b2014b52.png

জিরা মন্তব্য চেক করুন

একবার আপনি DEVAI API থেকে একটি প্রতিক্রিয়া ফিরে পেলে, JIRA ইস্যুতে একটি মন্তব্য যোগ করা হবে।

  • GitLab মার্জ অনুরোধ লিঙ্ক

ভিউ রিফ্রেশ করতে " History " এবং " Comments " ট্যাবের মধ্যে টগল করুন৷

9539d2bd3cbdad28.png

GitLab মার্জ অনুরোধ যাচাই করুন

GitLab খুলুন এবং আপনার প্রকল্পে নতুন মার্জ অনুরোধের জন্য পরীক্ষা করুন।

4c2345a89bfe71ee.png

fa3a552923cd70f1.png

ল্যাংস্মিথ এলএলএম ট্রেস

আপনি LLM ট্রেসিং কনফিগার করলে, ল্যাংস্মিথ পোর্টাল খুলুন এবং গিটল্যাব মার্জ রিকোয়েস্ট ক্রিয়েশন কলের জন্য এলএলএম ট্রেস পর্যালোচনা করুন।

নমুনা ল্যাংস্মিথ এলএলএম ট্রেস।

1ae0f88ab885f69.png

9. 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 ~/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

10. অভিনন্দন!

অভিনন্দন, আপনি ল্যাব শেষ!

আমরা যা কভার করেছি:

  • জেমিনি API-এর সাথে সংহত করতে ক্লাউড রান অ্যাপ্লিকেশনগুলি কীভাবে স্থাপন করবেন।
  • কিভাবে JIRA এর জন্য Atlassian Forge অ্যাপ তৈরি এবং স্থাপন করবেন।
  • GitLab টাস্ক অটোমেশনের জন্য LangChain ReAct এজেন্টগুলি কীভাবে ব্যবহার করবেন।
  • ল্যাংস্মিথে এলএলএম ট্রেসগুলি কীভাবে পর্যালোচনা করবেন।

এরপর কি:

  • আরো হ্যান্ড-অন সেশন আসছে!

পরিষ্কার করুন

এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় সংস্থানগুলি রয়েছে এমন প্রকল্পটি মুছুন, অথবা প্রকল্পটি রাখুন এবং পৃথক সংস্থানগুলি মুছুন৷

প্রকল্প মুছে ফেলা হচ্ছে

বিলিং দূর করার সবচেয়ে সহজ উপায় হল আপনি টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।

©2024 Google LLC সর্বস্বত্ব সংরক্ষিত৷ Google এবং Google লোগো হল Google LLC-এর ট্রেডমার্ক। অন্যান্য সমস্ত কোম্পানি এবং পণ্যের নাম সংশ্লিষ্ট কোম্পানির ট্রেডমার্ক হতে পারে যার সাথে তারা যুক্ত।