GenAI की मदद से JIRA उपयोगकर्ता की कहानियों को लागू करना

1. खास जानकारी

इस लैब में, आपको GenAI की मदद से JIRA का इस्तेमाल करने की स्टोरी को ऑटोमेट करने का तरीका बनाना होगा.

5351e028356cd3ac.png

आपको क्या सीखने को मिलेगा

लैब के कई मुख्य हिस्से होते हैं:

  • Gemini API के साथ इंटिग्रेट करने के लिए, Cloud Run ऐप्लिकेशन को डिप्लॉय करना
  • JIRA के लिए Atlassian Forge ऐप्लिकेशन बनाना और उसे डिप्लॉय करना
  • GitLab टास्क ऑटोमेशन के लिए, LangChain ReAct एजेंट

ज़रूरी शर्तें

  • इस लैब में यह माना गया है कि आपको Cloud Console और Cloud Shell के एनवायरमेंट के बारे में पता है.

2. सेटअप और ज़रूरी शर्तें

Cloud प्रोजेक्ट का सेटअप

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको यह जानने की ज़रूरत नहीं होती कि यह स्ट्रिंग क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं आता है, तो कोई दूसरा आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास खुद का कोई दूसरा नाम चुनने का विकल्प भी है. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के दौरान बना रहता है.
  • आपकी जानकारी के लिए बता दें कि तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको Cloud के संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब को चलाने के लिए, आपसे कोई शुल्क नहीं लिया जाएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले कार्यक्रम में शामिल हो सकते हैं.

एनवायरमेंट सेटअप करना

Gemini Chat खोलें.

bc3c899ac8bcf488.png

इसके अलावा, खोज बार में "Gemini से पूछें" लिखें.

e1e9ad314691368a.png

Cloud AI Companion API को चालू करने के लिए:

66cb6e561e384bbf.png

"Start chatting" पर क्लिक करें और सैंपल के तौर पर दिए गए सवालों में से किसी एक को फ़ॉलो करें या इसे आज़माने के लिए अपना प्रॉम्प्ट टाइप करें.

5482c153eef23126.png

ये प्रॉम्प्ट आज़माएँ:

  • Cloud Run के बारे में पांच मुख्य बातों में बताएं.
  • आप Google Cloud Run के प्रॉडक्ट मैनेजर हैं. किसी छात्र को Cloud Run के बारे में पांच मुख्य बातों में बताएं.
  • आप Google Cloud Run के प्रॉडक्ट मैनेजर हैं. आपको सर्टिफ़ाइड Kubernetes डेवलपर को पांच मुख्य बातों में Cloud Run के बारे में बताना है.
  • आप Google Cloud Run के प्रॉडक्ट मैनेजर हैं. बताएं कि सीनियर डेवलपर को पांच मुख्य बातों में यह कैसे समझाएं कि Cloud Run और GKE में से किसका इस्तेमाल कब करना चाहिए.

बेहतर प्रॉम्प्ट लिखने के बारे में ज़्यादा जानने के लिए, प्रॉम्प्ट के लिए गाइड देखें.

Google Cloud के लिए Gemini आपके डेटा का इस्तेमाल कैसे करता है

निजता को लेकर Google की प्रतिबद्धता

Google, इंडस्ट्री में उन कंपनियों में से एक है जिन्होंने एआई/एमएल से जुड़ी निजता से जुड़ी प्रतिबद्धता पब्लिश की है. इससे यह पता चलता है कि हमारे हिसाब से, ग्राहकों को क्लाउड में सेव किए गए अपने डेटा पर सबसे ज़्यादा सुरक्षा और कंट्रोल मिलना चाहिए.

आपका सबमिट किया गया और पाया गया डेटा

Gemini से पूछे गए सवालों को प्रॉम्प्ट कहा जाता है. इनमें, विश्लेषण करने या पूरा करने के लिए, Gemini को सबमिट की गई कोई भी इनपुट जानकारी या कोड भी शामिल है. Gemini से मिलने वाले जवाबों या कोड को पूरा करने की सुविधा को जवाब कहा जाता है. Gemini, अपने मॉडल को ट्रेनिंग देने के लिए, आपके प्रॉम्प्ट या उनके जवाबों का इस्तेमाल नहीं करता है.

प्रॉम्प्ट को एन्क्रिप्ट (सुरक्षित) करना

Gemini में प्रॉम्प्ट सबमिट करने पर, Gemini में मौजूद मॉडल के इनपुट के तौर पर, आपका डेटा एन्क्रिप्ट (सुरक्षित) किया जाता है.

Gemini से जनरेट किया गया प्रोग्राम डेटा

Gemini को पहले पक्ष के Google Cloud कोड के साथ-साथ, चुने गए तीसरे पक्ष के कोड पर ट्रेनिंग दी गई है. अपने कोड की सुरक्षा, जांच, और असरदार होने की ज़िम्मेदारी आपकी है. इसमें, Gemini की मदद से पूरा किया गया कोड, जनरेट किया गया कोड या उसका विश्लेषण भी शामिल है.

Google आपके प्रॉम्प्ट को कैसे मैनेज करता है, इसके बारे में ज़्यादा जानें.

3. प्रॉम्प्ट की जांच करने के विकल्प

प्रॉम्प्ट की जांच करने के लिए, आपके पास कई विकल्प हैं.

Vertex AI Studio, Google Cloud के Vertex AI प्लैटफ़ॉर्म का हिस्सा है. इसे खास तौर पर, जनरेटिव एआई मॉडल को आसानी से डेवलप करने और इस्तेमाल करने के लिए डिज़ाइन किया गया है.

Google AI Studio, वेब पर काम करने वाला एक टूल है. इसका इस्तेमाल, प्रॉम्प्ट इंजीनियरिंग और Gemini API के साथ प्रोटोटाइप बनाने और एक्सपेरिमेंट करने के लिए किया जाता है.

Google Gemini का वेब ऐप्लिकेशन (gemini.google.com), वेब पर काम करने वाला टूल है. इसे Google के Gemini एआई मॉडल को एक्सप्लोर करने और उनका इस्तेमाल करने में आपकी मदद करने के लिए डिज़ाइन किया गया है.

4. (ज़रूरी नहीं) सेवा खाता बनाना

ये चरण, लैब सेटअप के दौरान पूरे कर लिए गए हैं. आपको इन्हें दोहराने की ज़रूरत नहीं है.

इन चरणों में, सेवा खाता और आईएएम भूमिकाएं सेट अप करने का तरीका बताया गया है.

Google Cloud Console पर वापस जाएं और खोज बार की दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell चालू करें.

3e0c761ca41f315e.png

नया सेवा खाता और कुंजियां बनाने के लिए, खोले गए टर्मिनल में ये कमांड चलाएं.

इस सेवा खाते का इस्तेमाल, Cloud Run ऐप्लिकेशन से Vertex AI Gemini 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

अगर आपसे अनुमति देने के लिए कहा जाता है, तो जारी रखने के लिए "अनुमति दें" पर क्लिक करें.

6356559df3eccdda.png

Vertex AI API और Gemini Chat का इस्तेमाल करने के लिए, ज़रूरी सेवाएं चालू करें.

gcloud services enable \
    generativelanguage.googleapis.com \
    aiplatform.googleapis.com \
    cloudaicompanion.googleapis.com \
    run.googleapis.com \
    cloudresourcemanager.googleapis.com
 

Vertex AI API और Gemini Chat का इस्तेमाल करने के लिए, ज़रूरी सेवाएं चालू करें.

gcloud services enable \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    runapps.googleapis.com \
    workstations.googleapis.com \
    servicemanagement.googleapis.com \
    secretmanager.googleapis.com \
    containerscanning.googleapis.com

(END OF OPTIONAL SECTION)

5. Cloud Workstations का ऐक्सेस देना

Cloud Console में Cloud Workstations खोलें.

Qwiklabs के लिए उपलब्ध कराए गए छात्र/छात्रा को Cloud Workstation का ऐक्सेस दें.

इस प्रोजेक्ट के लिए बनाया गया Qwiklabs उपयोगकर्ता नाम/ईमेल पता कॉपी करें और प्रिंसिपल जोड़ने के लिए उसका इस्तेमाल करें. वर्कस्टेशन चुनें और "PERMISSIONS" पर क्लिक करें.

इसकी जानकारी नीचे देखें.

5cbb861e4f272f7.png

"ADD PRINCIPAL" बटन पर क्लिक करें.

Qwiklabs छात्र का ईमेल चिपकाएं और "Cloud Workstations User" भूमिका चुनें.

dfe53b74453d80b1.png

वर्कस्टेशन खोलने के लिए, "Start" और फिर "Launch" पर क्लिक करें. इसके बाद, पहले से मौजूद टर्मिनल का इस्तेमाल करके, नीचे दिए गए चरणों को पूरा करें.

62dccf5c78880ed9.png

GitHub रिपॉज़िटरी को क्लोन करना

कोई फ़ोल्डर बनाएं और GitHub रिपॉज़िटरी को क्लोन करें.

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

"File / Open Folder" मेन्यू आइटम का इस्तेमाल करके, "github/genai-for-developers" खोलें.

6. Gemini Code Assist की सुविधा चालू करना

सबसे नीचे दाएं कोने में मौजूद, "Gemini" आइकॉन पर क्लिक करें. इसके बाद, "Login to Google Cloud" पर क्लिक करें.

4a7f4640f66037f.png

8d31b61e23ebeea2.png

अनुमति पाने की प्रोसेस शुरू करने के लिए, टर्मिनल में दिए गए लिंक पर क्लिक करें.

d8575b4066f67745.png

लिंक पर जाने के लिए, "खोलें" पर क्लिक करें.

3a7272fcb985ff5.png

अपना Qwiklabs छात्र खाता चुनें और अगली स्क्रीन पर "साइन इन करें" पर क्लिक करें.

79dc63009ce0ed49.png

पुष्टि करने वाला कोड कॉपी करें:

403845a5abc53635.png

टर्मिनल पर वापस जाएं और कोड चिपकाएं.

5931f639fe69f5cb.png

पुष्टि होने तक इंतज़ार करें. इसके बाद, "Google प्रोजेक्ट चुनें" पर क्लिक करें.

614beb055f7aa5e8.png

पॉप-अप विंडो में, अपना Qwiklabs प्रोजेक्ट चुनें.

उदाहरण:

70ae6837db397e2a.png

फ़ाइल "devai-api/app/routes.py" खोलें. इसके बाद, फ़ाइल में कहीं भी राइट क्लिक करें और संदर्भ मेन्यू से "Gemini > Explain this"" चुनें.

32b902134440b7c3.png

चुनी गई फ़ाइल के लिए, Gemini की दी गई जानकारी देखें.

f78bfee770f6be93.png

7. LangChain टूलकिट

LangChain टूलकिट, टूल के ऐसे सेट हैं जिन्हें LangChain की मदद से ऐप्लिकेशन को बेहतर तरीके से डेवलप करने के लिए डिज़ाइन किया गया है. ये टूलकिट के हिसाब से अलग-अलग सुविधाएं देते हैं. हालांकि, आम तौर पर ये इन कामों में मदद करते हैं:

  • बाहरी डेटा सोर्स से कनेक्ट करना: LangChain ऐप्लिकेशन में एपीआई, डेटाबेस, और अन्य बाहरी सोर्स से जानकारी ऐक्सेस और शामिल करें.
  • प्रॉम्प्ट करने की बेहतर तकनीकें: भाषा मॉडल के साथ इंटरैक्शन को ऑप्टिमाइज़ करने के लिए, पहले से बनाए गए प्रॉम्प्ट का इस्तेमाल करें या कस्टम प्रॉम्प्ट बनाएं.
  • चेन बनाना और मैनेज करना: आसानी से जटिल चेन बनाएं और उन्हें बेहतर तरीके से मैनेज करें.
  • आकलन और मॉनिटरिंग: अपने LangChain ऐप्लिकेशन और चेन की परफ़ॉर्मेंस का विश्लेषण करें.

LangChain टूलकिट के कुछ लोकप्रिय टूल में ये शामिल हैं:

  • एजेंट एक्ज़ीक्यूटर टूलकिट: ऐसे एजेंट बनाने के लिए टूल जो वेब ब्राउज़िंग या कोड एक्ज़ीक्यूशन जैसी कार्रवाइयों के ज़रिए, असल दुनिया के साथ इंटरैक्ट कर सकते हैं.
  • प्रॉम्प्ट इंजीनियरिंग टूलकिट: असरदार प्रॉम्प्ट बनाने के लिए संसाधनों का कलेक्शन.

GitLab टूलकिट

इस लैब में, GitLab मर्ज रिक्वेस्ट को ऑटोमेट करने के लिए, GitLab टूलकिट का इस्तेमाल किया जाएगा.

Gitlab टूलकिट में ऐसे टूल होते हैं जिनकी मदद से एलएलएम एजेंट, gitlab रिपॉज़िटरी के साथ इंटरैक्ट कर सकता है. यह टूल, python-gitlab लाइब्रेरी के लिए एक रैपर है.

GitLab टूलकिट ये काम कर सकता है:

  • फ़ाइल बनाएं - इससे रिपॉज़िटरी में एक नई फ़ाइल बनती है.
  • फ़ाइल पढ़ें - यह रिपॉज़िटरी से फ़ाइल पढ़ता है.
  • फ़ाइल अपडेट करें - इससे डेटा स्टोर करने की जगह में मौजूद फ़ाइल अपडेट हो जाती है.
  • पुल का अनुरोध करें - बॉट की वर्किंग ब्रैंच से बेस ब्रैंच पर पुल का अनुरोध करता है.
  • समस्या पाएं - यह फ़ंक्शन, डेटा स्टोर करने की जगह से समस्याएं फ़ेच करता है.
  • समस्या की जानकारी पाएं - किसी खास समस्या के बारे में जानकारी फ़ेच करता है.
  • समस्या पर टिप्पणी करें - किसी खास समस्या पर टिप्पणी पोस्ट की जाती है.
  • फ़ाइल मिटाएं - इससे रिपॉज़िटरी से फ़ाइल मिट जाती है.

8. GitLab डेटा स्टोर करने की जगह और टूलकिट का कॉन्फ़िगरेशन

GitLab खोलें, एक नया सार्वजनिक प्रोजेक्ट बनाएं, और "Settings / Access Tokens" में जाकर प्रोजेक्ट ऐक्सेस टोकन सेट अप करें.

यहां दी गई जानकारी का इस्तेमाल करें:

  • टोकन का नाम: devai-api-qwiklabs
  • भूमिका: Maintainer
  • स्कोप चुनें: api

112008c7894c3a19.png

ऐक्सेस टोकन की वैल्यू को कॉपी करके, अपने लैपटॉप पर किसी टेम्पररी फ़ाइल में चिपकाएं. इसका इस्तेमाल अगले चरणों में किया जाएगा.

9. Cloud Run पर ऐप्लिकेशन को डिप्लॉय करने की तैयारी करना

Cloud Workstations इंस्टेंस पर वापस जाएं और मौजूदा टर्मिनल का इस्तेमाल करें या नया टर्मिनल खोलें.

9f9682d2b7317e66.png

वेब पर आधारित अनुमति फ़्लो की मदद से, अपने उपयोगकर्ता खाते के लिए ऐक्सेस क्रेडेंशियल पाएं.

लिंक पर क्लिक करें और पुष्टि करने का कोड जनरेट करने के लिए, दिए गए निर्देशों का पालन करें.

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 का इस्तेमाल करना सबसे सही तरीका है. यह एनवायरमेंट वैरिएबल सेट करने का एक सुरक्षित तरीका है. इससे कंसोल के कमांड इतिहास में वैल्यू नहीं दिखती. इसे चलाने के बाद, आपको वैल्यू चिपकाकर Enter दबाना होगा.

इस कमांड के लिए, आपको अपना GitLab उपयोगकर्ता आईडी और रिपॉज़िटरी का नाम अपडेट करना होगा.

उदाहरण: 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"

10. LangSmith LLM ट्रैकिंग कॉन्फ़िगरेशन

LangSmith खाता बनाएं और सेटिंग सेक्शन में जाकर, सेवा एपीआई पासकोड जनरेट करें. https://docs.smith.langchain.com/

LangSmith इंटिग्रेशन के लिए ज़रूरी एनवायरमेंट वैरिएबल सेट करें.

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

export LANGCHAIN_API_KEY=langchain-service-api-key

11. JIRA कॉन्फ़िगरेशन

इन वैल्यू का इस्तेमाल इस लैब में नहीं किया जाता है. इसलिए, निर्देशों को लागू करने से पहले, आपको इन्हें अपने खास JIRA प्रोजेक्ट की वैल्यू पर अपडेट करने की ज़रूरत नहीं है.

Cloud Run सेवा को डिप्लॉय करने के लिए ज़रूरी एनवायरमेंट वैरिएबल सेट करें.

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

12. Devai-API को Cloud Run पर डिप्लॉय करना

देखें कि आप सही फ़ोल्डर में हैं या नहीं.

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

इस लैब के लिए, हम सबसे सही तरीकों का पालन करते हैं. साथ ही, Cloud Run में ऐक्सेस टोकन और LangChain API पासकोड की वैल्यू को सेव करने और उनका रेफ़रंस देने के लिए, Secret Manager का इस्तेमाल करते हैं.

JIRA ऐक्सेस टोकन को Secret Manager में सेव करें.

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

सीक्रेट मैनेजर में GitLab ऐक्सेस टोकन सेव करें.

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

Secret Manager में LangChain API पासकोड सेव करें.

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

ऐप्लिकेशन को Cloud Run पर डिप्लॉय करें.

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" \
  --min-instances=1 \
  --max-instances=3

Artifact Registry का Docker डेटा स्टोर बनाने के लिए, 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 Cloud के buildpacks और Cloud Build का इस्तेमाल करके, आपके सोर्स कोड से कंटेनर इमेज को अपने-आप बनाता है. इसके लिए, आपको अपनी मशीन पर Docker इंस्टॉल करने या बिल्डपैक या Cloud Build सेट अप करने की ज़रूरत नहीं होती. इसका मतलब है कि ऊपर बताए गए एक ही कमांड से वही काम होता है जो gcloud builds submit और gcloud run deploy कमांड से होता है.

अगर आपने Dockerfile दिया है(जैसा कि हमने इस रिपॉज़िटरी में किया है), तो Cloud Build इसका इस्तेमाल कंटेनर इमेज बनाने के लिए करेगा. इसके बजाय, वह कंटेनर इमेज का अपने-आप पता लगाने और उन्हें बनाने के लिए, बिल्डपैक पर निर्भर करेगा. बिल्डपैक के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.

Console में Cloud Build लॉग की समीक्षा करें.

आर्टफ़ैक्ट रजिस्ट्री में, बनाई गई Docker इमेज की समीक्षा करें.

cloud-run-source-deploy/devai-api खोलें और उन कमजोरियों की समीक्षा करें जिनका पता अपने-आप चला. उन समस्याओं को देखें जिनके लिए सुधार उपलब्ध हैं. साथ ही, जानकारी के आधार पर देखें कि उन्हें कैसे ठीक किया जा सकता है.

d00c9434b511be44.png

Cloud Console में, Cloud Run इंस्टेंस की जानकारी देखें.

curl कमांड चलाकर, एंडपॉइंट की जांच करें.

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

(वैकल्पिक सेक्शन) Cloud Workstation सेटअप करना

Cloud Workstations, Google Cloud पर मैनेज किए जा सकने वाले डेवलपमेंट एनवायरमेंट उपलब्ध कराता है. इनमें पहले से मौजूद सुरक्षा और पहले से कॉन्फ़िगर किए गए डेवलपमेंट एनवायरमेंट होते हैं, जिन्हें पसंद के मुताबिक बनाया जा सकता है. अपने डेवलपर को सॉफ़्टवेयर इंस्टॉल करने और सेटअप स्क्रिप्ट चलाने के लिए कहने के बजाय, आपके पास वर्कस्टेशन कॉन्फ़िगरेशन बनाने का विकल्प है. इससे, आपके डेवलपर को आपके एनवायरमेंट को आसानी से दोहराने में मदद मिलती है. वर्कस्टेशन कॉन्फ़िगरेशन में किए गए किसी भी अपडेट, वर्कस्टेशन के अगली बार चालू होने पर अपने-आप लागू हो जाते हैं. डेवलपर, ब्राउज़र-आधारित आईडीई के ज़रिए वर्कस्टेशन को ऐक्सेस करते हैं. इसके लिए, वे कई स्थानीय कोड एडिटर (जैसे, VSCode या JetBrains आईडीई, जैसे कि IntelliJ IDEA Ultimate और PyCharm Professional) या एसएसएच का इस्तेमाल करते हैं.

Cloud Workstations, आपके डेवलपमेंट एनवायरमेंट को मैनेज करने के लिए, Google Cloud के इन संसाधनों का इस्तेमाल करता है:

  • वर्कस्टेशन क्लस्टर, किसी खास इलाके में वर्कस्टेशन के ग्रुप और उस वीपीसी नेटवर्क के बारे में बताते हैं जिससे वे जुड़े हैं. वर्कस्टेशन क्लस्टर, Google Kubernetes Engine (GKE) क्लस्टर से जुड़े नहीं होते.
  • वर्कस्टेशन कॉन्फ़िगरेशन, वर्कस्टेशन के लिए टेंप्लेट के तौर पर काम करते हैं. वर्कस्टेशन कॉन्फ़िगरेशन में, वर्कस्टेशन वर्चुअल मशीन (VM) इंस्टेंस टाइप, पर्सिस्टेंट स्टोरेज, कंटेनर इमेज की जानकारी देने वाला एनवायरमेंट, किस IDE या कोड एडिटर का इस्तेमाल करना है वगैरह जैसी जानकारी शामिल होती है. एडमिन और प्लैटफ़ॉर्म की टीमें, टीमों या अलग-अलग डेवलपर को ऐक्सेस देने के लिए, पहचान और ऐक्सेस मैनेजमेंट (आईएएम) नियमों का भी इस्तेमाल कर सकती हैं.
  • वर्कस्टेशन, पहले से कॉन्फ़िगर किए गए डेवलपमेंट एनवायरमेंट होते हैं. इनमें क्लाउड आईडीई, भाषा टूल, लाइब्रेरी वगैरह की सुविधाएं मिलती हैं. वर्कस्टेशन को मांग पर शुरू या बंद किया जा सकता है. साथ ही, इन्हें आपके प्रोजेक्ट में मौजूद Compute Engine के वीएम पर चलाया जा सकता है. इसके लिए, सेशन के बीच डेटा सेव करने के लिए, एक पर्सिस्टेंट डिस्क जोड़ी जाती है.

एडमिन और प्लैटफ़ॉर्म टीम, वर्कस्टेशन कॉन्फ़िगरेशन बनाती हैं और उन्हें अपनी डेवलपमेंट टीम के साथ शेयर करती हैं. हर डेवलपर, वर्कस्टेशन कॉन्फ़िगरेशन के आधार पर वर्कस्टेशन बनाता है.

810ae08acb671f4c.png

इस लैब में, ब्राउज़र पर काम करने वाले आईडीई का इस्तेमाल किया जा रहा है. हालांकि, Cloud Workstations पर अन्य सामान्य डेवलपमेंट इंटरफ़ेस भी काम करते हैं:

  • JetBrains Gateway की मदद से, अपने स्थानीय JetBrains IDE का इस्तेमाल किया जा सकता है
  • लोकल VSCode का इस्तेमाल करने पर, एसएसएच के ज़रिए रिमोट डेवलपमेंट के लिए अपने वर्कस्टेशन भी ऐक्सेस किए जा सकते हैं.
  • अपनी लोकल मशीन से, वर्कस्टेशन पर एसएसएच और टीसीपी टनल भी सेट अप किए जा सकते हैं

fc95816682f1e3b0.png

(ज़रूरी नहीं) वर्कस्टेशन क्लस्टर बनाना

ये चरण, लैब सेटअप के दौरान पूरे कर लिए गए हैं. आपको इन्हें दोहराने की ज़रूरत नहीं है.

यहां Cloud Workstations क्लस्टर, कॉन्फ़िगरेशन, और वर्कस्टेशन को सेट अप करने का तरीका बताया गया है.

इस सेक्शन को पढ़ें और Forge प्लैटफ़ॉर्म सेक्शन पर जाएं.

Workstations क्लस्टर बनाना:

gcloud workstations clusters create ws-cluster --region=us-central1

Workstations कॉन्फ़िगरेशन बनाना

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

Cloud Console में उपलब्ध वर्कस्टेशन देखें. "devai-workstation" को शुरू और लॉन्च करें.

e44784811890cfc8.png

सबसे नीचे दाएं कोने में "Gemini" को चालू करें. इसके बाद, नए ब्राउज़र टैब में साइन-इन फ़्लो को पूरा करें. साइन-इन पूरा करने के लिए, जनरेट किया गया कोड वापस कंसोल में कॉपी करें.

बाएं पैनल में "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?".

8c3af1ad4e612f15.png

(END OF OPTIONAL SECTION)

13. Forge प्लैटफ़ॉर्म

Forge एक ऐसा प्लैटफ़ॉर्म है जिसकी मदद से डेवलपर, Atlassian के प्रॉडक्ट, जैसे कि Jira, Confluence, Compass, और Bitbucket के साथ इंटिग्रेट होने वाले ऐप्लिकेशन बना सकते हैं.

eda6f59ff15df25e.png

Forge CLI इंस्टॉल करना

टर्मिनल में नीचे दिए गए कमांड चलाएं.

Node Version Manager ( 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 सीएलआई को ग्लोबल तौर पर इंस्टॉल करने के लिए, यह तरीका अपनाएं:

npm install -g @forge/cli

इस लैब के लिए, हम लॉगिन करने के लिए एनवायरमेंट वैरिएबल का इस्तेमाल करेंगे.

e4e4e59cf8622e3f.png

JIRA प्रोजेक्ट सेटअप करना

JIRA प्रोजेक्ट बनाने/देखने के लिए, अपने निजी खाते का इस्तेमाल करें.

अपने मौजूदा JIRA प्रोजेक्ट की समीक्षा करें: https://admin.atlassian.com/

अपने निजी खाते का इस्तेमाल करके, JIRA में नया प्रोजेक्ट बनाएं.

https://team.atlassian.com/your-work पर जाएं और 8654143154cb8665.png पर क्लिक करें. इसके बाद, 47b253090a08932.png को चुनें. इसके बाद, "JIRA Software" - "इसे अभी आज़माएं" को चुनें. प्रोजेक्ट/साइट बनाने के लिए, निर्देशों का पालन करें.

5bab2a96e3b81383.png

JIRA Software चुनें.

785bc4d8bf920403.png

नया प्रोजेक्ट बनाएं.

8a6e7cdc8224ffa0.png

14. Atlassian एपीआई टोकन

सीएलआई में लॉग इन करने के लिए, कोई नया Atlassian एपीआई टोकन बनाएं या किसी मौजूदा टोकन का इस्तेमाल करें.

कमांड चलाते समय, सीएलआई आपके टोकन का इस्तेमाल करता है.

  1. https://id.atlassian.com/manage/api-tokens पर जाएं.
  2. एपीआई टोकन बनाएं पर क्लिक करें.
  3. अपने एपीआई टोकन के बारे में बताने के लिए कोई लेबल डालें. उदाहरण के लिए, forge-api-token.
  4. बनाएं पर क्लिक करें.
  5. क्लिपबोर्ड पर कॉपी करें पर क्लिक करें और डायलॉग बॉक्स बंद करें.

Cloud Workstations टर्मिनल में, नीचे दिया गया कमांड चलाएं.

Forge के निर्देशों का इस्तेमाल शुरू करने के लिए, Forge CLI में लॉग इन करें.

अपना JIRA/FORGE ईमेल पता सेट करें. अपने ईमेल पते से बदलें.

export FORGE_EMAIL=your-email

Forge API टोकन सेट करें. अपने JIRA एपीआई टोकन से बदलें.

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 ऐप्लिकेशन बनाने के लिए, निर्देश चलाएं.

forge create

जब कहा जाए, तब इन वैल्यू का इस्तेमाल करें:

  • एप्लिकेशन का नाम: devai-jira-ui-qwiklabs
  • कोई कैटगरी चुनें: UI Kit
  • कोई प्रॉडक्ट चुनें: Jira
  • कोई टेंप्लेट चुनें: jira-issue-panel

bc94e2da059f15cf.png

ऐप्लिकेशन फ़ोल्डर में बदलें.

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
  • साइट का यूआरएल डालें: 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" बटन दिखेगा.

बटन पर क्लिक करें और यूज़र इंटरफ़ेस (यूआई) में बदलावों की समीक्षा करें.

88f6dd543827543.png

फ़ोरज के बैकएंड लॉग देखें.

forge logs

Atlassian Developer Console

Atlassian Developer Console में भी डिप्लॉय किए गए ऐप्लिकेशन देखे और मैनेज किए जा सकते हैं.

6a0e6ea177054fe6.png

लॉग की समीक्षा करें - Development एनवायरमेंट पर स्विच करें,

56a7f74de6d2a01d.png

Forge ऐप्लिकेशन मेनिफ़ेस्ट और सोर्स कोड की समीक्षा करना

"devai-jira-ui-qwiklabs/manifest.yml" फ़ाइल खोलें और इसके बारे में जानकारी पाने के लिए, Gemini Code Assist का इस्तेमाल करें.

4a4377922ab9a927.png

वजह देखें.

5dd53138212dc686.png

नीचे दी गई फ़ाइलें खोलें और Gemini Code Assist से उनके बारे में जानकारी मांगें:

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

c99f48a5bf624501.png

DevAI API Cloud Run एंडपॉइंट की मदद से, Forge ऐप्लिकेशन को अपडेट करना

देखें कि GCP प्रोजेक्ट आईडी सेट है या नहीं:

gcloud config get project

अगर ऐसा नहीं है, तो Qwiklabs लैब पेज पर जाकर, प्रोजेक्ट आईडी का इस्तेमाल करके अपना GCP प्रोजेक्ट सेट करें:

उदाहरण: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

Cloud Run सेवा का यूआरएल सेट करें:

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

आउटपुट का सैंपल

fb337c19c9009ac5.png

Forge ऐप्लिकेशन का मेनिफ़ेस्ट और कोड अपडेट करना

ये कोड स्निपेट, sample-devai-jira-ui फ़ोल्डर में मौजूद रिपॉज़िटरी में देखे जा सकते हैं.

एडिटर में मेनिफ़ेस्ट फ़ाइल खोलें: devai-jira-ui-qwiklabs/manifest.yml

फ़ाइल के आखिर में नीचे दी गई लाइनें जोड़ें - Cloud Run एंडपॉइंट को उस एंडपॉइंट से बदलें जिसे आपने डिप्लॉय किया है.

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 उपयोगकर्ता आईडी/रिपॉज़िटरी का लिंक अपडेट करें.

आपको दो जगहों पर YOUR-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 ऐप्लिकेशन को फिर से डिप्लॉय करना

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.

Test Forge ऐप्लिकेशन

अपने JIRA प्रोजेक्ट में मौजूदा JIRA टास्क खोलें या नया टास्क बनाएं.

अगर पिछले पैनल को पहले से जोड़ा जा चुका है, तो आपको उसे हटाना होगा.

"..." पर क्लिक करें और मेन्यू से 'हटाएं' को चुनें. इसके बाद, बटन पर फिर से क्लिक किया जा सकता है.

1adca6205af0f0c6.png

Jira पर की गई टिप्पणियां देखना

DEVAI API से जवाब मिलने के बाद, JIRA समस्या पर दो टिप्पणियां जोड़ी जाएंगी.

  • GitLab मर्ज रिक्वेस्ट
  • Gemini की उपयोगकर्ता कहानी को लागू करने की जानकारी

व्यू को रीफ़्रेश करने के लिए, "History" और "Comments" टैब के बीच टॉगल करें.

e3f38114330d504f.png

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)

Cloud Run ऐप्लिकेशन को फिर से डिप्लॉय करना

देखें कि आप सही फ़ोल्डर में हैं या नहीं.

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

अगर एक ही टर्मिनल सेशन का इस्तेमाल किया जा रहा है, तो हो सकता है कि आपके पास अब भी सभी एनवायरमेंट वैरिएबल सेट हों.

टर्मिनल में "echo $GITLAB_REPOSITORY" चलाकर देखें.

अगर कोई नया टर्मिनल सेशन खोला गया था, तो उसे रीसेट करने के लिए यह तरीका अपनाएं.

ऐप्लिकेशन को फिर से डिप्लॉय करने से पहले, ज़रूरी एनवायरमेंट वैरिएबल रीसेट करना न भूलें.

इस कमांड के लिए, आपको अपना GitLab उपयोगकर्ता आईडी और रिपॉज़िटरी का नाम अपडेट करना होगा.

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"
export JIRA_CLOUD=true

GitLab टूलकिट, मर्ज अनुरोध के लिए बदलावों को पुश करने के लिए, "devai" शाखा का इस्तेमाल करेगा.

पुष्टि करें कि आपने वह शाखा पहले ही बनाई है.

ऐप्लिकेशन को Cloud Run पर डिप्लॉय करें.

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" \
  --min-instances=1 \
  --max-instances=3

एंड-टू-एंड इंटिग्रेशन की पुष्टि करना

बटन पर फिर से क्लिक करके, JIRA टास्क से प्रोसेस शुरू करें. इसके बाद, GitLab रिपॉज़िटरी में मर्ज अनुरोध सेक्शन और LangSmith में आउटपुट की पुष्टि करें.

GitLab मर्ज अनुरोध की जानकारी.

1cd438a10b4ce2b3.png

db6dc6c9a46e8f7b.png

LangSmith LLM के ट्रेस

LangSmith पोर्टल खोलें और JIRA समस्या बनाने के कॉल के लिए LLM ट्रेस की समीक्षा करें.

LangSmith LLM ट्रेस का सैंपल.

1ae0f88ab885f69.png

(ज़रूरी नहीं) GitHub रिपॉज़िटरी में अपने बदलावों को पुश करना

GitHub की वेबसाइट पर जाएं और एक नई रिपॉज़िटरी बनाएं. इससे, इस लैब के बदलावों को अपने निजी रिपॉज़िटरी में पुश किया जा सकेगा.

Cloud Workstations इंस्टेंस पर वापस जाएं और टर्मिनल में Git उपयोगकर्ता नाम और ईमेल सेट करें.

निर्देश चलाने से पहले, वैल्यू अपडेट करें.

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

एसएसएच कुंजी जनरेट करें और उसे GitHub डेटा स्टोर करने की जगह में जोड़ें.

निर्देश चलाने से पहले, अपना ईमेल पता अपडेट करें.

पासफ़्रेज़ डालने के बाद, कुंजी जनरेट करने के लिए कई बार Enter न दबाएं.

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

ऊपर बनाए गए रिपॉज़िटरी का इस्तेमाल करके, रिमोट ऑरिजिन सेट करें.

अपने रिपॉज़िटरी यूआरएल से बदलें.

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. बधाई हो!

बधाई हो, आपने लैब पूरा कर लिया है!

हमने इन विषयों पर जानकारी दी है:

  • Gemini के एपीआई के साथ इंटिग्रेट करने के लिए, Cloud Run ऐप्लिकेशन को डिप्लॉय करने का तरीका.
  • JIRA के लिए Atlassian Forge ऐप्लिकेशन बनाने और उसे डिप्लॉय करने का तरीका.
  • GitLab टास्क ऑटोमेशन के लिए, LangChain ReAct एजेंट का इस्तेमाल करने का तरीका.
  • LangSmith में एलएलएम के ट्रेस की समीक्षा करने का तरीका.

आगे क्या करना है:

  • इस तरह के और भी सेशन आने वाले हैं!

व्यवस्थित करें

इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिया जाए, इसके लिए संसाधनों वाले प्रोजेक्ट को मिटाएं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.

प्रोजेक्ट मिटाना

बिलिंग की सुविधा बंद करने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाया गया प्रोजेक्ट मिटाना है.

©2024 Google LLC. सभी अधिकार सुरक्षित हैं. Google और Google का लोगो, Google LLC के ट्रेडमार्क हैं. अन्य सभी कंपनी और उत्पाद नाम उनसे संबद्ध कंपनियों के ट्रेडमार्क हो सकते हैं.