1. खास जानकारी
इस लैब में, आपको सीआईसीडी पाइपलाइन सेट अप करनी होगी. साथ ही, कोड की समीक्षा के चरणों को ऑटोमेट करने के लिए, Gemini के साथ इंटिग्रेट करना होगा.
आपको क्या सीखने को मिलेगा
इस लैब में, आपको ये काम करने का तरीका पता चलेगा:
- GitHub, GitLab, और CircleCI में GenAI कोड की समीक्षा के ऑटोमेशन चरण जोड़ने का तरीका
- GitLab की समस्या पर टिप्पणी करने और JIRA टिकट खोलने जैसे कामों को ऑटोमेट करने के लिए, LangChain ReAct एजेंट और टूलकिट का इस्तेमाल कैसे करें
ज़रूरी शर्तें
- यह लैब, Cloud Console और Cloud Shell एनवायरमेंट के बारे में अच्छी तरह से समझ लेता है.
2. सेटअप और ज़रूरी शर्तें
Cloud प्रोजेक्ट का सेटअप
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको अपना प्रोजेक्ट आईडी बताना होगा. आम तौर पर, इसकी पहचान
PROJECT_ID
के रूप में की जाती है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास खुद का कोई दूसरा नाम चुनने का विकल्प भी है. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के दौरान बना रहता है. - आपकी जानकारी के लिए बता दें कि तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
एनवायरमेंट सेटअप करना
Gemini Chat खोलें.
इसके अलावा, "Gemini से पूछें" टाइप करें लिखें.
Cloud AI Companion API को चालू करें:
"Start chatting
" पर क्लिक करें और सैंपल के तौर पर दिए गए सवालों में से किसी एक का इस्तेमाल करें या अपना प्रॉम्प्ट टाइप करें.
ये प्रॉम्प्ट आज़माएँ:
- Cloud Run के बारे में 5 खास बातों के बारे में बताएं.
- आप Google Cloud Run के प्रॉडक्ट मैनेजर हैं. किसी छात्र को पांच मुख्य बातों में Cloud Run के बारे में बताएं.
- आप Google Cloud Run प्रॉडक्ट मैनेजर हैं, कृपया 5 छोटे-छोटे सवालों के जवाब में, सर्टिफ़ाइड 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. प्रॉम्प्ट की जांच करने के विकल्प
अगर आपको मौजूदा Devai cli प्रॉम्प्ट को बदलना/बढ़ाना है, तो आपके पास इसके लिए कई विकल्प हैं.
Vertex AI Studio, Google Cloud के Vertex AI प्लैटफ़ॉर्म का एक हिस्सा है. इसे खास तौर पर जनरेटिव एआई मॉडल के डेवलपमेंट और उनके इस्तेमाल को आसान बनाने और तेज़ी से इस्तेमाल करने के लिए डिज़ाइन किया गया है.
Google AI Studio, वेब पर आधारित एक टूल है. इसका इस्तेमाल प्रॉम्प्ट इंजीनियरिंग और Gemini API के साथ प्रोटोटाइप बनाने और एक्सपेरिमेंट करने के लिए किया जाता है. 10 लाख संदर्भ विंडो वाले Gemini 1.5 Pro के लिए साइन अप करें या ज़्यादा जानें.
- Gemini का वेब ऐप्लिकेशन (gemini.google.com)
Google Gemini का वेब ऐप्लिकेशन (gemini.google.com), वेब पर काम करने वाला टूल है. इसे Google के Gemini एआई मॉडल की सुविधाओं को एक्सप्लोर करने और उनका इस्तेमाल करने में आपकी मदद करने के लिए डिज़ाइन किया गया है.
- Android के लिए Google Gemini मोबाइल ऐप्लिकेशन और iOS पर Google ऐप्लिकेशन
4. सेवा खाता बनाएं
सर्च बार की दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell चालू करें.
खुले हुए टर्मिनल में, Vertex AI API और Gemini Chat का इस्तेमाल करने के लिए ज़रूरी सेवाएं चालू करें.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
अनुमति देने के लिए पूछे जाने पर, "अनुमति दें" पर क्लिक करें जारी रखने के लिए.
नया सेवा खाता और कुंजियां बनाने के लिए, नीचे दिए गए निर्देशों का पालन करें.
इस सेवा खाते का इस्तेमाल, CICD पाइपलाइन से Vertex AI Gemini API को एपीआई कॉल करने के लिए किया जाएगा.
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 --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" --condition None
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor" --condition None
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
5. अपने निजी GitHub रेपो को फ़ोर्क करें
https://github.com/GoogleCloudPlatform/genai-for-developers/fork पर जाएं और मालिक के तौर पर अपना GitHub उपयोगकर्ता आईडी चुनें.
"मुख्य" को कॉपी करने के विकल्प से सही का निशान हटाएं की अनुमति है.
"Create fork
" पर क्लिक करें.
6. GitHub Actions वर्कफ़्लो चालू करना
ब्राउज़र में, फ़ोर्क किया गया GitHub रेपो खोलें और "Actions
" पर स्विच करें Tab का इस्तेमाल करके वर्कफ़्लो चालू करें.
7. डेटा स्टोर करने की जगह के लिए पासकोड जोड़ना
फ़ोक की गई GitHub रिपॉज़िटरी में, "Settings / Secrets and variables / Actions
" में जाकर रिपॉज़िटरी का पासवर्ड बनाएं.
"GOOGLE_API_CREDENTIALS
" नाम वाला रिपॉज़िटरी सीक्रेट जोड़ें.
Google Cloud Shell विंडो/टैब पर स्विच करें और यहां दिए गए कमांड को Cloud Shell टर्मिनल में चलाएं.
cat ~/vertex-client-key.json
फ़ाइल का कॉन्टेंट कॉपी करें और उसे सीक्रेट की वैल्यू के तौर पर चिपकाएं.
वैल्यू के तौर पर, अपने Qwiklabs प्रोजेक्ट आईडी के साथ PROJECT_ID
सीक्रेट जोड़ें
8. GitHub ऐक्शन वर्कफ़्लो चलाएं
ब्राउज़र में अपनी GitHub रिपॉज़िटरी पर जाएं और वर्कफ़्लो चलाएं.
वर्कफ़्लो को कोड पुश या मैन्युअल तरीके से एक्ज़ीक्यूट करने के लिए कॉन्फ़िगर किया गया है.
सभी वर्कफ़्लो में जाकर, "GenAI For Developers
" चुनें. इसके बाद, "main
" शाखा का इस्तेमाल करके, "Run workflow
" पर क्लिक करें.
समीक्षा के नतीजे:
टेस्ट कवरेज कमांड के नतीजे:
devai review testcoverage -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
कोड की समीक्षा वाले निर्देश के नतीजे:
devai review code -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
परफ़ॉर्मेंस की समीक्षा वाले निर्देश के नतीजे:
devai review performance -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
सुरक्षा समीक्षा के लिए दिए गए निर्देश के नतीजे:
devai review security -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
ब्लॉक करने वाले लोग निर्देश के नतीजों की समीक्षा करते हैं:
devai review blockers -c ${{ github.workspace }}/sample-app/pom.xml
9. डेटा स्टोर करने की जगह को क्लोन करना
Cloud Shell टर्मिनल पर वापस जाएं और रिपॉज़िटरी को क्लोन करें.
GitHub रिपॉज़िटरी के लिए एक फ़ोल्डर बनाएं.
mkdir github
cd github
निर्देश चलाने से पहले, YOUR-GITHUB-USERID
को अपने GitHub यूज़र आईडी में बदलें.
टर्मिनल में Git उपयोगकर्ता नाम और ईमेल सेट करें.
निर्देश चलाने से पहले, वैल्यू अपडेट करें.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
git clone https://github.com/YOUR-GITHUB-USERID/genai-for-developers.git
फ़ोल्डर बदलें और वर्कफ़्लो फ़ाइल को क्लाउड शेल एडिटर में खोलें.
cd genai-for-developers
cloudshell edit .github/workflows/devai-review.yml
कॉन्फ़िगरेशन फ़ाइल के IDE में दिखने तक इंतज़ार करें.
10. Gemini Code Assist की सुविधा चालू करना
सबसे नीचे दाएं कोने में मौजूद, "Gemini
" आइकॉन पर क्लिक करें,
"Login to Google Cloud
" पर क्लिक करें और "Select a Google Cloud Project
" शामिल हैं.
पॉप-अप विंडो से, अपना Qwiklabs प्रोजेक्ट चुनें.
11. Gemini Code Assist की मदद से कोड के बारे में जानकारी पाना
devai-review.yml
फ़ाइल में कहीं भी राइट क्लिक करें और इसे Gemini Code Assist > Explain
चुनें.
समीक्षा की जानकारी:
12. DEVAI CLI को स्थानीय तौर पर चलाएं
Cloud Shell एडिटर पर वापस जाएं और नया टर्मिनल खोलें.
devai
को स्थानीय तौर पर इंस्टॉल करने के लिए, Cloud Shell टर्मिनल पर वापस जाएं और यहां दिए गए निर्देशों को चलाएं.
pip3 install devai-cli
cli इंस्टॉल किया गया था, लेकिन यह PATH में नहीं है.
WARNING: The script devai is installed in '/home/student_00_478dfeb8df15/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
PATH एनवायरमेंट वैरिएबल को अपडेट करने के लिए, नीचे दिया गया कमांड चलाएं. उपयोगकर्ता के होम फ़ोल्डर के नाम से बदलें. उदाहरण के लिए: student_00_478dfeb8df15
export PATH=$PATH:/home/YOUR-USER-HOME-FOLDER/.local/bin
स्थानीय तौर पर कोड समीक्षा करने के लिए devai cli आदेश चलाएं. cli आउटपुट की समीक्षा करें.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
cd ~/github/genai-for-developers
devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
समीक्षा स्क्रिप्ट खोलने के लिए, यहां दिया गया कमांड चलाएं:
cloudshell edit devai-cli/src/devai/commands/review.py
review.py
फ़ाइल में कहीं भी राइट क्लिक करें और इसे Gemini Code Assist > Explain
चुनें.
वजह देखें.
13. DevAI CLI डेवलपमेंट
इस सेक्शन में, आपको devai cli में बदलाव करने होंगे.
शुरू करने के लिए, python virtualenv सेट अप करें, ज़रूरी शर्तें इंस्टॉल करें, और सैंपल कमांड चलाएं.
cd ~/github/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
सब कुछ ठीक से काम कर रहा है या नहीं, यह देखने के लिए टेस्ट कवरेज की समीक्षा वाला कमांड चलाएं:
devai review testcoverage -c ~/github/genai-for-developers/sample-app/src
Cloud Shell Editor में Markdown की झलक का इस्तेमाल करके, नतीजे देखें.
नई फ़ाइल बनाएं और Gemini के जवाब को चिपकाएं.
इसके बाद, Command पैलेट का इस्तेमाल करें और "Markdown: Open Preview
" को चुनें.
14. Devai Cli के निर्देशों को एक्सप्लोर करें
कोड की समीक्षा करने का निर्देश
devai review code -c ~/github/genai-for-developers/sample-app/src/main/java
परफ़ॉर्मेंस की समीक्षा करने का निर्देश
devai review performance -c ~/github/genai-for-developers/sample-app/src/main/java
सुरक्षा की समीक्षा करने का निर्देश
devai review security -c ~/github/genai-for-developers/sample-app/src/main/java
कवरेज की समीक्षा करने का निर्देश
devai review testcoverage -c ~/github/genai-for-developers/sample-app/src
ब्लॉकर को मिलने वाले निर्देशों की समीक्षा करें
devai review blockers -c ~/github/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/github/genai-for-developers/sample-app/setup.md
इमेज/डायग्राम की समीक्षा और खास जानकारी:
इनपुट डायग्राम[~/github/genai-for-developers/images/extension-diagram.png
]:
निर्देश की समीक्षा करें:
devai review image \
-f ~/github/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram"
आउटपुट:
The diagram outlines a process for conducting local code reviews using a VS Code extension or CLI, leveraging Google Cloud's Vertex AI (Gemini Pro) for generating review prompts. **Process Flow:** 1. **Code Style Check:** Developers initiate the process by checking their code for adherence to pre-defined style guidelines. 2. **Prompt Generation:** The VS Code extension/CLI sends the code to Vertex AI (Gemini Pro) on Google Cloud. 3. **Vertex AI Review:** Vertex AI analyzes the code and generates relevant review prompts. 4. **Local Review:** The prompts are sent back to the developer's IDE for their consideration. 5. **Optional Actions:** Developers can optionally: - Create new JIRA issues directly from the IDE based on the review prompts. - Generate new issues in a GitLab repository. **Key Components:** * **VS Code Extension/CLI:** Tools facilitating the interaction with Vertex AI and potential integrations with JIRA and GitLab. * **Vertex AI (Gemini Pro):** Google Cloud's generative AI service responsible for understanding the code and generating meaningful review prompts. * **Google Cloud Secret Manager:** Securely stores API keys and access tokens required to authenticate and interact with Google Cloud services. * **JIRA/GitLab (Optional):** Issue tracking and project management tools that can be integrated for a streamlined workflow. **Benefits:** * **Automated Review Assistance:** Leveraging AI to generate review prompts saves time and improves the consistency and quality of code reviews. * **Local Development:** The process empowers developers to conduct reviews locally within their familiar IDE. * **Integration Options:** The flexibility to integrate with project management tools like JIRA and GitLab streamlines workflow and issue tracking.
इमेज के अंतर का विश्लेषण:
devai review imgdiff \
-c ~/github/genai-for-developers/images/devai-api.png \
-t ~/github/genai-for-developers/images/devai-api-slack.png
आउटपुट:
The following UI elements are missing in the "AFTER UPGRADE STATE" image compared to the "BEFORE UPGRADE STATE" image: 1. **Slack:** The entire Slack element, including the icon, "Team channel" label, and the arrow indicating interaction, is absent in the AFTER UPGRADE image. 2. **Storage Bucket:** The "Storage Bucket" element with its icon and "PDFs" label is missing in the AFTER UPGRADE image. 3. **"GenAI Agents" label in Vertex AI block:** The BEFORE UPGRADE image has "Vertex AI Agents" and "GenAI Agent" labels within the Vertex AI block, while the AFTER UPGRADE image only has "Vertex AI." 4. **"Open JIRA Issue" and "Team Project" labels:** In the BEFORE UPGRADE image, these labels are connected to the JIRA block with an arrow. These are missing in the AFTER UPGRADE image. **Decision Explanation:** The analysis is based on a direct visual comparison of the two provided images, noting the presence and absence of specific UI elements and their associated labels. The elements listed above are present in the BEFORE UPGRADE image but absent in the AFTER UPGRADE image.
दस्तावेज़ जनरेट करने का निर्देश:
devai document readme -c ~/github/genai-for-developers/sample-app/src/main/
आउटपुट:
# Bank of Anthos - Balance Reader Service ## Table of Contents - [Description](#description) - [Features](#features) - [Technologies Used](#technologies-used) - [Installation](#installation) - [Configuration](#configuration) - [Usage](#usage) - [Health Checks](#health-checks) - [Metrics and Tracing](#metrics-and-tracing) - [Contributing](#contributing) - [License](#license) ## Description The Balance Reader service is a component of the Bank of Anthos sample application. It provides a REST endpoint for retrieving the current balance of a user account. This service demonstrates key concepts for building microservices with Spring Boot and deploying them to a Kubernetes cluster. ## Features - Securely retrieves account balances using JWT authentication. - Leverages a local cache for fast balance retrieval. - Asynchronously processes transactions from a central ledger. - Provides health check endpoints for Kubernetes liveness and readiness probes. - Exposes metrics to Stackdriver for monitoring and observability. - Supports distributed tracing with Zipkin. ## Technologies Used - Java - Spring Boot - Spring Data JPA - Hibernate - Google Cloud SQL (PostgreSQL) - JWT (JSON Web Token) - Guava Cache - Micrometer - Stackdriver - Zipkin ## Installation 1. **Prerequisites:** - Java 17 or later - Maven 3.5 or later - Docker (for containerization) - Kubernetes cluster (for deployment) - Google Cloud account (for Stackdriver and other GCP services)
Cloud Shell Editor में उपलब्ध devai cli निर्देशों की समीक्षा करें:
cloudshell edit ~/github/genai-for-developers/devai-cli/README.md
इसके अलावा, GitHub रिपॉज़िटरी में README.md की समीक्षा की जा सकती है.
15. किसी फ़ाइल में सभी एनवायरमेंट वैरिएबल को ट्रैक करना
आपको जो भी एनवायरमेंट वैरिएबल बनाने हैं उनका ट्रैक रखने के लिए, एक नई फ़ाइल बनाएं. जैसे, एपीआई कुंजियां, एपीआई टोकन वगैरह.
जैसे-जैसे आप लैब में जाएंगे, अलग-अलग सिस्टम के लिए उनका इस्तेमाल कई बार किया जाएगा. इससे उन्हें एक ही जगह पर देखना आसान हो जाएगा.
16. LangSmith LLM ट्रैकिंग कॉन्फ़िगरेशन
LangSmith खाता बनाएं और Settings सेक्शन में, Service API पासकोड जनरेट करें. https://docs.smith.langchain.com/
LangSmith इंटिग्रेशन के लिए ज़रूरी एनवायरमेंट वैरिएबल सेट करें. निर्देश चलाने से पहले, सेवा की एपीआई कुंजी बदलें.
export LANGCHAIN_API_KEY=langsmith-service-api-key
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
टर्मिनल में संवेदनशील जानकारी को ज़ाहिर होने से रोकने के लिए, read -s
का इस्तेमाल करना सबसे सही तरीका है. यह एनवायरमेंट वैरिएबल सेट करने का एक सुरक्षित तरीका है. इससे कंसोल के कमांड इतिहास में वैल्यू नहीं दिखती. इसे चलाने के बाद, आपको वैल्यू चिपकाकर Enter दबाना होगा.
17. JIRA कमांड कॉन्फ़िगरेशन
अगर आपके पास कोई JIRA खाता नहीं है, तो एक JIRA खाता बनाएं.
अपने प्रोजेक्ट के लिए JIRA API टोकन बनाएं. https://id.atlassian.com/manage-profile/security/api-tokens
JIRA इंटिग्रेशन के लिए ज़रूरी इन एनवायरमेंट वैरिएबल को सेट करें. इसके बाद, कमांड चलाएं.
export JIRA_API_TOKEN=your-token-value
export JIRA_USERNAME="email that you used to register with JIRA"
export JIRA_INSTANCE_URL="https://YOUR-PROJECT.atlassian.net"
export JIRA_PROJECT_KEY="JIRA project key"
export JIRA_CLOUD=true
review.py
फ़ाइल खोलने के लिए:
cloudshell edit ~/github/genai-for-developers/devai-cli/src/devai/commands/review.py
review.py
फ़ाइल की समीक्षा करें:
source=source.format(format_files_as_string(context)) code_chat_model = GenerativeModel(model_name) code_chat = code_chat_model.start_chat() code_chat.send_message(qry) response = code_chat.send_message(source) ... else: click.echo(response.text)
इसके नीचे, लाइन ढूंढें और टिप्पणी हटाएं:
# Uncomment after configuring JIRA and GitLab env variables - see README.md for details
फ़ाइल में सबसे ऊपर JIRA कमांड इंपोर्ट करना
# from devai.commands.jira import create_jira_issue
code
तरीके में JIRA समस्या बनाने का तरीका
#create_jira_issue("Code Review Results", response.text)
कोड की समीक्षा करने वाला निर्देश फिर से चलाएं और एजेंट का आउटपुट देखें:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
devai review code -c ~/github/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
आउटपुट का उदाहरण:
(venv) student_00_19a997c157f8@cloudshell:~/genai-for-developers/devai-cli (qwiklabs-gcp-02-71a9948ae110)$ devai review code -c ../sample-app/src/main/java/anthos/samples/bankofanthos/balancereader /home/student_00_19a997c157f8/genai-for-developers/devai-cli/venv/lib/python3.9/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The function `initialize_agent` was deprecated in LangChain 0.1.0 and will be removed in 0.2.0. Use new agent constructor methods like create_react_agent, create_json_agent, create_structured_chat_agent, etc. instead. warn_deprecated( Response from Model: ```java // Class: TransactionRepository // Method: findBalance // Efficiency - Consider using a native SQL query to improve performance for complex database operations. - Use prepared statements to avoid SQL injection vulnerabilities. // Best Practices - Return a Optional<Long> instead of null to handle the case when no balance is found for the given account.
/home/student_00_19a997c157f8/genai-for-developers/devai-cli/venv/lib/python3.9/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecation चेतावनी: __call__
फ़ंक्शन को LangChain में 0.2.0.0 में हटा दिया जाएगा इसके बजाय, invoke.warn_deprecated(
नई Agent एक्ज़ीक्यूटिव चेन आ रही है... सोच: सवाल में जानकारी दी गई है, इसलिए कार्रवाई के बारे में सोचने की ज़रूरत नहीं है:
{
"action": "create_issue",
"action_input": {
"description": "Class: TransactionRepository\nMethod: findBalance\n\nEfficiency\n- Consider using a native SQL query to improve performance for complex database operations.\n- Use prepared statements to avoid SQL injection vulnerabilities.\n\nBest Practices\n- Return a Optional<Long> instead of null to handle the case when no balance is found for the given account."
}
}
इस कुंजी से जुड़ी नई समस्या: CYMEATS-117
जानकारी: कुंजी के साथ नई समस्या बनाई गई: CYMEATS-117 सुझाव:आखिरी जवाब: CYMEATS-117
प्रोसेस पूरी हो गई है.
Open your JIRA project in the browser and review the created issue.
Sample JIRA issue view.
<img src="img/9a93a958c30f0b51.png" alt="9a93a958c30f0b51.png" width="624.00" />
Open [LangSmith portal](https://smith.langchain.com/) and review LLM trace for JIRA issue creation call.
Sample LangSmith LLM trace.
<img src="img/6222ee1653a5ea54.png" alt="6222ee1653a5ea54.png" width="624.00" />
## Import GitHub repo to GitLab repo
Go to [https://gitlab.com/projects/new](https://gitlab.com/projects/new) and select "`Import project`" / "`Repository by URL`" option:
Git repository url:
https://github.com/GoogleCloudPlatform/genai-for-developers.git
Or
Your personal GitHub project that you created earlier in this lab.
Under Project URL - select your GitLab userid
Set Visibility to `Public`.
Click - "`Create Project`" to start the import process.
If you see an error about invalid GitHub Repository URL, [create a new GitHub token](https://github.com/settings/tokens)(fine-grained) with Public repositories read-only access, and retry import again providing your GitHub userid and token.
## Clone GitLab repo and setup SSH key
Return to Google Cloud Shell terminal and set up a new SSH key.
Update your email before running the commands. Hit enter multiple times to accept defaults.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
बिल्ली ~/.ssh/id_ed25519.pub
Add a public key to your GitLab account.
Open [https://gitlab.com/-/profile/keys](https://gitlab.com/-/profile/keys) and click "Add new key".
For the key value copy/paste the output of the last command.
Go back to the terminal and clone the repository.
cd ~ mkmir gitlab cd gitlab
Replace with your GitLab userid and repository url that was just created.
```console
git clone git@gitlab.com:YOUR_GITLAB_USERID/genai-for-developers.git
डायरेक्ट्री बदलें और .gitlab-ci.yml
फ़ाइल खोलें.
cd genai-for-developers
cloudshell edit .gitlab-ci.yml
अगर आपने पहले ऐसा नहीं किया है, तो Cloud Shell Editor में Gemini
को चालू करें.
.gitlab-ci.yml
फ़ाइल में कहीं भी राइट क्लिक करें और "Gemini Code Assist > Explain
this"
" चुनें.
18. GitLab कमांड कॉन्फ़िगरेशन
GitLab खोलें और "Settings / Access Tokens
" में जाकर, प्रोजेक्ट ऐक्सेस टोकन बनाएं जो पिछले चरणों में बनाया गया था.
अगले चरणों में इस्तेमाल करने के लिए, ऐक्सेस टोकन की वैल्यू को कॉपी करके सेव करें.
नीचे दी गई जानकारी का इस्तेमाल करें:
- टोकन का नाम:
devai-cli-qwiklabs
- भूमिका:
Maintainer
- दायरा:
api
GitLab इंटिग्रेशन के लिए ज़रूरी एनवायरमेंट वैरिएबल सेट करें.
इस निर्देश के लिए आपको अपना GitLab ऐक्सेस टोकन अपडेट करना होगा.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-access-token
इस निर्देश के लिए आपको अपना GitLab उपयोगकर्ता आईडी और रिपॉज़िटरी का नाम अपडेट करना होगा.
export GITLAB_REPOSITORY="USERID/REPOSITORY"
बाकी एनवायरमेंट वैरिएबल सेट करें:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
GitLab की वेबसाइट खोलें और अपने प्रोजेक्ट में "CICD AI Insights
" टाइटल के साथ एक नई GitLab समस्या बनाएं.
दूसरा विकल्प नीचे दिए गए कर्ल कमांड का इस्तेमाल करना है. आपको एक GitLab प्रोजेक्ट आईडी की ज़रूरत होगी - इसे "Settings
/ General
" में देखा जा सकता है सेक्शन में जाएं.
export GITLAB_PROJECT_ID=56390153 # replace
curl --request POST \
--header "PRIVATE-TOKEN: $GITLAB_PERSONAL_ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"title":"CICD AI Insights"}' \
https://gitlab.com/api/v4/projects/$GITLAB_PROJECT_ID/issues
Cloud Shell पर वापस जाएं और review.py
फ़ाइल खोलें:
cloudshell edit ~/gitlab/genai-for-developers/devai-cli/src/devai/commands/review.py
नीचे दिए गए कोड को ढूंढें और उससे टिप्पणी हटाएं
GitLab कमांड इंपोर्ट करने के लिए लाइन
# from devai.commands.gitlab import create_gitlab_issue_comment
GitLab समस्या पर टिप्पणी करने का तरीका
# create_gitlab_issue_comment(response.text)
19. DevAI CLI का डेवलपमेंट
GitLab repo/directory पर स्विच करने के बाद. आपको सेटअप करने के लिए, यहां दिया गया तरीका फिर से अपनाना होगा.
टर्मिनल में, अपना python virtualenv सेट अप करें, ज़रूरी शर्तें इंस्टॉल करें, और सैंपल कमांड चलाएं.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
cd ~/gitlab/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
cli की जगह की जानकारी की पुष्टि करें - अब यह GitLab फ़ोल्डर में होना चाहिए.
which devai
टर्मिनल में कोड की समीक्षा करने का निर्देश फिर से चलाएं:
devai review code -c ~/gitlab/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
आउटपुट का सैंपल - कुछ सेक्शन छोटे किए गए हैं:
(venv) student_00_19a997c157f8@cloudshell:~/genai-for-developers/devai-cli (qwiklabs-gcp-02-71a9948ae110)$ devai review code -c ../sample-app/src/main/java/anthos/samples/bankofanthos/balancereader . . Response from Model: **Class: Transaction** **Method: toString** **Maintainability:** * The formatting of the string representation could be more clear and concise. Consider using a dedicated method for formatting the amount, e.g., `formatAmount()`. . . > Entering new AgentExecutor chain... Thought: I need to first get the issue ID using the Get Issues tool, then I can comment on the issue using the Comment on Issue tool. Action: Get Issues Action Input: Observation: Found 1 issues: [{'title': 'CICD AI Insights', 'number': 1}] Thought:Thought: I found the issue ID, so now I can add the comment to the issue. Action: Comment on Issue Action Input: 1 Action: Get Issue Action Input: 1 Observation: {"title": "CICD AI Insights", "body": "", "comments": "[{'body': '**Transaction.java**\\n\\n\\n**Class:** Transaction\\n\\n\\n* **Security:** Consider using a custom date format like \\\\\"yyyy-MM-dd HH:mm:ss.SSS\\\\\" to handle timestamps more robustly.\\n\\n\\n**JWTVerifierGenerator.java**\\n\\n\\n* . . Thought:Now I can use the Comment on Issue tool to add the comment to the issue. Action: Comment on Issue Action Input: 1 **Class: Transaction** **Method: toString** **Maintainability:** . . . Observation: Commented on issue 1 Thought:I have now completed the necessary actions and added the comment to the issue 'CICD AI Insights'. Final Answer: Comment added to issue 'CICD AI Insights' > Finished chain.
GitLab वेबसाइट खोलें और अपडेट की गई समस्या की समीक्षा करें.
LangSmith में जाकर, एलएलएम ट्रेस की समीक्षा करें.
एलएलएम ट्रेस का सैंपल.
20. GitLab रिपॉज़िटरी में बदलावों को पुश करना
Google Cloud Shell एडिटर पर वापस जाएं.
"Source Control
" टैब पर स्विच करें.
review.py
फ़ाइल को अपडेट करने के लिए, किए गए बदलावों को स्टेज करें, कमिट करें, और उन्हें पुश करें.
21. GitLab CICD कॉन्फ़िगरेशन
इसके बाद, डेटा स्टोर करने की जगह में बदलावों को पुश करने के बाद, कोड की समीक्षा करने के लिए GitLab CICD पाइपलाइन को चालू किया जाएगा.
GitLab वेबसाइट खोलें और "Settings / CICD"
सेक्शन पर जाएं.
Variables
सेक्शन को बड़ा करें और "Add variable
" पर क्लिक करें.
वैरिएबल जोड़ते समय, सभी चेकबॉक्स से सही का निशान हटाना न भूलें. उदाहरण:
जहां सभी एनवायरमेंट वैरिएबल रखे जा रहे हैं वहां अपने नोट का इस्तेमाल करके JIRA, GitLab, और LangSmith के लिए एनवायरमेंट वैरिएबल जोड़ें.
PROJECT_ID=qwiklabs-project-id LOCATION=us-central1 GOOGLE_CLOUD_CREDENTIALS - cat ~/vertex-client-key.json LANGCHAIN_TRACING_V2=true LANGCHAIN_ENDPOINT="https://api.smith.langchain.com" LANGCHAIN_API_KEY=your-service-api-key JIRA_API_TOKEN=your-token JIRA_USERNAME="email that you used to register with JIRA" JIRA_INSTANCE_URL="https://YOUR-PROJECT.atlassian.net" JIRA_PROJECT_KEY="JIRA project key" JIRA_CLOUD=true GITLAB_PERSONAL_ACCESS_TOKEN=your-gitlab-token GITLAB_URL="https://gitlab.com" GITLAB_REPOSITORY="USERID/REPOSITORY" GITLAB_BRANCH="devai" GITLAB_BASE_BRANCH="main"
GOOGLE_CLOUD_CREDENTIALS
वैरिएबल वैल्यू के लिए, ऊपर दिए गए सेक्शन में बनाई गई सेवा खाते की कुंजी का इस्तेमाल करें.
cat ~/vertex-client-key.json
सीआई/सीडी वैरिएबल व्यू:
22. GitLab CICD पाइपलाइन चलाना
"Build / Pipelines
" खोलें GitLab यूज़र इंटरफ़ेस (यूआई) में जाएं और "Run Pipeline
" पर क्लिक करें.
23. GitLab पाइपलाइन के आउटपुट की समीक्षा करना
"Build / Jobs
" खोलें और पाइपलाइन आउटपुट की समीक्षा करें.
GitLab की वेबसाइट खोलें और "CICD Insights
" समस्या के बारे में अपडेट की गई टिप्पणियों की समीक्षा करें.
GitLab वर्कफ़्लो निष्पादन बंद करें
Google Cloud Shell Editor पर वापस जाएं. कोड पुश इवेंट पर GitLab वर्कफ़्लो को बंद करने के लिए, लाइनों से कम्यूट हटाएं. यूज़र इंटरफ़ेस (यूआई) की मदद से, अब भी मांग पर वर्कफ़्लो को एक्ज़ीक्यूट किया जा सकता है.
# workflow: # rules: # - if: $CI_PIPELINE_SOURCE == "web"
.gitlab-ci.yml
को प्रोजेक्ट के रूट में खोलें. इसके बाद, इन लाइनों पर से टिप्पणी हटाएं:
cloudshell edit ~/gitlab/genai-for-developers/.gitlab-ci.yml
"Source Control
" पर स्विच करें टैब - स्टेज में, इस बदलाव के लिए प्रतिबद्ध हैं और इसे लागू करते हुए लागू करते हैं.
24. CircleCI इंटिग्रेशन
CircleCI क्या है?
CircleCI, क्लाउड-आधारित CI/CD प्लैटफ़ॉर्म है. इसकी मदद से, टीमें अपने सॉफ़्टवेयर डेवलपमेंट और डिप्लॉयमेंट की प्रोसेस को ऑटोमेट कर सकती हैं. यह GitHub, Bitbucket, और GitLab जैसे वर्शन कंट्रोल सिस्टम के साथ इंटिग्रेट होता है. इससे टीमों को अपने-आप चलने वाले टेस्ट और बिल्ड चलाकर, कोड में किए गए बदलावों की पुष्टि रीयल-टाइम में करने में मदद मिलती है. लगातार डिलीवरी के लिए, CircleCI, AWS, Google Cloud, और Azure जैसे अलग-अलग क्लाउड प्लैटफ़ॉर्म पर सॉफ़्टवेयर के डिप्लॉयमेंट को ऑटोमेट कर सकता है.
सेटअप
CircleCI वेबसाइट खोलें और एक नया प्रोजेक्ट बनाएं. अपने repo के लिए "GitLab
" / "Cloud
" चुनें.
CircleCI को अपने GitLab खाते का ऐक्सेस दें.
सबसे तेज़ विकल्प में जाकर, main
शाखा चुनें. CircleCI, किसी मौजूदा कॉन्फ़िगरेशन फ़ाइल का पता लगा सकता है और इस चरण को छोड़ सकता है.
प्रोजेक्ट बनाने के बाद, "Project Settings
" पर क्लिक करें / "Environment Variables
" सेक्शन में जाएं.
अब तक इस्तेमाल किए गए सभी एनवायरमेंट वैरिएबल जोड़ें.
यहां जोड़े जाने वाले एनवी वार की सैंपल सूची दी गई है.
PROJECT_ID=qwiklabs-project-id LOCATION=us-central1 GOOGLE_CLOUD_CREDENTIALS - cat ~/vertex-client-key.json LANGCHAIN_TRACING_V2=true LANGCHAIN_ENDPOINT="https://api.smith.langchain.com" LANGCHAIN_API_KEY=your-service-api-key JIRA_API_TOKEN=your-token JIRA_USERNAME="email that you used to register with JIRA" JIRA_INSTANCE_URL="https://YOUR-PROJECT.atlassian.net" JIRA_PROJECT_KEY="JIRA project key" JIRA_CLOUD=true GITLAB_PERSONAL_ACCESS_TOKEN=your-gitlab-token GITLAB_URL="https://gitlab.com" GITLAB_REPOSITORY="USERID/REPOSITORY" GITLAB_BRANCH="devai" GITLAB_BASE_BRANCH="main"
25. JIRA और GitLab मेथड को चालू करें
Google Cloud Shell Editor खोलें और review.py
फ़ाइल में बदलाव करें.
यहां लाइनें देखें और उन पर टिप्पणी हटाएं.
# from devai.commands.jira import create_jira_issue
create_jira_issue("Performance Review Results", response.text) create_gitlab_issue_comment(response.text) . . . create_jira_issue("Security Review Results", response.text) create_gitlab_issue_comment(response.text)
"Source Control
" पर स्विच करें टैब - स्टेज में, इस परिवर्तन को सुनिश्चित करें और लागू करें.
GitLab की वेबसाइट खोलें और "Build
" / "Pipelines
" पर जाएं.
वर्कफ़्लो की समीक्षा करने के लिए, CircleCI के लिंक पर जाएं.
डेटा स्टोर करने की जगह में GitLab की समस्या पर की गई टिप्पणियां देखें.
अपने JIRA प्रोजेक्ट में बनाई गई नई समस्याओं की समीक्षा करें.
26. बधाई हो!
बधाई हो, आपने लैब पूरा कर लिया है!
हमने इन विषयों पर जानकारी दी है:
- GitHub, GitLab, और CircleCI में, जनरेटिव एआई कोड की समीक्षा के ऑटोमेशन वाले चरणों को जोड़ा जा रहा है.
- GitLab समस्या पर टिप्पणी करने और JIRA टिकट खोलने जैसे टास्क अपने-आप करने के लिए, LangChain ReAct एजेंट.
आगे क्या होगा:
- कुछ और सेशन शुरू होने वाले हैं!
व्यवस्थित करें
इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते पर शुल्क न लगे. इसके लिए, उस प्रोजेक्ट को मिटा दें जिसमें संसाधन शामिल हैं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.
प्रोजेक्ट मिटाया जा रहा है
बिलिंग की सुविधा बंद करने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाया गया प्रोजेक्ट मिटाना है.
©2024 Google LLC सभी अधिकार सुरक्षित हैं. Google और Google का लोगो, Google LLC के ट्रेडमार्क हैं. अन्य सभी कंपनी और उत्पाद नाम उनसे संबद्ध कंपनियों के ट्रेडमार्क हो सकते हैं.