1. ภาพรวม
ในแล็บนี้ คุณจะได้สร้างโซลูชันเพื่อทำให้การใช้งาน User Story ของ JIRA เป็นระบบอัตโนมัติด้วย GenAI

สิ่งที่คุณจะได้เรียนรู้
ห้องทดลองมีส่วนหลักๆ หลายส่วน ดังนี้
- ติดตั้งใช้งานแอปพลิเคชัน Cloud Run เพื่อผสานรวมกับ Gemini API
- สร้างและนำแอป Atlassian Forge สำหรับ JIRA ไปใช้งาน
- ใช้ LangChain ReAct Agent เพื่อการทำงานใน GitLab แบบอัตโนมัติ
ข้อกำหนดเบื้องต้น
- แล็บนี้มีสมมติฐานว่าคุณคุ้นเคยกับสภาพแวดล้อมของ Cloud Console และ Cloud Shell
2. การตั้งค่าและข้อกำหนด
การตั้งค่าโปรเจ็กต์ Cloud
- ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
- จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
การตั้งค่าสภาพแวดล้อม
เปิดแชทกับ Gemini

หรือพิมพ์ "ขอความช่วยเหลือจาก Gemini" ในแถบค้นหา

วิธีเปิดใช้ Gemini สำหรับ Google Cloud API

คลิก "Start chatting" แล้วทำตามตัวอย่างคำถามหรือพิมพ์พรอมต์ของคุณเองเพื่อลองใช้

พรอมต์ให้ลองใช้
- อธิบาย Cloud Run ใน 5 ประเด็นสำคัญ
- คุณเป็นผู้จัดการผลิตภัณฑ์ Google Cloud Run โปรดอธิบาย Cloud Run ให้แก่นักเรียน/นักศึกษาโดยใช้ประเด็นสำคัญสั้นๆ 5 ข้อ
- คุณเป็นผู้จัดการผลิตภัณฑ์ Google Cloud Run โปรดอธิบาย Cloud Run ให้กับนักพัฒนา Kubernetes ที่ได้รับการรับรองโดยใช้ประเด็นสำคัญสั้นๆ 5 ข้อ
- คุณเป็นผู้จัดการผลิตภัณฑ์ Google Cloud Run โปรดอธิบายว่าเมื่อใดควรใช้ Cloud Run แทน GKE แก่นักพัฒนาแอปอาวุโสใน 5 ประเด็นสั้นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเขียนพรอมต์ให้ดียิ่งขึ้นได้ในคู่มือการใช้พรอมต์
วิธีที่ Gemini สำหรับ Google Cloud ใช้ข้อมูลของคุณ
ความมุ่งมั่นของ Google ในการปกป้องความเป็นส่วนตัว
Google เป็นหนึ่งในบริษัทแรกๆ ในอุตสาหกรรมที่เผยแพร่ความมุ่งมั่นด้านความเป็นส่วนตัวของ AI/ML ซึ่งระบุความเชื่อของเราว่าลูกค้าควรมีการรักษาความปลอดภัยและการควบคุมข้อมูลในระดับสูงสุดที่จัดเก็บไว้ในระบบคลาวด์
ข้อมูลที่คุณส่งและรับ
คำถามที่คุณขอความช่วยเหลือจาก Gemini รวมถึงข้อมูลอินพุตหรือโค้ดที่คุณส่งให้ Gemini วิเคราะห์หรือทำให้เสร็จสมบูรณ์เรียกว่าพรอมต์ คำตอบหรือการเติมโค้ดที่คุณได้รับจาก Gemini เรียกว่าคำตอบ Gemini จะไม่ใช้พรอมต์ของคุณหรือคำตอบของ Gemini เป็นข้อมูลในการฝึกโมเดล
การเข้ารหัสพรอมต์
เมื่อคุณส่งพรอมต์ไปยัง Gemini ระบบจะเข้ารหัสข้อมูลของคุณขณะรับส่งเป็นอินพุตไปยังโมเดลพื้นฐานใน Gemini
ข้อมูลโปรแกรมที่สร้างจาก Gemini
Gemini ได้รับการฝึกด้วยโค้ดของ Google Cloud จากบุคคลที่หนึ่งและโค้ดของบุคคลที่สามที่เลือก คุณเป็นผู้รับผิดชอบด้านความปลอดภัย การทดสอบ และประสิทธิภาพของโค้ด รวมถึงการเติมโค้ด การสร้าง หรือการวิเคราะห์ที่ Gemini มอบให้คุณ
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Google จัดการพรอมต์ของคุณ
3. ตัวเลือกในการทดสอบพรอมต์
คุณมีตัวเลือกหลายอย่างในการทดสอบพรอมต์
Vertex AI Studio เป็นส่วนหนึ่งของแพลตฟอร์ม Vertex AI ของ Google Cloud ซึ่งออกแบบมาโดยเฉพาะเพื่อลดความซับซ้อนและเร่งการพัฒนาและการใช้โมเดล Generative AI
Google AI Studio เป็นเครื่องมือบนเว็บสำหรับสร้างต้นแบบและทดลองใช้การออกแบบพรอมต์และ Gemini API
- เว็บแอป Gemini (gemini.google.com)
เว็บแอป Gemini (gemini.google.com) เป็นเครื่องมือบนเว็บที่ออกแบบมาเพื่อช่วยให้คุณสำรวจและใช้ประโยชน์จากความสามารถของโมเดล AI จาก Gemini ของ Google
- แอป Gemini บนมือถือสำหรับ Android และแอป Google ใน iOS
4. ตรวจสอบใบสมัคร
สร้างบัญชีบริการ
กลับไปที่คอนโซล Google Cloud แล้วเปิดใช้งาน Cloud Shell โดยคลิกไอคอนทางด้านขวาของแถบค้นหา

ในเทอร์มินัลที่เปิดอยู่ ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างบัญชีบริการและคีย์ใหม่
คุณจะใช้บัญชีบริการนี้เพื่อทำการเรียก API ไปยัง Vertex AI Gemini API จากแอปพลิเคชัน Cloud Run
กำหนดค่ารายละเอียดโปรเจ็กต์โดยใช้รายละเอียดโปรเจ็กต์ 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
ชุดเครื่องมือ LangChain คือชุดเครื่องมือที่ออกแบบมาเพื่อเพิ่มประสิทธิภาพและปรับปรุงการพัฒนาแอปพลิเคชันด้วย LangChain โดยจะมีฟังก์ชันการทำงานที่หลากหลายขึ้นอยู่กับชุดเครื่องมือเฉพาะ แต่โดยทั่วไปแล้วจะช่วยในเรื่องต่อไปนี้
- การเชื่อมต่อกับแหล่งข้อมูลภายนอก: เข้าถึงและรวมข้อมูลจาก API, ฐานข้อมูล และแหล่งข้อมูลภายนอกอื่นๆ เข้ากับแอปพลิเคชัน LangChain
- เทคนิคการป้อนพรอมต์ขั้นสูง: ใช้พรอมต์ที่สร้างไว้ล่วงหน้าหรือสร้างพรอมต์ที่กำหนดเองเพื่อเพิ่มประสิทธิภาพการโต้ตอบกับโมเดลภาษา
- การสร้างและการจัดการเชน: สร้างเชนที่ซับซ้อนได้อย่างง่ายดายและจัดการได้อย่างมีประสิทธิภาพ
- การประเมินและการตรวจสอบ: วิเคราะห์ประสิทธิภาพของแอปพลิเคชันและเชน LangChain
ตัวอย่าง LangChain Toolkits ที่ได้รับความนิยม ได้แก่
- ชุดเครื่องมือ Agent Executor: เครื่องมือสำหรับพัฒนาเอเจนต์ที่โต้ตอบกับโลกแห่งความจริงได้ผ่านการดำเนินการต่างๆ เช่น การท่องเว็บหรือการเรียกใช้โค้ด
- ชุดเครื่องมือวิศวกรรมพรอมต์: แหล่งข้อมูลสำหรับการสร้างพรอมต์ที่มีประสิทธิภาพ
ภาพรวมชุดเครื่องมือ GitLab
ชุดเครื่องมือ Gitlab มีเครื่องมือที่ช่วยให้เอเจนต์ LLM โต้ตอบกับที่เก็บ Gitlab ได้ เครื่องมือนี้เป็น Wrapper สำหรับไลบรารี python-gitlab
ชุดเครื่องมือ GitLab สามารถทำงานต่อไปนี้ได้
- สร้างไฟล์ - สร้างไฟล์ใหม่ในที่เก็บ
- อ่านไฟล์ - อ่านไฟล์จากที่เก็บ
- อัปเดตไฟล์ - อัปเดตไฟล์ในที่เก็บ
- สร้าง Pull Request - สร้าง Pull Request จากกิ่งที่บ็อตทำงานไปยังกิ่งฐาน
- Get Issues - ดึงปัญหาจากที่เก็บ
- รับปัญหา - ดึงรายละเอียดเกี่ยวกับปัญหาที่เฉพาะเจาะจง
- แสดงความคิดเห็นเกี่ยวกับปัญหา - โพสต์ความคิดเห็นเกี่ยวกับปัญหาที่เฉพาะเจาะจง
- ลบไฟล์ - ลบไฟล์ออกจากที่เก็บ
การตั้งค่าโปรเจ็กต์ GitLab
เปิด GitLab สร้างโปรเจ็กต์ใหม่ และตั้งค่าโทเค็นการเข้าถึงโปรเจ็กต์ในส่วน "Settings / Access Tokens"
ใช้รายละเอียดต่อไปนี้
- ชื่อโทเค็น:
devai-api-qwiklabs - บทบาท:
Maintainer - เลือกขอบเขต:
api

คัดลอกและวางค่า Access Token ลงในไฟล์ชั่วคราวในแล็ปท็อปของคุณ โดยจะใช้ในขั้นตอนถัดไป
6. เตรียมพร้อมที่จะทำให้ใช้งานได้แอปพลิเคชันใน Cloud Run
กลับไปที่ Cloud Shell Editor แล้วใช้เทอร์มินัลที่มีอยู่หรือเปิดเทอร์มินัลใหม่

กำหนดค่ารายละเอียดโปรเจ็กต์โดยใช้รายละเอียดโปรเจ็กต์ Qwiklabs
ตัวอย่าง: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
ตั้งค่าตัวแปรสภาพแวดล้อมที่เหลือ
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
ตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นสำหรับการผสานรวม GitLab
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
แนวทางปฏิบัติแนะนำคือการใช้ read -s GITLAB_PERSONAL_ACCESS_TOKEN ซึ่งเป็นวิธีที่ปลอดภัยในการตั้งค่าตัวแปรสภาพแวดล้อมโดยไม่ให้ค่าปรากฏในประวัติคำสั่งของคอนโซล เพื่อหลีกเลี่ยงการเปิดเผยข้อมูลที่ละเอียดอ่อนในเทอร์มินัล หลังจากเรียกใช้แล้ว คุณต้องวางค่าและกด Enter คุณจะต้องส่งออกตัวแปรสภาพแวดล้อมด้วยเช่นกัน: export GITLAB_PERSONAL_ACCESS_TOKEN
คำสั่งนี้กำหนดให้คุณต้องอัปเดตรหัสผู้ใช้ GitLab และชื่อที่เก็บ
ตัวอย่าง: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

export GITLAB_REPOSITORY="USERID/REPOSITORY"
ตั้งค่าตัวแปรสภาพแวดล้อมที่เหลือ
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
การกำหนดค่าการติดตาม LLM ของ LangSmith
ตั้งค่าบัญชีหากต้องการดูข้อมูลการติดตามตัวแทนใน LangSmith หรือไม่เช่นนั้น ให้เรียกใช้คำสั่งตามที่เป็นอยู่
สร้างบัญชี LangSmith และสร้างคีย์ 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
ค่าเหล่านี้ไม่ได้ใช้ใน Lab นี้ ดังนั้นคุณจึงไม่จำเป็นต้องอัปเดตค่าดังกล่าวเป็นค่าโปรเจ็กต์ 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
สร้างคีย์ API ใหม่ในส่วน Cloud Console / API และบริการ / ข้อมูลเข้าสู่ระบบ
ระบบจะใช้คีย์นี้เพื่อตรวจสอบสิทธิ์การเรียก JIRA API ไปยังแอปพลิเคชัน Cloud Run
สำหรับสภาพแวดล้อมการใช้งานจริง คุณจะต้องกำหนดค่าข้อจำกัดของแอปพลิเคชันและ API สำหรับคีย์ API ที่สร้างขึ้น การจำกัดแอปพลิเคชันจะจำกัดการใช้งานคีย์ API สำหรับเว็บไซต์ที่เฉพาะเจาะจง(เช่น อินสแตนซ์ JIRA ของคุณ)
ตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นสำหรับการติดตั้งใช้งานบริการ Cloud Run
export DEVAI_API_KEY=your-api-key
สร้างข้อมูลลับใน Secret Manager
สำหรับ Lab นี้ เราจะทำตามแนวทางปฏิบัติแนะนำและใช้ Secret Manager เพื่อจัดเก็บและอ้างอิงค่าโทเค็นเพื่อการเข้าถึง คีย์ API และคีย์ API ของ LangChain ใน Cloud Run
สร้างและจัดเก็บข้อมูลลับที่จำเป็นใน 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 เพื่อสร้างที่เก็บ 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
โปรดดูโฟลว์ gcloud run deploy SERVICE_NAME --source=. ด้านล่าง ดูข้อมูลเพิ่มเติม

เบื้องหลังคำสั่งนี้ใช้ buildpacks และ Cloud Build ของ Google Cloud เพื่อสร้างอิมเมจคอนเทนเนอร์จากซอร์สโค้ดโดยอัตโนมัติโดยไม่ต้องติดตั้ง Docker ในเครื่องหรือตั้งค่า Buildpack หรือ Cloud Build กล่าวคือ คำสั่งเดียวที่อธิบายไว้ข้างต้นจะทำหน้าที่เหมือนกับคำสั่ง gcloud builds submit และ gcloud run deploy
หากคุณระบุ Dockerfile(ซึ่งเราได้ระบุไว้ในที่เก็บนี้) Cloud Build จะใช้ Dockerfile เพื่อสร้างอิมเมจคอนเทนเนอร์แทนการใช้ Buildpack เพื่อตรวจหาและสร้างอิมเมจคอนเทนเนอร์โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับ Buildpack ได้ที่เอกสารประกอบ
ตรวจสอบบันทึกของ Cloud Build ใน Console
ตรวจสอบอิมเมจ Docker ที่สร้างขึ้นใน Artifact Registry
ตรวจสอบรายละเอียดอินสแตนซ์ Cloud Run ใน Cloud Console
แอปพลิเคชันทดสอบ
ทดสอบปลายทางโดยเรียกใช้คำสั่ง curl
อัปเดตด้วย URL ของบริการ 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 Software

สร้างโปรเจ็กต์ใหม่

สร้างโทเค็น API ของ Atlassian
สร้างหรือใช้โทเค็น API ของ Atlassian ที่มีอยู่เพื่อเข้าสู่ระบบ CLI
CLI จะใช้โทเค็นเมื่อเรียกใช้คำสั่ง
- ไปที่ https://id.atlassian.com/manage/api-tokens
- คลิก Create API token
- ป้อนป้ายกำกับเพื่ออธิบายโทเค็น API เช่น forge-api-token
- คลิกสร้าง
- คลิกคัดลอกไปยังคลิปบอร์ด แล้วปิดกล่องโต้ตอบ
กำหนดการตั้งค่าสภาพแวดล้อม Forge
กลับไปที่ Cloud Console แล้วเรียกใช้คำสั่งด้านล่างในเทอร์มินัล
เข้าสู่ระบบ Forge CLI เพื่อเริ่มใช้คำสั่ง Forge
ตั้งค่าอีเมล JIRA/FORGE แทนที่ด้วยอีเมลของคุณ
export FORGE_EMAIL=your-email
ตั้งค่าโทเค็น API ของ Forge แทนที่ด้วยโทเค็น API ของ JIRA
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/
เรียกใช้คำสั่งเพื่อติดตั้งทรัพยากร Dependency
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 - ป้อน URL ของเว็บไซต์:
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 Developer Console
นอกจากนี้ คุณยังดูและจัดการแอปที่ติดตั้งใช้งานได้ใน Atlassian Developer Console

ตรวจสอบบันทึก - เปลี่ยนไปใช้สภาพแวดล้อม Development

ตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน Forge และซอร์สโค้ด
เปิดไฟล์ "devai-jira-ui-qwiklabs/manifest.yml" แล้วใช้ Gemini Code Assist เพื่ออธิบายการกำหนดค่า

ดูคำอธิบาย

เปิดไฟล์ต่อไปนี้แล้วขอความช่วยเหลือจาก Gemini Code Assist ให้ช่วยอธิบาย
devai-jira-ui-qwiklabs/src/frontend/index.jsxdevai-jira-ui-qwiklabs/src/resolvers/index.js

อัปเดตแอป Forge ด้วยปลายทาง DevAI API Cloud Run
ตรวจสอบว่าได้ตั้งค่ารหัสโปรเจ็กต์ GCP แล้วหรือไม่
gcloud config get project
หากไม่ได้ตั้งค่า ให้ตั้งค่าโปรเจ็กต์ GCP โดยใช้รหัสโปรเจ็กต์จากหน้าแล็บ Qwiklabs
ตัวอย่าง: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
ตั้งค่า URL ของบริการ 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
ตั้งค่าคีย์ API ของ DEVAI
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
ยืนยันโดยเรียกใช้คำสั่งด้านล่าง
forge variables list
เอาต์พุตตัวอย่าง

อัปเดตไฟล์ Manifest และโค้ดของแอปพลิเคชัน Forge
คุณดูข้อมูลโค้ดเหล่านี้ได้ในที่เก็บภายใต้โฟลเดอร์ sample-devai-jira-ui
เปิดไฟล์ Manifest ในเครื่องมือแก้ไข: 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
เปิดไฟล์ resolvers/index ในเครื่องมือแก้ไข: 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;
});
เปิดไฟล์ frontend/index ในเครื่องมือแก้ไข: devai-jira-ui-qwiklabs/src/frontend/index.jsx
แทนที่ index.jsx ด้วยเนื้อหาด้านล่าง อัปเดตลิงก์ไปยังรหัสผู้ใช้/ที่เก็บ GitLab
คุณต้องอัปเดต YOUR-GIT-USERID และ YOUR-GIT-REPO ใน 2 ที่
ค้นหาบรรทัดนี้ในไฟล์และทำการเปลี่ยนแปลง
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 อีกครั้ง
เพิ่มทรัพยากร Dependency ในไฟล์ package.json
"@forge/api": "4.0.0",
เรียกใช้คำสั่งเพื่อติดตั้งทรัพยากร Dependency
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
เมื่อได้รับคำตอบจาก DEVAI API แล้ว ระบบจะเพิ่มความคิดเห็นในปัญหา JIRA
- ลิงก์คำขอผสานของ GitLab
สลับระหว่างแท็บ "History" กับ "Comments" เพื่อรีเฟรชมุมมอง

ยืนยันคำขอผสานของ GitLab
เปิด GitLab แล้วดูคำขอผสานใหม่ในโปรเจ็กต์


การติดตาม LLM ของ LangSmith
หากกำหนดค่าการติดตาม LLM ให้เปิดพอร์ทัล LangSmith แล้วตรวจสอบการติดตาม LLM สำหรับการเรียกสร้างคำขอผสานรวมของ GitLab
การติดตาม LLM ของ LangSmith ตัวอย่าง

9. พุชการเปลี่ยนแปลงไปยังที่เก็บ GitHub
(OPTIONAL SECTION)
ไปที่เว็บไซต์ GitHub แล้วสร้างที่เก็บใหม่เพื่อพุชการเปลี่ยนแปลงสำหรับแล็บนี้ไปยังที่เก็บส่วนตัว
กลับไปที่ Cloud Console แล้วตั้งค่าชื่อผู้ใช้และอีเมล 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
ตั้งค่าต้นทางระยะไกลโดยใช้ที่เก็บที่สร้างไว้ด้านบน
แทนที่ด้วย URL ของที่เก็บ
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
- วิธีตรวจสอบการติดตาม LLM ใน LangSmith
ขั้นตอนต่อไปที่ทำได้
- เราจะจัดเซสชันแบบลงมือปฏิบัติเพิ่มเติมในเร็วๆ นี้
ล้างข้อมูล
โปรดลบโปรเจ็กต์ที่มีทรัพยากรหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
การลบโปรเจ็กต์
วิธีที่ง่ายที่สุดในการยกเลิกการเรียกเก็บเงินคือการลบโปรเจ็กต์ที่คุณสร้างขึ้นสำหรับบทแนะนำ
©2024 Google LLC สงวนลิขสิทธิ์ Google และโลโก้ของ Google เป็นเครื่องหมายการค้าของ Google LLC ชื่อบริษัทและผลิตภัณฑ์อื่นๆ ทั้งหมดอาจเป็นเครื่องหมายการค้าของบริษัทที่เป็นเจ้าของ