1. Tổng quan
Trong lớp học này, bạn sẽ thiết lập quy trình công việc của hành động trên GitHub và tích hợp quy trình đó với Gemini để tự động hoá các bước xem xét mã.
Kiến thức bạn sẽ học được
Trong lớp học này, bạn sẽ tìm hiểu cách thực hiện những việc sau:
- Cách thêm các bước tự động hoá quy trình xem xét mã GenAI trong GitHub
- Cách chạy devai cli cục bộ để tự động hoá quy trình đánh giá mã
Điều kiện tiên quyết
- Học phần này giả định rằng bạn đã quen thuộc với môi trường Cloud Console và Cloud Shell.
2. Cách thiết lập và các yêu cầu
Thiết lập dự án trên Cloud
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.
- Tên dự án là tên hiển thị cho người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là duy nhất trên tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là
PROJECT_ID
). Nếu không thích mã được tạo, bạn có thể tạo một mã ngẫu nhiên khác. Ngoài ra, bạn có thể thử dùng email của riêng mình để xem có thể sử dụng hay không. Bạn không thể thay đổi thông tin này sau bước này và thông tin này sẽ được giữ nguyên trong suốt thời gian diễn ra dự án. - Xin lưu ý rằng có một giá trị thứ ba là Mã dự án mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên Cloud. Việc tham gia lớp học lập trình này sẽ không tốn kém nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí sau khi hoàn tất hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.
Thiết lập môi trường
Mở cuộc trò chuyện trên Gemini.
Hoặc nhập "Hỏi Gemini" vào thanh tìm kiếm.
Bật Cloud AI Companion API:
Nhấp vào "Start chatting
" rồi làm theo một trong các câu hỏi mẫu hoặc nhập câu lệnh của riêng bạn để thử.
Các câu lệnh bạn có thể thử:
- Giải thích Cloud Run trong 5 điểm chính.
- Bạn là Nhà quản lý sản phẩm Google Cloud Run, hãy giải thích về Cloud Run cho học viên trong 5 điểm chính ngắn gọn.
- Bạn là Nhà quản lý sản phẩm Cloud Run của Google, hãy giải thích về Cloud Run cho một Nhà phát triển Kubernetes được chứng nhận trong 5 điểm chính ngắn gọn.
- Bạn là Nhà quản lý sản phẩm Google Cloud Run, hãy giải thích cho một Nhà phát triển cấp cao về thời điểm bạn sẽ sử dụng Cloud Run so với GKE trong 5 điểm chính ngắn gọn.
Hãy xem Hướng dẫn về câu lệnh để tìm hiểu thêm về cách viết câu lệnh hiệu quả hơn.
Cách Gemini cho Google Cloud sử dụng dữ liệu của bạn
Cam kết của Google về quyền riêng tư
Google là một trong những công ty đầu tiên trong ngành công bố cam kết về quyền riêng tư liên quan đến AI/ML. Cam kết này nêu rõ quan điểm của chúng tôi rằng khách hàng phải có mức độ bảo mật và quyền kiểm soát cao nhất đối với dữ liệu của họ được lưu trữ trên đám mây.
Dữ liệu bạn gửi và nhận
Những câu hỏi mà bạn đặt cho Gemini, bao gồm mọi thông tin đầu vào hoặc mã mà bạn gửi cho Gemini để phân tích hoặc hoàn thành, được gọi là câu lệnh. Câu trả lời hoặc mã hoàn chỉnh mà bạn nhận được từ Gemini được gọi là phản hồi. Gemini không dùng câu lệnh của bạn hoặc câu trả lời của Gemini làm dữ liệu để huấn luyện các mô hình của mình.
Mã hoá lời nhắc
Khi bạn gửi câu lệnh cho Gemini, dữ liệu của bạn sẽ được mã hoá trong quá trình truyền dữ liệu dưới dạng dữ liệu đầu vào cho mô hình cơ bản trong Gemini.
Dữ liệu chương trình được tạo từ Gemini
Gemini được huấn luyện dựa trên mã Google Cloud của bên thứ nhất cũng như mã bên thứ ba đã chọn. Bạn chịu trách nhiệm về tính bảo mật, hoạt động kiểm thử và hiệu quả của mã, bao gồm cả mọi hoạt động hoàn tất, tạo hoặc phân tích mã mà Gemini cung cấp cho bạn.
Tìm hiểu thêm về cách Google xử lý lời nhắc của bạn.
3. Các lựa chọn để kiểm thử lời nhắc
Nếu muốn thay đổi/mở rộng lời nhắc devai cli hiện có, bạn có một số lựa chọn.
Vertex AI Studio là một phần của nền tảng Vertex AI của Google Cloud, được thiết kế riêng để đơn giản hoá và đẩy nhanh quá trình phát triển cũng như sử dụng các mô hình AI tạo sinh.
AI Studio của Google là một công cụ dựa trên web để tạo nguyên mẫu và thử nghiệm kỹ thuật câu lệnh cũng như API Gemini.
- Ứng dụng Gemini trên web (gemini.google.com)
Ứng dụng web Google Gemini (gemini.google.com) là một công cụ dựa trên web được thiết kế để giúp bạn khám phá và khai thác sức mạnh của các mô hình AI Gemini của Google.
- Ứng dụng Google Gemini dành cho thiết bị di động Android và ứng dụng Google trên iOS
4. Tạo tài khoản dịch vụ
Kích hoạt Cloud Shell bằng cách nhấp vào biểu tượng ở bên phải thanh tìm kiếm.
Trong thiết bị đầu cuối đã mở, hãy bật các dịch vụ bắt buộc để sử dụng API Vertex AI và tính năng trò chuyện trên Gemini.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
Nếu bạn được nhắc uỷ quyền, hãy nhấp vào "Uỷ quyền" để tiếp tục.
Chạy các lệnh sau để tạo tài khoản dịch vụ và khoá mới.
Bạn sẽ sử dụng tài khoản dịch vụ này để thực hiện các lệnh gọi API đến API Gemini của Vertex AI từ quy trình CICD.
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. Phát triển nhánh kho lưu trữ GitHub sang kho lưu trữ GitHub cá nhân
Truy cập vào https://github.com/GoogleCloudPlatform/genai-for-developers/fork và chọn tên người dùng GitHub của bạn làm chủ sở hữu.
Bỏ chọn tuỳ chọn chỉ sao chép nhánh "chính".
Nhấp vào "Create fork
".
6. Bật quy trình công việc GitHub Actions
Mở kho lưu trữ GitHub đã phân nhánh trong trình duyệt và chuyển sang thẻ "Actions
" để bật quy trình làm việc.
7. Thêm Kho lưu trữ bí mật
Tạo một khoá bí mật của kho lưu trữ trong "Settings / Secrets and variables / Actions
" trong kho lưu trữ GitHub được phân nhánh.
Thêm khoá bí mật của Kho lưu trữ có tên "GOOGLE_API_CREDENTIALS
".
Chuyển sang cửa sổ/thẻ Google Cloud Shell rồi chạy lệnh bên dưới trong dòng lệnh Cloud Shell.
cat ~/vertex-client-key.json
Sao chép nội dung tệp rồi dán nội dung đó dưới dạng giá trị cho khoá bí mật.
Thêm khoá bí mật PROJECT_ID
với mã dự án Qwiklabs làm giá trị:
8. Chạy quy trình công việc GitHub Actions
Chuyển đến kho lưu trữ GitHub trong trình duyệt và chạy quy trình công việc.
Quy trình công việc được định cấu hình để chạy trên tính năng đẩy mã hoặc thực thi theo cách thủ công.
Xem xét kết quả:
Kết quả của lệnh kiểm thử mức độ sử dụng:
devai review testcoverage -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Kết quả của lệnh xem xét mã:
devai review code -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Kết quả của lệnh xem xét hiệu suất:
devai review performance -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Kết quả của lệnh đánh giá bảo mật:
devai review security -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Kết quả của lệnh xem xét trình chặn:
devai review blockers -c ${{ github.workspace }}/sample-app/pom.xml
9. Sao chép kho lưu trữ
Quay lại cửa sổ dòng lệnh Cloud Shell và sao chép kho lưu trữ.
Thay đổi YOUR-GITHUB-USERID
thành tên người dùng GitHub của bạn trước khi chạy các lệnh.
git clone https://github.com/YOUR-GITHUB-USERID/genai-for-developers.git
Thay đổi thư mục và mở tệp quy trình công việc trong Trình chỉnh sửa Cloud Shell.
cd genai-for-developers
cloudshell edit .github/workflows/devai-review.yml
Chờ cho đến khi tệp cấu hình xuất hiện trong IDE.
10. Bật tính năng Gemini Code Assist
Nhấp vào biểu tượng "Gemini
" ở góc dưới cùng bên phải ,
nhấp vào "Login to Google Cloud
" và "Select a Google Cloud Project
".
Trong cửa sổ bật lên, hãy chọn dự án Qwiklabs của bạn.
11. Giải thích đoạn mã bằng tính năng Gemini Code Assist
Nhấp chuột phải vào vị trí bất kỳ trong tệp devai-review.yml
rồi chọn Gemini Code Assist > Explain
này.
Giải thích về bài đánh giá:
12. Chạy DEVAI CLI cục bộ
Quay lại cửa sổ dòng lệnh Cloud Shell và chạy các lệnh bên dưới để cài đặt devai
trên máy.
pip3 install devai-cli
Bạn đã cài đặt cli nhưng cli không có trong 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.
Chạy lệnh dưới đây để cập nhật biến môi trường PATH. Thay thế bằng tên thư mục gốc của người dùng. Ví dụ: student_00_478dfeb8df15
export PATH=$PATH:/home/YOUR-USER-HOME-FOLDER/.local/bin
Chạy lệnh devai cli để xem xét mã cục bộ. Xem lại kết quả đầu ra của cli.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
cd ~/genai-for-developers
devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Mở tập lệnh đánh giá bằng cách chạy lệnh dưới đây:
cloudshell edit devai-cli/src/devai/commands/review.py
Nhấp chuột phải vào vị trí bất kỳ trong tệp review.py
rồi chọn Gemini Code Assist > Explain
này.
Giải thích về bài đánh giá.
13. Phát triển CLI DevAI
Trong phần này, bạn sẽ thực hiện các thay đổi đối với devai cli.
Để bắt đầu, hãy thiết lập python virtualenv, cài đặt các yêu cầu và chạy lệnh mẫu.
cd ~/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
Chạy lại lệnh xem xét mã để kiểm tra xem mọi thứ có hoạt động tốt không:
devai review code -c ~/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Xem lại kết quả bằng tính năng xem trước Markdown trong Trình chỉnh sửa Cloud Shell.
Tạo một tệp mới và dán nội dung phản hồi của Gemini.
Sau đó, sử dụng Bảng điều khiển lệnh và chọn "Markdown: Open Preview
".
14. Khám phá các lệnh devai cli
Lệnh xem xét mã
devai review code -c ~/genai-for-developers/sample-app/src/main/java
Lệnh đánh giá hiệu suất
devai review performance -c ~/genai-for-developers/sample-app/src/main/java
Lệnh xem xét bảo mật
devai review security -c ~/genai-for-developers/sample-app/src/main/java
Lệnh xem xét mức độ bao phủ kiểm thử
devai review testcoverage -c ~/genai-for-developers/sample-app/src
Lệnh xem xét trình chặn
devai review blockers -c ~/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/genai-for-developers/sample-app/setup.md
Xem xét và tóm tắt hình ảnh/biểu đồ:
Sơ đồ đầu vào[~/genai-for-developers/images/extension-diagram.png
]:
Lệnh xem xét:
devai review image \
-f ~/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram"
Kết quả:
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.
Phân tích sự khác biệt về hình ảnh:
devai review imgdiff \
-c ~/genai-for-developers/images/devai-api.png \
-t ~/genai-for-developers/images/devai-api-slack.png
Kết quả:
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.
Lệnh tạo tài liệu:
devai document readme -c ~/genai-for-developers/sample-app/src/main/
Kết quả:
# Bank of Anthos - Balance Reader Service ## 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 ...
Xem lại các lệnh devai cli hiện có trong Trình chỉnh sửa Cloud Shell:
cloudshell edit ~/genai-for-developers/devai-cli/README.md
Hoặc xem lại README.md trong kho lưu trữ GitHub.
15. Xin chúc mừng!
Xin chúc mừng, bạn đã hoàn thành lớp học lập trình!
Nội dung chúng ta đã đề cập:
- Thêm các bước tự động hoá quy trình xem xét mã GenAI trong GitHub
- Chạy devai cli cục bộ
Bước tiếp theo:
- Chúng tôi sẽ tổ chức thêm nhiều buổi thực hành khác!
Dọn dẹp
Để tránh bị tính phí cho tài khoản Google Cloud của bạn đối với các tài nguyên được sử dụng trong hướng dẫn này, hãy xoá dự án chứa các tài nguyên đó hoặc giữ lại dự án và xoá từng tài nguyên.
Xoá dự án
Cách dễ nhất để loại bỏ tính năng thanh toán là xoá dự án mà bạn đã tạo cho hướng dẫn này.
©2024 Google LLC Mọi quyền được bảo lưu. Google và biểu trưng Google là các nhãn hiệu của Google LLC. Tất cả các tên công ty và sản phẩm khác có thể là nhãn hiệu của công ty liên quan tương ứng.