เกี่ยวกับ Codelab นี้
1 ภาพรวม
ในชั้นเรียนนี้ คุณจะได้สร้างโซลูชันเพื่อทำให้การติดตั้งใช้งาน User Story ของ JIRA เป็นระบบอัตโนมัติด้วย GenAI
สิ่งที่คุณจะได้เรียนรู้
ห้องทดลองประกอบด้วยส่วนหลักๆ หลายส่วนดังนี้
- ติดตั้งใช้งานแอปพลิเคชัน Cloud Run เพื่อผสานรวมกับ Gemini API
- สร้างและทำให้แอป Atlassian Forge สำหรับ JIRA ใช้งานได้
- ใช้ LangChain ReAct Agent สำหรับการทำงานอัตโนมัติของ GitLab
ข้อกำหนดเบื้องต้น
- แล็บนี้ถือว่าคุณคุ้นเคยกับสภาพแวดล้อม Cloud Console และ Cloud Shell
2 การตั้งค่าและข้อกำหนด
การตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์
- ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะต้องไม่ซ้ำกันสำหรับโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น
PROJECT_ID
) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าอุปกรณ์พร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงชื่อหลังจากขั้นตอนนี้ไม่ได้ และชื่อดังกล่าวจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ 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 ได้รับการฝึกด้วยโค้ด Google Cloud ของบุคคลที่หนึ่งและโค้ดของบุคคลที่สามที่เลือก คุณมีหน้าที่รับผิดชอบต่อความปลอดภัย การทดสอบ และประสิทธิภาพของโค้ด รวมถึงการเติมโค้ด การสร้าง หรือการวิเคราะห์ที่ Gemini มีให้คุณ
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Google จัดการพรอมต์ของคุณ
3 ตัวเลือกในการทดสอบพรอมต์
คุณทดสอบพรอมต์ได้หลายวิธี
Vertex AI Studio เป็นส่วนหนึ่งของแพลตฟอร์ม Vertex AI ของ Google Cloud ซึ่งออกแบบมาเพื่อลดความซับซ้อนและเร่งการพัฒนาและการใช้โมเดล Generative AI โดยเฉพาะ
Google AI Studio เป็นเครื่องมือบนเว็บสำหรับการสร้างต้นแบบและการทดลองกับการสร้างพรอมต์และ Gemini API
- เว็บแอป Gemini (gemini.google.com)
เว็บแอป Google Gemini (gemini.google.com) เป็นเครื่องมือบนเว็บที่ออกแบบมาเพื่อช่วยให้คุณสำรวจและใช้ประโยชน์จากความสามารถของโมเดล AI ของ Gemini ของ Google
- แอป Google Gemini บนอุปกรณ์เคลื่อนที่สำหรับ Android และแอป Google ใน iOS
4 ตรวจสอบใบสมัคร
สร้างบัญชีบริการ
กลับไปที่ Google Cloud Console และเปิดใช้งาน 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 Chat
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
เปิดใช้บริการที่จำเป็นเพื่อใช้ Vertex AI API และ Gemini Chat
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 การกําหนดค่าที่เก็บและ Toolkit ของ GitLab
ในชั้นเรียนนี้ คุณจะใช้ GitLabToolkit เพื่อสร้างคำขอผสาน GitLab โดยอัตโนมัติ
ภาพรวมของชุดเครื่องมือ LangChain
ชุดเครื่องมือ LangChain คือชุดเครื่องมือที่ออกแบบมาเพื่อปรับปรุงและเพิ่มประสิทธิภาพการพัฒนาแอปพลิเคชันด้วย LangChain ซึ่งจะมอบฟังก์ชันการทำงานที่หลากหลาย ทั้งนี้ขึ้นอยู่กับชุดเครื่องมือแต่ละชุด แต่โดยทั่วไปแล้วชุดเครื่องมือเหล่านี้จะช่วยในเรื่องต่อไปนี้
- การเชื่อมต่อกับแหล่งข้อมูลภายนอก: เข้าถึงและรวมข้อมูลจาก API, ฐานข้อมูล และแหล่งที่มาภายนอกอื่นๆ ไว้ในแอปพลิเคชัน LangChain
- เทคนิคพรอมต์ขั้นสูง: ใช้พรอมต์ที่สร้างไว้ล่วงหน้าหรือสร้างพรอมต์ที่กำหนดเองเพื่อเพิ่มประสิทธิภาพการโต้ตอบกับโมเดลภาษา
- การสร้างและการจัดการเชน: สร้างเชนที่ซับซ้อนได้อย่างง่ายดายและจัดการเชนได้อย่างมีประสิทธิภาพ
- การประเมินและการตรวจสอบ: วิเคราะห์ประสิทธิภาพของแอปพลิเคชันและเชนของ LangChain
เครื่องมือ LangChain ยอดนิยมบางรายการ ได้แก่
- ชุดเครื่องมือสำหรับโปรแกรมที่ทำงานกับเอเจนต์: เครื่องมือสำหรับพัฒนาเอเจนต์ที่โต้ตอบกับโลกแห่งความเป็นจริงได้ผ่านการดำเนินการต่างๆ เช่น การท่องเว็บหรือการดำเนินการกับโค้ด
- ชุดเครื่องมือสำหรับสร้างพรอมต์: คอลเล็กชันแหล่งข้อมูลสำหรับสร้างพรอมต์ที่มีประสิทธิภาพ
ภาพรวมของ GitLab Toolkit
เครื่องมือของ Gitlab มีเครื่องมือที่ช่วยให้ตัวแทน LLM โต้ตอบกับที่เก็บ Gitlab ได้ เครื่องมือนี้เป็น Wrapper สําหรับไลบรารี python-gitlab
เครื่องมือของ GitLab สามารถทำสิ่งต่อไปนี้
- สร้างไฟล์ - สร้างไฟล์ใหม่ในที่เก็บ
- อ่านไฟล์ - อ่านไฟล์จากที่เก็บ
- อัปเดตไฟล์ - อัปเดตไฟล์ในที่เก็บ
- สร้างคำขอดึงข้อมูล - สร้างคำขอดึงข้อมูลจากสาขาที่ทำงานของบอทไปยังสาขาฐาน
- รับปัญหา - ดึงข้อมูลปัญหาจากที่เก็บ
- รับปัญหา - ดึงข้อมูลรายละเอียดเกี่ยวกับปัญหาที่เฉพาะเจาะจง
- แสดงความคิดเห็นเกี่ยวกับปัญหา - โพสต์ความคิดเห็นเกี่ยวกับปัญหาที่เฉพาะเจาะจง
- ลบไฟล์ - ลบไฟล์ออกจากที่เก็บ
การตั้งค่าโปรเจ็กต์ GitLab
เปิด GitLab สร้างโปรเจ็กต์ใหม่ และตั้งค่าโทเค็นการเข้าถึงโปรเจ็กต์ในส่วน "Settings / Access Tokens
"
ใช้รายละเอียดต่อไปนี้
- ชื่อโทเค็น:
devai-api-qwiklabs
- บทบาท:
Maintainer
- เลือกขอบเขต:
api
คัดลอกและวางค่า Access Token ลงในไฟล์ชั่วคราวในแล็ปท็อป ซึ่งจะใช้ในขั้นตอนถัดไป
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
ตัวอย่าง: 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 และสร้างคีย์ 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
สร้างคีย์ API ใหม่ในส่วน Cloud Console / API และบริการ / ข้อมูลเข้าสู่ระบบ
ระบบจะใช้คีย์นี้เพื่อตรวจสอบสิทธิ์การเรียก JIRA API ไปยังแอปพลิเคชัน Cloud Run
สําหรับสภาพแวดล้อมที่ใช้งานจริง คุณจะกําหนดค่าการจํากัดแอปพลิเคชันและ API สําหรับคีย์ API ที่สร้างขึ้น การจํากัดแอปพลิเคชันจะจํากัดการใช้งานคีย์ API ไว้สําหรับบางเว็บไซต์เท่านั้น(เช่น อินสแตนซ์ JIRA)
ตั้งค่าตัวแปรสภาพแวดล้อมที่จําเป็นสําหรับการทําให้บริการ Cloud Run ใช้งานได้
export DEVAI_API_KEY=your-api-key
สร้างข้อมูลลับใน Secret Manager
ในแล็บนี้ เราจะทําตามแนวทางปฏิบัติแนะนําและใช้ 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
เพื่อสร้างที่เก็บ 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=.
ด้านล่าง ดูข้อมูลเพิ่มเติม
เบื้องหลัง คำสั่งนี้ใช้ buildpacks
และ Cloud Build
ของ Google Cloud เพื่อสร้างอิมเมจคอนเทนเนอร์จากซอร์สโค้ดโดยอัตโนมัติโดยไม่ต้องติดตั้ง Docker ในเครื่องหรือตั้งค่า Buildpack หรือ Cloud Build กล่าวคือ คำสั่งเดียวที่อธิบายไว้ข้างต้นจะทําสิ่งที่ต้องใช้คําสั่ง gcloud builds submit
และ gcloud run deploy
หากคุณระบุ Dockerfile(ซึ่งเราได้ระบุไว้ในที่เก็บนี้) แล้ว Cloud Build จะใช้ไฟล์ดังกล่าวเพื่อสร้างอิมเมจคอนเทนเนอร์แทนที่จะใช้ Buildpack เพื่อตรวจหาและสร้างอิมเมจคอนเทนเนอร์โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับบิลด์แพ็กได้จากเอกสารประกอบ
ตรวจสอบบันทึก Cloud Build ในคอนโซล
ตรวจสอบอิมเมจ 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
สร้างโปรเจ็กต์ใหม่
สร้างโทเค็น Atlassian API
สร้างหรือใช้โทเค็น Atlassian API ที่มีอยู่เพื่อเข้าสู่ระบบ CLI
CLI จะใช้โทเค็นของคุณเมื่อเรียกใช้คําสั่ง
- ไปที่ https://id.atlassian.com/manage/api-tokens
- คลิกสร้างโทเค็น API
- ป้อนป้ายกำกับเพื่ออธิบายโทเค็น API เช่น forge-api-token
- คลิกสร้าง
- คลิกคัดลอกไปยังคลิปบอร์ด แล้วปิดกล่องโต้ตอบ
กำหนดการตั้งค่าสภาพแวดล้อม Forge
กลับไปที่ Cloud Console แล้วเรียกใช้คำสั่งด้านล่างในเทอร์มินัล
เข้าสู่ระบบ 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/
เรียกใช้คําสั่งเพื่อติดตั้ง 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
นอกจากนี้ คุณยังดูและจัดการแอปที่ติดตั้งใช้งานได้ใน Atlassian Developer Console
ตรวจสอบบันทึก - เปลี่ยนไปใช้สภาพแวดล้อม Development
ตรวจสอบไฟล์ Manifest และแอปพลิเคชันซอร์สโค้ดของ Forge
เปิดไฟล์ "devai-jira-ui-qwiklabs/manifest.yml
" และใช้ฟีเจอร์ช่วยเขียนโค้ดของ Gemini เพื่ออธิบายการกําหนดค่า
ตรวจสอบคำอธิบาย
เปิดไฟล์ต่อไปนี้และขอให้ Gemini Code Assist อธิบาย
devai-jira-ui-qwiklabs/src/frontend/index.jsx
devai-jira-ui-qwiklabs/src/resolvers/index.js
อัปเดตแอป Forge ด้วยปลายทาง Cloud Run ของ DevAI API
ตรวจสอบว่าได้ตั้งค่ารหัสโปรเจ็กต์ 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
เปิดไฟล์ Resolver/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;
});
เปิดไฟล์หน้าเว็บ/ดัชนีในเครื่องมือแก้ไข: 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 อีกครั้ง
เพิ่มการพึ่งพาในไฟล์ 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 ชื่อบริษัทและผลิตภัณฑ์อื่นๆ ทั้งหมดอาจเป็นเครื่องหมายการค้าของบริษัทที่เป็นเจ้าของ