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

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

इस लैब में, GenAI की मदद से JIRA में उपयोगकर्ता की कहानियों को अपने-आप लागू करने का समाधान बनाया जाएगा.

a4ba5d8788dc40.png

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

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

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

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

  • इस लैब को शुरू करने से पहले, यह माना जा रहा है कि आपको Cloud Console और Cloud Shell एनवायरमेंट के बारे में जानकारी है.

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

Cloud Project का सेटअप

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

Gemini Chat खोलें.

bc3c899ac8bcf488.png

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

e1e9ad314691368a.png

Google Cloud API के लिए Gemini को चालू करें:

990a0ceea7d05531.png

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

ed120d672468b412.png

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

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

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

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

निजता बनाए रखने के लिए 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'

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

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

GitHub रिपॉज़िटरी का क्लोन बनाएं.

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

Cloud Shell Editor खोलें

7e71f46b6c7b67ca.png

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

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

34054e1fad005ff8.png

चुनी गई फ़ाइल के बारे में Gemini के जवाब की समीक्षा करें.

f73af988a723142.png

5. GitLab रिपॉज़िटरी और टूलकिट का कॉन्फ़िगरेशन

इस लैब में, GitLab में मर्ज करने के अनुरोध अपने-आप जनरेट करने के लिए, GitLabToolkit का इस्तेमाल किया जाएगा.

LangChain टूलकिट के बारे में खास जानकारी

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

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

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

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

GitLab टूलकिट के बारे में खास जानकारी

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

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

  • फ़ाइल बनाएं - इससे डेटाबेस में एक नई फ़ाइल बनती है.
  • फ़ाइल पढ़ना - इससे रिपॉज़िटरी से कोई फ़ाइल पढ़ी जाती है.
  • Update File - updates a file in the repository.
  • पुल का अनुरोध करें - इससे बॉट की वर्किंग ब्रांच से बेस ब्रांच में पुल का अनुरोध किया जाता है.
  • Get Issues - इससे रिपॉज़िटरी से समस्याएं फ़ेच की जाती हैं.
  • समस्या की जानकारी पाएं - इससे किसी समस्या के बारे में जानकारी मिलती है.
  • समस्या पर टिप्पणी करें - इससे किसी समस्या पर टिप्पणी पोस्ट की जाती है.
  • Delete File - इससे रिपॉज़िटरी से कोई फ़ाइल मिट जाती है.

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

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

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

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

c205fd7524c456dc.png

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

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

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

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

इस कमांड के लिए, आपको 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"

LangSmith LLM ट्रेसिंग कॉन्फ़िगरेशन

अगर आपको LangSmith में एजेंट ट्रेसिंग की जानकारी देखनी है, तो खाता सेट अप करें. ऐसा न करने पर, कमांड को ऐसे ही लागू करें.

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

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

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

export LANGCHAIN_API_KEY=langchain-service-api-key

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

एपीआई पासकोड बनाना

Cloud Console / एपीआई और सेवाएं / क्रेडेंशियल सेक्शन में जाकर, एक नया एपीआई पासकोड बनाएं.

इस कुंजी का इस्तेमाल, Cloud Run ऐप्लिकेशन पर JIRA API कॉल की पुष्टि करने के लिए किया जाएगा.

प्रोडक्शन एनवायरमेंट के लिए, बनाई गई एपीआई कुंजी के लिए ऐप्लिकेशन और एपीआई से जुड़ी पाबंदियां कॉन्फ़िगर करें. ऐप्लिकेशन से जुड़ी पाबंदियों की मदद से, एपीआई पासकोड का इस्तेमाल सिर्फ़ कुछ वेबसाइटों(जैसे, आपका JIRA इंस्टेंस) पर किया जा सकता है.

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

export DEVAI_API_KEY=your-api-key

Secret Manager में सीक्रेट बनाना

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

Secret Manager में ज़रूरी सीक्रेट बनाएं और सेव करें.

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. Devai-API को Cloud Run पर डिप्लॉय करना

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

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

ऐप्लिकेशन को 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" \
  --update-secrets="DEVAI_API_KEY=DEVAI_API_KEY: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 के लॉग की समीक्षा करें.

Artifact Registry में बनाई गई Docker इमेज की समीक्षा करें.

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

टेस्ट ऐप्लिकेशन

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

कमांड चलाने से पहले, Cloud Run सेवा का यूआरएल अपडेट करें.

उदाहरण:

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

8. कहानी अपने-आप लागू होने की सुविधा

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

eda6f59ff15df25e.png

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

Forge CLI को ग्लोबल तौर पर इंस्टॉल करने के लिए, यह कमांड चलाएं:

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" - "Try it now" को चुनें. प्रोजेक्ट/साइट बनाने के लिए, निर्देशों का पालन करें.

5bab2a96e3b81383.png

JIRA Software को चुनें.

785bc4d8bf920403.png

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

8a6e7cdc8224ffa0.png

Atlassian API टोकन बनाना

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

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

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

Forge एनवायरमेंट की सेटिंग कॉन्फ़िगर करना

Cloud Console पर वापस जाएं और टर्मिनल में यहां दिए गए निर्देश चलाएं.

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

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

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

a64378e775125654.png

Forge बैकएंड के लॉग देखें.

forge logs

Atlassian Developer Console

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

10281496d8181597.png

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

d5c3b1a18dee166e.png

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

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

8710dc7cd343a6a4.png

वजह देखें.

e4c9052a0337527d.png

इन फ़ाइलों को खोलें और Gemini Code Assist से इनके बारे में जानकारी देने के लिए कहें:

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

3283420f190cda21.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

DEVAI API Key सेट करें:

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

forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY

नीचे दिए गए कमांड को चलाकर पुष्टि करें:

forge variables list

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

f63a751f0d6211ff.png

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

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

आपको 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 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.

Forge ऐप्लिकेशन को टेस्ट करना

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

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

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

460503e8b2014b52.png

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

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

  • GitLab में मर्ज करने के अनुरोध का लिंक

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

9539d2bd3cbdad28.png

GitLab के मर्ज करने के अनुरोध की पुष्टि करना

GitLab खोलें और अपने प्रोजेक्ट में नए मर्ज अनुरोध देखें.

4c2345a89bfe71ee.png

fa3a552923cd70f1.png

LangSmith LLM ट्रेस

अगर आपने एलएलएम ट्रेसिंग को कॉन्फ़िगर किया है, तो LangSmith पोर्टल खोलें. इसके बाद, GitLab के मर्ज करने के अनुरोध को बनाने के लिए किए गए कॉल के लिए, एलएलएम ट्रेस की समीक्षा करें.

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

1ae0f88ab885f69.png

9. GitHub रिपॉज़िटरी में अपने बदलावों को पुश करना

(OPTIONAL SECTION)

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

Cloud Console पर वापस जाएं और टर्मिनल में 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 ~/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

10. बधाई हो!

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

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

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

इसके बाद क्या होगा:

  • प्रैक्टिकल सेशन के लिए और भी वर्कशॉप आने वाली हैं!

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

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

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

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

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