1. Tổng quan
Trong phòng thí nghiệm này, bạn sẽ xây dựng một giải pháp để tự động hoá việc triển khai câu chuyện người dùng JIRA bằng AI tạo sinh.

Kiến thức bạn sẽ học được
Lớp học lập trình này có một số phần chính:
- Triển khai ứng dụng Cloud Run để tích hợp với Gemini API
- Tạo và triển khai ứng dụng Atlassian Forge cho JIRA
- Sử dụng các tác nhân LangChain ReAct để tự động hoá các tác vụ trên GitLab
Điều kiện tiên quyết
- Phòng thí nghiệm này giả định rằng bạn đã quen thuộc với môi trường Cloud Console và Cloud Shell.
2. Thiết lập và yêu cầu
Thiết lập dự án trên đám mây
- Đă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ị của những người tham gia dự án này. Đây là một chuỗi ký tự mà các API của Google không sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là mã duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này 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ã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Hoặc bạn có thể thử tên người dùng của riêng mình để xem tên đó có được chấp nhận hay không. Bạn không thể thay đổi tên này sau bước này và tên này sẽ tồn tại trong suốt thời gian của dự án. - Để bạn nắm được thông tin, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 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 thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi 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í trị giá 300 USD.
Thiết lập môi trường
Mở cuộc trò chuyện với Gemini.

Hoặc nhập "Hỏi Gemini" vào thanh tìm kiếm.

Bật Gemini for Google Cloud 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 để dùng thử.

Các câu lệnh bạn có thể thử:
- Giải thích về Cloud Run trong 5 điểm chính.
- Bạn là nhà quản lý sản phẩm của Google Cloud Run, hãy giải thích về Cloud Run cho một học viên bằng 5 điểm chính ngắn gọn.
- Bạn là Quản lý sản phẩm của Google Cloud Run, 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à Quản lý sản phẩm Cloud Run của Google Cloud, hãy giải thích cho một Nhà phát triển cấp cao về thời điểm bạn nên 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ư đối với AI/ML. Cam kết này nêu rõ niềm tin 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 hỏi Gemini, bao gồm cả 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 đoạn mã hoàn chỉnh mà bạn nhận được từ Gemini được gọi là câu trả lờ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 Gemini.
Mã hoá câu lệnh
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ướ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 do Gemini tạo
Gemini được huấn luyện dựa trên mã Google Cloud của bên thứ nhất cũng như mã chọn lọc của bên thứ ba. Bạn chịu trách nhiệm về tính bảo mật, khả năng kiểm thử và hiệu quả của mã, bao gồm cả mọi tính năng hoàn thành, 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ý câu lệnh của bạn.
3. Các lựa chọn để kiểm thử câu lệnh
Bạn có một số lựa chọn để kiểm thử câu lệnh.
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à tăng tốc quá trình phát triển cũng như sử dụng các mô hình AI tạo sinh.
Google AI Studio là một công cụ dựa trên web để tạo nguyên mẫu và thử nghiệm thiết kế câu lệnh cũng như Gemini API.
- Ứng dụng web Gemini (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 di động Google Gemini dành cho Android và ứng dụng Google trên iOS
4. Xem xét đơn đăng ký
Tạo tài khoản dịch vụ
Quay lại bảng điều khiển Cloud của Google rồi 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 cửa sổ dòng lệnh vừa mở, hãy chạy các lệnh sau để tạo tài khoản dịch vụ và khoá mới.
Bạn sẽ dùng tài khoản dịch vụ này để thực hiện các lệnh gọi API đến Vertex AI Gemini API từ ứng dụng Cloud Run.
Định cấu hình thông tin dự án bằng thông tin dự án trên Qwiklabs.
Ví dụ: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Tạo một tài khoản dịch vụ.
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"
Cấp vai trò.
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"
Nếu được nhắc uỷ quyền, hãy nhấp vào "Uỷ quyền" để tiếp tục.

Bật các dịch vụ bắt buộc để sử dụng API Vertex AI và cuộc trò chuyện với Gemini.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Bật các dịch vụ bắt buộc để sử dụng API Vertex AI và cuộc trò chuyện với Gemini.
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
runapps.googleapis.com \
workstations.googleapis.com \
servicemanagement.googleapis.com \
secretmanager.googleapis.com \
containerscanning.googleapis.com
Sao chép kho lưu trữ GitHub
Sao chép kho lưu trữ GitHub.
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Mở Trình chỉnh sửa Cloud Shell

Sử dụng mục trình đơn "File / Open Folder", hãy mở "genai-for-developers".
Mở tệp "devai-api/app/routes.py", sau đó nhấp chuột phải vào bất kỳ vị trí nào trong tệp rồi chọn "Gemini > Explain this"" trong trình đơn theo bối cảnh.

Xem phần giải thích của Gemini về tệp đã chọn.

5. Cấu hình Kho lưu trữ và Bộ công cụ GitLab
Trong bài thực hành này, bạn sẽ sử dụng GitLabToolkit để tự động hoá việc tạo yêu cầu hợp nhất GitLab.
Tổng quan về bộ công cụ LangChain
Bộ công cụ LangChain là tập hợp các công cụ được thiết kế để đơn giản hoá và nâng cao quá trình phát triển các ứng dụng bằng LangChain. Các công cụ này cung cấp nhiều chức năng tuỳ thuộc vào bộ công cụ cụ thể, nhưng nói chung, chúng giúp:
- Kết nối với các nguồn dữ liệu bên ngoài: Truy cập và kết hợp thông tin từ các API, cơ sở dữ liệu và các nguồn bên ngoài khác vào các ứng dụng LangChain của bạn.
- Kỹ thuật tạo câu lệnh nâng cao: Sử dụng câu lệnh được tạo sẵn hoặc tạo câu lệnh tuỳ chỉnh để tối ưu hoá hoạt động tương tác với các mô hình ngôn ngữ.
- Tạo và quản lý chuỗi: Dễ dàng tạo các chuỗi phức tạp và quản lý chúng một cách hiệu quả.
- Đánh giá và giám sát: Phân tích hiệu suất của các ứng dụng và chuỗi LangChain.
Một số LangChain Toolkit phổ biến bao gồm:
- Bộ công cụ Agent Executor: Các công cụ để phát triển những tác nhân có thể tương tác với thế giới thực thông qua các hành động như duyệt web hoặc thực thi mã.
- Bộ công cụ thiết kế câu lệnh: Một bộ sưu tập tài nguyên để thiết kế câu lệnh hiệu quả.
Tổng quan về bộ công cụ GitLab
Bộ công cụ Gitlab chứa các công cụ cho phép một tác nhân LLM tương tác với kho lưu trữ gitlab. Công cụ này là một trình bao bọc cho thư viện python-gitlab.
Bộ công cụ GitLab có thể thực hiện các tác vụ sau:
- Tạo tệp – tạo một tệp mới trong kho lưu trữ.
- Đọc tệp – đọc một tệp trong kho lưu trữ.
- Update File (Cập nhật tệp) – cập nhật một tệp trong kho lưu trữ.
- Tạo yêu cầu kéo – tạo yêu cầu kéo từ nhánh đang hoạt động của bot đến nhánh cơ sở.
- Get Issues (Lấy vấn đề) – tìm nạp các vấn đề từ kho lưu trữ.
- Get Issue (Lấy vấn đề) – tìm nạp thông tin chi tiết về một vấn đề cụ thể.
- Bình luận về vấn đề – đăng một bình luận về một vấn đề cụ thể.
- Xoá tệp – xoá một tệp khỏi kho lưu trữ.
Thiết lập dự án GitLab
Mở GitLab, tạo một dự án mới và thiết lập Project Access Token (Mã truy cập dự án) trong "Settings / Access Tokens".
Sử dụng thông tin chi tiết sau:
- Tên mã thông báo:
devai-api-qwiklabs - Vai trò:
Maintainer - Chọn phạm vi:
api

Sao chép và dán giá trị Mã truy cập vào một tệp tạm thời trên máy tính xách tay của bạn. Giá trị này sẽ được dùng trong các bước tiếp theo.
6. Chuẩn bị triển khai ứng dụng trên Cloud Run
Quay lại Cloud Shell Editor và sử dụng cửa sổ dòng lệnh hiện có hoặc mở một cửa sổ dòng lệnh mới.

Định cấu hình thông tin dự án bằng thông tin dự án trên Qwiklabs.
Ví dụ: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
Đặt các biến môi trường còn lại:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
Đặt các biến môi trường cần thiết cho việc tích hợp GitLab.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
Để tránh để lộ thông tin nhạy cảm trong thiết bị đầu cuối, phương pháp hay nhất là sử dụng read -s GITLAB_PERSONAL_ACCESS_TOKEN. Đây là một cách an toàn để thiết lập các biến môi trường mà không có giá trị xuất hiện trong nhật ký lệnh của bảng điều khiển. Sau khi chạy, bạn phải dán giá trị và nhấn Enter. Bạn cũng cần xuất biến môi trường: export GITLAB_PERSONAL_ACCESS_TOKEN
Lệnh này yêu cầu bạn cập nhật mã nhận dạng người dùng và tên kho lưu trữ GitLab.
Ví dụ: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

export GITLAB_REPOSITORY="USERID/REPOSITORY"
Đặt các biến môi trường còn lại:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
Cấu hình theo dõi LLM LangSmith
Thiết lập tài khoản nếu bạn muốn xem thông tin theo dõi tác nhân trong LangSmith, nếu không, hãy thực thi các lệnh như hiện tại.
Tạo tài khoản LangSmith và tạo khoá API dịch vụ trong phần Cài đặt. https://smith.langchain.com/settings
Đặt các biến môi trường cần thiết cho việc tích hợp LangSmith.
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
Cấu hình JIRA
Những giá trị này không được dùng trong phòng thí nghiệm này, vì vậy, bạn không cần cập nhật các giá trị này thành giá trị dự án JIRA cụ thể của mình trước khi thực thi các lệnh.
Đặt các biến môi trường cần thiết để triển khai dịch vụ 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
Tạo khoá API
Tạo một khoá API mới trong phần Cloud Console / API và Dịch vụ / Thông tin xác thực.
Khoá này sẽ được dùng để xác thực các lệnh gọi API JIRA đến ứng dụng Cloud Run.
Đối với môi trường phát hành công khai, bạn sẽ định cấu hình các quy tắc hạn chế về ứng dụng và API cho khoá API đã tạo. Các quy tắc hạn chế về ứng dụng giới hạn việc sử dụng khoá API cho các trang web cụ thể(ví dụ: phiên bản JIRA của bạn).
Đặt các biến môi trường cần thiết để triển khai dịch vụ Cloud Run.
export DEVAI_API_KEY=your-api-key
Tạo bí mật trong Secret Manager
Trong phòng thí nghiệm này, chúng ta sẽ làm theo các phương pháp hay nhất và sử dụng Secret Manager để lưu trữ và tham chiếu các giá trị Mã truy cập, Khoá API và Khoá API LangChain trong Cloud Run.
Tạo và lưu trữ các bí mật bắt buộc trong 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. Triển khai Devai-API lên Cloud Run
Kiểm tra để đảm bảo bạn đang ở đúng thư mục.
cd ~/genai-for-developers/devai-api
Triển khai ứng dụng lên 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
Trả lời Y để tạo kho lưu trữ Docker Artifact Registry.
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
Xem quy trình gcloud run deploy SERVICE_NAME --source=. bên dưới. Tìm hiểu thêm.

Trong quá trình này, lệnh này sẽ sử dụng buildpacks và Cloud Build của Google Cloud để tự động tạo hình ảnh vùng chứa từ mã nguồn mà không cần cài đặt Docker trên máy hoặc thiết lập gói bản dựng hay Cloud Build. Tức là lệnh duy nhất được mô tả ở trên sẽ thực hiện những việc mà nếu không có lệnh này thì bạn sẽ phải dùng lệnh gcloud builds submit và gcloud run deploy.
Nếu bạn đã cung cấp Dockerfile(như chúng ta đã làm trong kho lưu trữ này), thì Cloud Build sẽ sử dụng Dockerfile đó để tạo hình ảnh vùng chứa thay vì dựa vào các gói bản dựng để tự động phát hiện và tạo hình ảnh vùng chứa. Để tìm hiểu thêm về buildpack, hãy xem tài liệu.
Xem nhật ký Cloud Build trong Bảng điều khiển.
Xem lại hình ảnh Docker đã tạo trong Artifact Registry.
Xem thông tin chi tiết về phiên bản Cloud Run trong Cloud Console.
Kiểm thử ứng dụng
Kiểm thử điểm cuối bằng cách chạy lệnh curl.
Cập nhật bằng URL dịch vụ Cloud Run trước khi chạy lệnh.
Ví dụ:
curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test
8. Tự động hoá việc triển khai story
Forge là một nền tảng cho phép nhà phát triển tạo các ứng dụng tích hợp với các sản phẩm của Atlassian, chẳng hạn như Jira, Confluence, Compass và Bitbucket.

Cài đặt Forge CLI
Cài đặt Forge CLI trên toàn cầu bằng cách chạy:
npm install -g @forge/cli
Trong phòng thí nghiệm này, chúng ta sẽ sử dụng các biến môi trường để đăng nhập.

Thiết lập dự án JIRA
Dùng tài khoản cá nhân để tạo/xem các dự án JIRA.
Xem lại các dự án hiện có trên JIRA: https://admin.atlassian.com/
Tạo một dự án JIRA mới bằng tài khoản cá nhân của bạn.
Truy cập vào https://team.atlassian.com/your-work rồi nhấp vào
, sau đó chọn
. Sau đó, hãy chọn "JIRA Software" – "Dùng thử ngay". Làm theo lời nhắc để hoàn tất quá trình tạo dự án/trang web.

Chọn JIRA Software.

Tạo một dự án mới.

Tạo mã thông báo API của Atlassian
Tạo hoặc sử dụng mã thông báo API Atlassian hiện có để đăng nhập vào CLI.
CLI sẽ sử dụng mã thông báo của bạn khi chạy các lệnh.
- Truy cập vào https://id.atlassian.com/manage/api-tokens.
- Nhấp vào Tạo mã thông báo API.
- Nhập nhãn để mô tả mã thông báo API. Ví dụ: forge-api-token.
- Nhấp vào Tạo.
- Nhấp vào Sao chép vào khay nhớ tạm rồi đóng hộp thoại.
Định cấu hình chế độ cài đặt môi trường Forge
Quay lại Cloud Console rồi chạy các lệnh bên dưới trong cửa sổ dòng lệnh.
Đăng nhập vào Forge CLI để bắt đầu sử dụng các lệnh Forge.
Đặt địa chỉ email JIRA/FORGE. Thay thế bằng địa chỉ email của bạn.
export FORGE_EMAIL=your-email
Đặt mã thông báo Forge API. Thay thế bằng mã thông báo API JIRA của bạn.
export FORGE_API_TOKEN=your-jira-api-token
Kiểm thử forge cli bằng cách chạy lệnh bên dưới. Trả lời "No" khi được hỏi có muốn thu thập số liệu phân tích hay không.
forge settings set usage-analytics false
Kiểm tra xem bạn đã đăng nhập hay chưa.
forge whoami
Kết quả mẫu.
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Tạo ứng dụng Forge
Kiểm tra để đảm bảo bạn đang ở trong thư mục "~/genai-for-developers".
Chạy lệnh để tạo một ứng dụng Forge.
forge create
Hãy sử dụng các giá trị sau khi được nhắc:
- Tên ứng dụng:
devai-jira-ui-qwiklabs - Chọn một danh mục:
UI Kit - Chọn một sản phẩm:
Jira - Chọn một mẫu:
jira-issue-panel

Thay đổi thành thư mục ứng dụng.
cd devai-jira-ui-qwiklabs/
Chạy lệnh để cài đặt các phần phụ thuộc.
npm install
Chạy lệnh triển khai.
forge deploy
Kết quả mẫu:
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.
Cài đặt ứng dụng.
forge install
Hãy sử dụng các giá trị sau khi được nhắc:
- Chọn một sản phẩm:
Jira - Nhập URL của trang web:
your-domain.atlassian.net
Kết quả mẫu:
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
Mở trang web JIRA của bạn và tạo một nhiệm vụ JIRA mới có nội dung mô tả như sau:
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.
Khi mở nhiệm vụ, bạn sẽ thấy nút "devai-jira-ui-qwiklabs".
Nhấp vào nút này và xem các thay đổi trong giao diện người dùng.

Xem nhật ký phụ trợ của Forge.
forge logs
Atlassian Developer Console
Bạn cũng có thể xem và quản lý các ứng dụng đã triển khai trong Atlassian Developer Console.

Xem xét nhật ký – chuyển sang môi trường Development,

Xem xét tệp kê khai ứng dụng và mã nguồn Forge
Mở tệp "devai-jira-ui-qwiklabs/manifest.yml" và sử dụng Gemini Code Assist để giải thích cấu hình.

Xem lời giải thích.

Mở các tệp sau đây và yêu cầu Gemini Code Assist giải thích:
devai-jira-ui-qwiklabs/src/frontend/index.jsxdevai-jira-ui-qwiklabs/src/resolvers/index.js

Cập nhật ứng dụng Forge bằng điểm cuối DevAI API Cloud Run
Kiểm tra xem bạn đã đặt mã dự án trên Google Cloud Platform hay chưa:
gcloud config get project
Nếu không, hãy thiết lập dự án GCP bằng mã dự án trên trang phòng thí nghiệm Qwiklabs:
Ví dụ: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Đặt URL dịch vụ 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
Đặt khoá API DEVAI:
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
Xác nhận bằng cách chạy lệnh bên dưới:
forge variables list
Đoạn nhạc mẫu

Cập nhật tệp kê khai và mã ứng dụng Forge
Bạn có thể tìm thấy các đoạn mã này trong thư mục sample-devai-jira-ui của kho lưu trữ.
Mở tệp kê khai trong trình chỉnh sửa: devai-jira-ui-qwiklabs/manifest.yml
Thêm các dòng bên dưới vào cuối tệp – thay thế điểm cuối Cloud Run bằng điểm cuối mà bạn đã triển khai.
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
Mở tệp resolvers/index trong trình chỉnh sửa: devai-jira-ui-qwiklabs/src/resolvers/index.js
Thêm các dòng bên dưới sau hàm getText hiện có.
resolver.define('getApiKey', (req) => {
return process.env.DEVAI_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
Mở tệp frontend/index trong trình chỉnh sửa: devai-jira-ui-qwiklabs/src/frontend/index.jsx
Thay thế index.jsx bằng nội dung bên dưới. Cập nhật đường liên kết đến mã nhận dạng người dùng/kho lưu trữ của bạn trên GitLab.
Bạn cần cập nhật YOUR-GIT-USERID và YOUR-GIT-REPO ở 2 nơi.
Tìm dòng này trong tệp rồi thực hiện các thay đổi:
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>
);
Triển khai lại ứng dụng Forge
Thêm các phần phụ thuộc trong tệp package.json:
"@forge/api": "4.0.0",
Chạy lệnh để cài đặt các phần phụ thuộc:
npm install
Triển khai ứng dụng đã cập nhật:
forge deploy
Kết quả mẫu:
ℹ 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.
Cài đặt ứng dụng đã cập nhật:
forge install --upgrade

Kết quả mẫu:
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.
Kiểm thử ứng dụng Forge
Mở một việc cần làm hiện có hoặc tạo một việc cần làm mới trong dự án JIRA của bạn.
Bạn cần xoá bảng điều khiển trước đó nếu đã thêm.
Nhấp vào "..." rồi chọn xoá trong trình đơn. Sau đó, bạn có thể nhấp lại vào nút này.

Kiểm tra bình luận trên Jira
Sau khi bạn nhận được phản hồi từ DEVAI API, một bình luận sẽ được thêm vào vấn đề trên JIRA.
- Đường liên kết đến yêu cầu hợp nhất trên GitLab
Chuyển đổi giữa thẻ "History" và "Comments" để làm mới chế độ xem.

Xác minh yêu cầu hợp nhất GitLab
Mở GitLab và kiểm tra các yêu cầu hợp nhất mới trong dự án của bạn.


Dấu vết LLM của LangSmith
Nếu bạn đã định cấu hình tính năng theo dõi LLM, hãy mở cổng LangSmith rồi xem xét dấu vết LLM cho lệnh gọi tạo yêu cầu hợp nhất GitLab.
Mẫu dấu vết LLM LangSmith.

9. Đẩy các thay đổi của bạn lên kho lưu trữ GitHub
(PHẦN KHÔNG BẮT BUỘC)
Truy cập vào trang web GitHub rồi tạo một kho lưu trữ mới để chuyển các thay đổi cho phòng thí nghiệm này vào kho lưu trữ cá nhân của bạn.
Quay lại Cloud Console rồi đặt tên người dùng và email Git trong thiết bị đầu cuối.
Cập nhật các giá trị trước khi chạy lệnh.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
Tạo khoá SSH và thêm khoá đó vào kho lưu trữ GitHub.
Hãy cập nhật email của bạn trước khi chạy các lệnh.
Không nhập cụm mật khẩu và nhấn Enter nhiều lần để hoàn tất quá trình tạo khoá.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Thêm khoá công khai đã tạo vào tài khoản GitHub của bạn.
Mở https://github.com/settings/keys rồi nhấp vào "New SSH key".
Đối với tên khoá, hãy dùng "qwiklabs-key" và sao chép/dán đầu ra từ lệnh cuối cùng.
Quay lại Terminal, xác nhận và đẩy các thay đổi.
cd ~/genai-for-developers
git remote rm origin
Thiết lập nguồn gốc từ xa bằng kho lưu trữ đã được tạo ở trên.
Thay thế bằng URL kho lưu trữ của bạn.
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
Thêm, xác nhận và đẩy các thay đổi.
git add .
git commit -m "lab changes"
git push -u origin main
10. Xin chúc mừng!
Xin chúc mừng, bạn đã hoàn thành bài thực hành!
Nội dung đã đề cập:
- Cách triển khai các ứng dụng Cloud Run để tích hợp với Gemini API.
- Cách tạo và triển khai ứng dụng Atlassian Forge cho JIRA.
- Cách sử dụng các tác nhân LangChain ReAct để tự động hoá các tác vụ trên GitLab.
- Cách xem xét dấu vết LLM trong LangSmith.
Bước tiếp theo:
- Sắp có thêm nhiều buổi thực hành!
Dọn dẹp
Để tránh bị tính phí vào tài khoản Google Cloud của bạn cho các tài nguyên được 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 rồi xoá từng tài nguyên.
Xoá dự án
Cách dễ nhất để loại bỏ phí thanh toán là xoá dự án mà bạn đã tạo cho hướng dẫn này.
©2024 Google LLC Bảo lưu mọi quyền. 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.