程式碼研究室簡介
1. 總覽
在本研究室中,您將建立解決方案,透過生成式 AI 自動執行 JIRA 使用者故事。
學習目標
本研究室包含幾個主要部分:
- 部署 Cloud Run 應用程式,以便整合 Gemini API
- 建立及部署 JIRA 專用的 Atlassian Forge 應用程式
- 使用 LangChain ReAct Agent 自動執行 GitLab 工作
必要條件
- 本實驗室假設您已熟悉 Cloud 控制台和 Cloud Shell 環境。
2. 設定和需求
Cloud 專案設定
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請務必建立帳戶。
- 「Project name」是這個專案參與者的顯示名稱。這是 Google API 不會使用的字元字串。您隨時可以更新。
- 專案 ID 在所有 Google Cloud 專案中都是不重複的值,且無法變更 (設定後即無法變更)。Cloud 控制台會自動產生專屬字串,您通常不需要特別在意。在大多數程式碼研究室中,您都需要參照專案 ID (通常會以
PROJECT_ID
表示)。如果您不喜歡系統產生的 ID,可以隨機產生另一個 ID。或者,您也可以自行嘗試,看看是否可用。在這個步驟完成後就無法變更,且會在專案期間維持不變。 - 提醒您,有些 API 會使用第三個值「專案編號」。如要進一步瞭解這三個值,請參閱說明文件。
- 接下來,您需要在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行這個程式碼研究室不會產生太多費用,甚至可能完全不會產生費用。如要關閉資源,避免在本教學課程結束後繼續產生費用,您可以刪除建立的資源或專案。Google Cloud 新使用者可享有 $300 美元的免費試用期。
環境設定
開啟 Gemini 對話。
或者,在搜尋列中輸入「問問 Gemini」。
啟用 Gemini for Google Cloud API:
按一下「Start chatting
」,然後按照其中一個範例問題操作,或自行輸入提示,即可試用這項功能。
建議提示:
- 以 5 個重點說明 Cloud Run。
- 您是 Google Cloud Run 產品經理,向學生解釋 Cloud Run 的 5 大重點。
- 您是 Google Cloud Run 產品經理,向 Kubernetes 認證開發人員解釋 Cloud Run 的 5 大重點。
- 您是 Google Cloud Run 產品經理,請向資深開發人員說明在何種情況下應使用 Cloud Run 或 GKE,並以 5 個重點說明。
詳情請參閱提示指南,進一步瞭解如何撰寫優質提示。
Gemini for Google Cloud 如何使用您的資料
Google 的隱私權承諾
Google 是第一間發表 AI/機器學習隱私權承諾的公司,該文中也提到我們的信念:除了極致的安全性之外,客戶也應該對儲存在雲端的自家資料保有最大的掌控權。
您提交及接收的資料
您向 Gemini 提出的問題,包括您提交給 Gemini 以便分析或完成的任何輸入資訊或程式碼,都稱為提示。您從 Gemini 收到的答案或程式碼完成作業稱為回覆。Gemini 不會使用提示或回覆內容做為模型訓練資料。
提示訊息的加密
向 Gemini 提交提示時,您的資料會在傳輸過程中加密,並做為輸入內容傳送至 Gemini 中的基礎模型。
由 Gemini 產生的節目資料
Gemini 是根據第一方 Google Cloud 程式碼和精選第三方程式碼進行訓練。您必須負責程式碼的安全性、測試和效能,包括 Gemini 提供的任何程式碼完成、產生或分析功能。
進一步瞭解 Google 如何處理提示。
3. 測試提示的選項
您可以透過多種方式測試提示。
Vertex AI Studio 是 Google Cloud Vertex AI 平台的一部分,專門用於簡化及加速生成式 AI 模型的開發及使用。
Google AI Studio 是網頁式工具,可用於設計原型,並透過提示設計和 Gemini API 進行實驗。
- Gemini 網頁應用程式 (gemini.google.com)
Google Gemini 網頁應用程式 (gemini.google.com) 是一款網頁工具,可協助您探索並運用 Google Gemini AI 模型的強大功能。
4. 審查申請
建立服務帳戶
返回 Google Cloud 控制台,然後按一下搜尋列右側的圖示,啟用 Cloud Shell。
在已開啟的終端機中,執行下列指令建立新的服務帳戶和金鑰。
您將使用這個服務帳戶,從 Cloud Run 應用程式向 Vertex AI Gemini API 發出 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 聊天。
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
啟用必要服務,以便使用 Vertex AI API 和 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
複製 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 存放區和工具包設定
在本研究室中,您將使用 GitLabToolkit 自動建立 GitLab 合併要求。
LangChain Toolkits 總覽
LangChain 工具包是一組工具,可簡化並強化使用 LangChain 開發應用程式。這些工具提供的功能因具體工具包而異,但一般來說,這些工具可協助您:
- 連結至外部資料來源:存取 API、資料庫和其他外部來源的資訊,並將這些資訊納入 LangChain 應用程式。
- 進階提示技巧:使用預先建立的提示或自訂提示,以最佳化與語言模型的互動。
- 建立及管理鏈結:輕鬆建立複雜的鏈結,並有效管理鏈結。
- 評估和監控:分析 LangChain 應用程式和鏈結的效能。
部分熱門 LangChain Toolkit 包括:
- 代理執行工具包:開發工具,可透過網頁瀏覽或程式碼執行等動作,與真實世界互動。
- 提示工程工具包:收集了各種資源,協助您設計有效的提示。
GitLab Toolkit 總覽
Gitlab 工具包包含可讓 LLM 代理程式與 Gitlab 存放區互動的工具。這項工具是 python-gitlab
程式庫的包裝函式。
GitLab 工具包可執行下列工作:
- 建立檔案:在存放區中建立新檔案。
- 讀取檔案:從存放區讀取檔案。
- 更新檔案:更新存放區中的檔案。
- Create Pull Request:從 Bot 的工作分支版本建立提取要求,並將其提交至基礎分支版本。
- Get Issue:從存放區擷取問題。
- Get Issue:擷取特定問題的詳細資料。
- 針對問題發表意見:針對特定問題發布意見。
- 刪除檔案:從存放區刪除檔案。
設定 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 使用者 ID 和存放區名稱,才能執行這項指令。
範例: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 帳戶,並在「Settings」(設定) 部分產生 Service API 金鑰。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
建立 API 金鑰
在 Cloud 控制台/「API 和服務」/「憑證」專區中建立新的 API 金鑰。
這組金鑰將用於驗證對 Cloud Run 應用程式發出的 JIRA API 呼叫。
針對實際環境,您可以為已建立的 API 金鑰設定應用程式和 API 限制。應用程式限制會規定 API 金鑰只能用於特定網站(例如您的 JIRA 例項)。
設定 Cloud Run 服務部署作業所需的環境變數。
export DEVAI_API_KEY=your-api-key
在 Secret Manager 中建立密鑰
在本實驗室中,我們會遵循最佳做法,使用 Secret Manager 在 Cloud Run 中儲存及參照存取權杖、API 金鑰和 LangChain API 金鑰值。
在 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
回答 Y
以建立 Artifact Registry Docker 存放區。
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 或設定 Buildpacks 或 Cloud Build。也就是說,上述單一指令可執行原本需要 gcloud builds submit
和 gcloud run deploy
指令才能執行的動作。
如果您已提供 Dockerfile(我們在這個存放區中已提供),Cloud Build 就會使用該檔案建構容器映像檔,而不會依賴 Buildpack 自動偵測及建構容器映像檔。如要進一步瞭解 Buildpack,請參閱說明文件。
在 控制台中查看 Cloud Build 記錄。
在 Artifact Registry 中查看已建立的 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 CLI:
npm install -g @forge/cli
在本實驗室中,我們將使用環境變數登入。
設定 JIRA 專案
使用個人帳戶建立/查看 JIRA 專案。
查看現有的 JIRA 專案:https://admin.atlassian.com/
使用個人帳戶建立新的 JIRA 專案。
前往 https://team.atlassian.com/your-work,按一下「」,然後選取「
」。接著,依序選取「JIRA Software」>「立即試用」。按照提示完成專案/網站建立程序。
選取「JIRA 軟體」。
建立新專案。
建立 Atlassian API 權杖
建立或使用現有的 Atlassian API 權杖,登入 CLI。
CLI 執行指令時會使用您的權杖。
- 前往 https://id.atlassian.com/manage/api-tokens。
- 按一下「Create API token」。
- 輸入用來描述 API 權杖的標籤。例如 forge-api-token。
- 按一下「建立」。
- 按一下「複製到剪貼簿」,然後關閉對話方塊。
設定 Forge 環境
返回 Cloud 控制台,並在終端機中執行下列指令。
登入 Forge CLI 即可開始使用 Forge 指令。
設定 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
」按鈕。
按一下按鈕,並在 UI 中查看變更內容。
查看 Forge 後端記錄。
forge logs
Atlassian 開發人員控制台
您也可以在 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 專案 ID:
gcloud config get project
如果沒有,請使用 Qwiklabs 實驗室頁面中的專案 ID 設定 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 使用者 ID/存放區的連結。
您需要在兩個地方更新 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.
測試 Forge 應用程式
在 JIRA 專案中開啟現有的 JIRA 工作,或建立新的 JIRA 工作。
如果先前已新增面板,請移除該面板。
按一下「...
」,然後在選單中選取「移除」。之後,您可以再次點選按鈕。
查看 Jira 留言
收到 DEVAI API 的回應後,系統會在 JIRA 問題中新增註解。
- GitLab 合併要求連結
切換「History
」和「Comments
」分頁,即可重新整理檢視畫面。
驗證 GitLab 合併要求
開啟 GitLab,檢查專案中是否有新的合併要求。
LangSmith LLM 追蹤記錄
如果您已設定 LLM 追蹤功能,請開啟 LangSmith 入口,查看 GitLab 合併要求建立呼叫的 LLM 追蹤記錄。
範例 LangSmith 大型語言追蹤記錄。
9. 將變更推送至 GitHub 存放區
(選用段落)
前往 GitHub 網站,建立新的存放區,將本研究室的變更推送至個人存放區。
返回 Cloud 控制台,並在終端機中設定 Git 使用者名稱和電子郵件。
請先更新值,再執行指令。
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
產生安全殼層 (SSH) 金鑰,並將其新增至 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. 恭喜!
恭喜,您已完成實驗室!
涵蓋的內容:
- 如何部署 Cloud Run 應用程式,以便與 Gemini API 整合。
- 如何建立及部署 Atlassian Forge 應用程式 (適用於 JIRA)。
- 如何使用 LangChain ReAct Agent 自動執行 GitLab 工作。
- 如何在 LangSmith 中查看 LLM 追蹤記錄。
下一步:
- 更多實作課程即將推出!
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。
© 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。