इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. खास जानकारी
इस लैब में, आपको GenAI की मदद से JIRA की उपयोगकर्ता कहानियों को लागू करने की प्रोसेस को ऑटोमेट करने का समाधान बनाना होगा.
आपको क्या सीखने को मिलेगा
लैब के कई मुख्य हिस्से होते हैं:
- Gemini API के साथ इंटिग्रेट करने के लिए, Cloud Run ऐप्लिकेशन को डिप्लॉय करना
- JIRA के लिए Atlassian Forge ऐप्लिकेशन बनाना और उसे डिप्लॉय करना
- GitLab टास्क ऑटोमेशन के लिए, LangChain ReAct एजेंट का इस्तेमाल करना
ज़रूरी शर्तें
- इस लैब में यह माना गया है कि आपको Cloud Console और Cloud Shell के एनवायरमेंट के बारे में पता है.
2. सेटअप और ज़रूरी शर्तें
Cloud प्रोजेक्ट का सेटअप
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको यह जानने की ज़रूरत नहीं होती कि यह स्ट्रिंग क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे
PROJECT_ID
के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं आता है, तो कोई दूसरा आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास खुद का कोई दूसरा नाम चुनने का विकल्प भी है. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के दौरान बना रहता है. - आपकी जानकारी के लिए बता दें कि तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
- इसके बाद, आपको Cloud के संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब को चलाने के लिए, आपसे कोई शुल्क नहीं लिया जाएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले कार्यक्रम में शामिल हो सकते हैं.
एनवायरमेंट सेटअप करना
Gemini Chat खोलें.
इसके अलावा, खोज बार में "Gemini से पूछें" लिखें.
Google Cloud API के लिए Gemini को चालू करना:
"Start chatting
" पर क्लिक करें और सैंपल के तौर पर दिए गए सवालों में से किसी एक को चुनें या अपना प्रॉम्प्ट टाइप करें.
ये प्रॉम्प्ट आज़माएँ:
- 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 के साथ प्रोटोटाइप बनाने और एक्सपेरिमेंट करने के लिए किया जाता है.
- Gemini का वेब ऐप्लिकेशन (gemini.google.com)
Google Gemini का वेब ऐप्लिकेशन (gemini.google.com), वेब पर काम करने वाला टूल है. इसे Google के Gemini एआई मॉडल को एक्सप्लोर करने और उनका इस्तेमाल करने में आपकी मदद करने के लिए डिज़ाइन किया गया है.
- Android के लिए Google Gemini मोबाइल ऐप्लिकेशन और iOS पर Google ऐप्लिकेशन
4. आवेदन की समीक्षा करना
सेवा खाता बनाएं
Google Cloud Console पर वापस जाएं और खोज बार की दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell को चालू करें.
नया सेवा खाता और कुंजियां बनाने के लिए, खोले गए टर्मिनल में ये कमांड चलाएं.
इस सेवा खाते का इस्तेमाल, 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"
अगर आपसे अनुमति देने के लिए कहा जाता है, तो जारी रखने के लिए "अनुमति दें" पर क्लिक करें.
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 एडिटर खोलना
"File / Open Folder
" मेन्यू आइटम का इस्तेमाल करके, "genai-for-developers
" खोलें.
फ़ाइल "devai-api/app/routes.py
" खोलें. इसके बाद, फ़ाइल में कहीं भी राइट क्लिक करें और संदर्भ मेन्यू से "Gemini > Explain
this"
" चुनें.
चुनी गई फ़ाइल के लिए, Gemini की ओर से दी गई जानकारी देखें.
5. GitLab रिपॉज़िटरी और टूलकिट कॉन्फ़िगरेशन
इस लैब में, GitLab मर्ज रिक्वेस्ट अपने-आप जनरेट होने की सुविधा को ऑटोमेट करने के लिए, GitLabToolkit का इस्तेमाल किया जाएगा.
LangChain टूलकिट की खास जानकारी
LangChain टूलकिट, टूल के ऐसे सेट हैं जिन्हें LangChain की मदद से ऐप्लिकेशन को बेहतर तरीके से डेवलप करने के लिए डिज़ाइन किया गया है. ये टूलकिट के हिसाब से अलग-अलग सुविधाएं देते हैं. हालांकि, आम तौर पर ये इन कामों में मदद करते हैं:
- बाहरी डेटा सोर्स से कनेक्ट करना: LangChain ऐप्लिकेशन में एपीआई, डेटाबेस, और अन्य बाहरी सोर्स से जानकारी ऐक्सेस करें और उसे शामिल करें.
- प्रॉम्प्ट करने की बेहतर तकनीकें: भाषा मॉडल के साथ इंटरैक्शन को ऑप्टिमाइज़ करने के लिए, पहले से बनाए गए प्रॉम्प्ट का इस्तेमाल करें या कस्टम प्रॉम्प्ट बनाएं.
- चेन बनाना और मैनेज करना: आसानी से जटिल चेन बनाएं और उन्हें बेहतर तरीके से मैनेज करें.
- आकलन और मॉनिटरिंग: अपने LangChain ऐप्लिकेशन और चेन की परफ़ॉर्मेंस का विश्लेषण करें.
LangChain टूलकिट के कुछ लोकप्रिय टूल में ये शामिल हैं:
- एजेंट एक्ज़ीक्यूटर टूलकिट: ऐसे एजेंट बनाने के लिए टूल जो वेब ब्राउज़िंग या कोड लागू करने जैसी कार्रवाइयों के ज़रिए, असल दुनिया के साथ इंटरैक्ट कर सकते हैं.
- प्रॉम्प्ट इंजीनियरिंग टूलकिट: असरदार प्रॉम्प्ट बनाने के लिए संसाधनों का कलेक्शन.
GitLab टूलकिट के बारे में खास जानकारी
Gitlab टूलकिट में ऐसे टूल होते हैं जिनकी मदद से एलएलएम एजेंट, gitlab रिपॉज़िटरी के साथ इंटरैक्ट कर सकता है. यह टूल, python-gitlab
लाइब्रेरी के लिए एक रैपर है.
GitLab टूलकिट ये काम कर सकता है:
- फ़ाइल बनाएं - इससे रिपॉज़िटरी में एक नई फ़ाइल बनती है.
- फ़ाइल पढ़ें - यह रिपॉज़िटरी से फ़ाइल पढ़ता है.
- फ़ाइल अपडेट करें - इससे डेटा स्टोर करने की जगह में मौजूद फ़ाइल अपडेट हो जाती है.
- पुल का अनुरोध करें - बॉट की वर्किंग शाखा से बेस शाखा में पुल का अनुरोध करता है.
- समस्या पाएं - यह फ़ंक्शन, डेटा स्टोर करने की जगह से समस्याएं फ़ेच करता है.
- समस्या की जानकारी पाएं - किसी खास समस्या के बारे में जानकारी फ़ेच करता है.
- समस्या पर टिप्पणी करें - किसी खास समस्या पर टिप्पणी पोस्ट की जाती है.
- फ़ाइल मिटाएं - इससे रिपॉज़िटरी से फ़ाइल मिट जाती है.
GitLab प्रोजेक्ट सेटअप करना
GitLab खोलें, नया प्रोजेक्ट बनाएं, और "Settings / Access Tokens
" में जाकर प्रोजेक्ट ऐक्सेस टोकन सेट अप करें.
यहां दी गई जानकारी का इस्तेमाल करें:
- टोकन का नाम:
devai-api-qwiklabs
- भूमिका:
Maintainer
- स्कोप चुनें:
api
ऐक्सेस टोकन की वैल्यू को कॉपी करके, अपने लैपटॉप पर किसी टेम्पररी फ़ाइल में चिपकाएं. इसका इस्तेमाल अगले चरणों में किया जाएगा.
6. Cloud Run पर ऐप्लिकेशन को डिप्लॉय करने की तैयारी करना
Cloud Shell एडिटर पर वापस जाएं और मौजूदा टर्मिनल का इस्तेमाल करें या नया टर्मिनल खोलें.
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"
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 का डेटा स्टोर करने की जगह बनाने के लिए, Y
का जवाब दें.
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in
region [us-central1] will be created.
Do you want to continue (Y/n)? y
gcloud run deploy SERVICE_NAME --source=.
फ़्लो की समीक्षा यहां करें. ज़्यादा जानें.
यह कमांड, Google Cloud के buildpacks
और Cloud Build
का इस्तेमाल करके, आपके सोर्स कोड से कंटेनर इमेज को अपने-आप बनाता है. इसके लिए, आपको अपनी मशीन पर Docker इंस्टॉल करने या बिल्डपैक या Cloud Build सेट अप करने की ज़रूरत नहीं होती. इसका मतलब है कि ऊपर बताए गए एक ही कमांड से वही काम होता है जो gcloud builds submit
और gcloud run deploy
कमांड से होता है.
अगर आपने Dockerfile दिया है(जैसा कि हमने इस रिपॉज़िटरी में किया है), तो Cloud Build इसका इस्तेमाल कंटेनर इमेज बनाने के लिए करेगा. इसके बजाय, वह कंटेनर इमेज का अपने-आप पता लगाने और उन्हें बनाने के लिए, बिल्डपैक पर निर्भर करेगा. बिल्डपैक के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
Console में Cloud Build लॉग की समीक्षा करें.
आर्टफ़ैक्ट रजिस्ट्री में, बनाई गई Docker इमेज की समीक्षा करें.
Cloud Console में, Cloud Run इंस्टेंस की जानकारी देखें.
ऐप्लिकेशन की जांच करना
curl कमांड चलाकर, एंडपॉइंट की जांच करें.
कमांड चलाने से पहले, अपने 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 के साथ इंटिग्रेट होने वाले ऐप्लिकेशन बना सकते हैं.
Forge CLI इंस्टॉल करना
Forge सीएलआई को ग्लोबल तौर पर इंस्टॉल करने के लिए, यह तरीका अपनाएं:
npm install -g @forge/cli
इस लैब के लिए, हम लॉगिन करने के लिए एनवायरमेंट वैरिएबल का इस्तेमाल करेंगे.
JIRA प्रोजेक्ट सेटअप करना
JIRA प्रोजेक्ट बनाने/देखने के लिए, अपने निजी खाते का इस्तेमाल करें.
अपने मौजूदा JIRA प्रोजेक्ट की समीक्षा करें: https://admin.atlassian.com/
अपने निजी खाते का इस्तेमाल करके, JIRA में नया प्रोजेक्ट बनाएं.
https://team.atlassian.com/your-work पर जाएं और पर क्लिक करें. इसके बाद,
को चुनें. इसके बाद, "JIRA Software" - "इसे अभी आज़माएं" को चुनें. प्रोजेक्ट/साइट बनाने के लिए, निर्देशों का पालन करें.
JIRA Software चुनें.
नया प्रोजेक्ट बनाएं.
Atlassian एपीआई टोकन बनाना
सीएलआई में लॉग इन करने के लिए, कोई नया Atlassian एपीआई टोकन बनाएं या किसी मौजूदा टोकन का इस्तेमाल करें.
कमांड चलाते समय, सीएलआई आपके टोकन का इस्तेमाल करता है.
- https://id.atlassian.com/manage/api-tokens पर जाएं.
- एपीआई टोकन बनाएं पर क्लिक करें.
- अपने एपीआई टोकन के बारे में बताने के लिए कोई लेबल डालें. उदाहरण के लिए, forge-api-token.
- बनाएं पर क्लिक करें.
- क्लिपबोर्ड पर कॉपी करें पर क्लिक करें और डायलॉग बॉक्स बंद करें.
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
ऐप्लिकेशन फ़ोल्डर में बदलें.
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
" बटन दिखेगा.
बटन पर क्लिक करें और यूज़र इंटरफ़ेस (यूआई) में बदलावों की समीक्षा करें.
फ़ोरज के बैकएंड लॉग देखें.
forge logs
Atlassian Developer Console
Atlassian Developer Console में भी डिप्लॉय किए गए ऐप्लिकेशन देखे और मैनेज किए जा सकते हैं.
लॉग की समीक्षा करें - Development
एनवायरमेंट पर स्विच करें,
Forge ऐप्लिकेशन मेनिफ़ेस्ट और सोर्स कोड की समीक्षा करना
"devai-jira-ui-qwiklabs/manifest.yml
" फ़ाइल खोलें और कॉन्फ़िगरेशन के बारे में बताने के लिए, Gemini Code Assist का इस्तेमाल करें.
वजह देखें.
नीचे दी गई फ़ाइलें खोलें और Gemini Code Assist से उनके बारे में जानकारी मांगें:
devai-jira-ui-qwiklabs/src/frontend/index.jsx
devai-jira-ui-qwiklabs/src/resolvers/index.js
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 पासकोड सेट करें:
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
नीचे दिया गया कमांड चलाकर पुष्टि करें:
forge variables list
आउटपुट का सैंपल
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/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
आउटपुट का सैंपल:
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 टास्क खोलें या नया टास्क बनाएं.
अगर पिछले पैनल को पहले से जोड़ा जा चुका है, तो आपको उसे हटाना होगा.
"...
" पर क्लिक करें और मेन्यू से 'हटाएं' को चुनें. इसके बाद, बटन पर फिर से क्लिक किया जा सकता है.
Jira पर की गई टिप्पणियां देखना
DEVAI API से जवाब मिलने के बाद, JIRA समस्या पर एक टिप्पणी जोड़ी जाएगी.
- GitLab मर्ज रिक्वेस्ट का लिंक
व्यू को रीफ़्रेश करने के लिए, "History
" और "Comments
" टैब के बीच टॉगल करें.
GitLab मर्ज अनुरोध की पुष्टि करना
GitLab खोलें और अपने प्रोजेक्ट में नए मर्ज रिक्वेस्ट देखें.
LangSmith LLM के ट्रेस
अगर आपने एलएलएम ट्रैकिंग को कॉन्फ़िगर किया है, तो LangSmith पोर्टल खोलें और GitLab मर्ज रिक्वेस्ट बनाने के कॉल के लिए एलएलएम ट्रेस की समीक्षा करें.
LangSmith LLM ट्रेस का सैंपल.
9. GitHub रिपॉज़िटरी में अपने बदलावों को पुश करना
(ज़रूरी नहीं है)
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 के एपीआई के साथ इंटिग्रेट करने के लिए, Cloud Run ऐप्लिकेशन को डिप्लॉय करने का तरीका.
- JIRA के लिए Atlassian Forge ऐप्लिकेशन बनाने और उसे डिप्लॉय करने का तरीका.
- GitLab टास्क ऑटोमेशन के लिए, LangChain ReAct एजेंट का इस्तेमाल करने का तरीका.
- LangSmith में एलएलएम के ट्रेस की समीक्षा करने का तरीका.
आगे क्या करना है:
- इस तरह के और भी सेशन आने वाले हैं!
व्यवस्थित करें
इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिया जाए, इसके लिए संसाधनों वाले प्रोजेक्ट को मिटाएं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.
प्रोजेक्ट मिटाना
बिलिंग की सुविधा बंद करने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाया गया प्रोजेक्ट मिटाना है.
©2024 Google LLC. सभी अधिकार सुरक्षित हैं. Google और Google का लोगो, Google LLC के ट्रेडमार्क हैं. दूसरी सभी कंपनियां और प्रॉडक्ट के नाम, उन कंपनियों के ट्रेडमार्क हो सकते हैं जिनसे वे जुड़े हुए हैं.