1. Ringkasan
Dalam lab ini, Anda akan membuat solusi untuk mengotomatiskan penerapan cerita penggunaan JIRA dengan AI generatif.
Yang akan Anda pelajari
Ada beberapa bagian utama dalam lab ini:
- Men-deploy aplikasi Cloud Run untuk berintegrasi dengan Gemini API
- Membuat dan men-deploy aplikasi Atlassian Forge untuk JIRA
- Agen ReAct LangChain untuk otomatisasi tugas GitLab
Prasyarat
- Di lab ini, Anda dianggap telah memahami Konsol Cloud dan lingkungan Cloud Shell.
2. Penyiapan dan persyaratan
Penyiapan Project Cloud
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai
PROJECT_ID
). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Penyiapan lingkungan
Buka chat Gemini.
Atau ketik "Tanya Gemini" di kotak penelusuran.
Aktifkan Cloud AI Companion API:
Klik "Start chatting
" dan ikuti salah satu contoh pertanyaan atau ketik perintah Anda sendiri untuk mencobanya.
Perintah yang dapat dicoba:
- Jelaskan Cloud Run dalam 5 poin utama.
- Anda adalah Product Manager Google Cloud Run, jelaskan Cloud Run kepada seorang siswa dalam 5 poin penting singkat.
- Anda adalah Product Manager Google Cloud Run, jelaskan Cloud Run kepada Developer Kubernetes Bersertifikat dalam 5 poin penting singkat.
- Anda adalah Product Manager Google Cloud Run, jelaskan kapan Anda akan menggunakan Cloud Run versus GKE kepada Developer Senior dalam 5 poin penting singkat.
Lihat Panduan Perintah untuk mempelajari lebih lanjut cara menulis perintah yang lebih baik.
Cara Gemini untuk Google Cloud menggunakan data Anda
Komitmen privasi Google
Google adalah salah satu yang pertama di industri yang memublikasikan komitmen privasi AI/ML, yang menguraikan keyakinan kami bahwa pelanggan harus memiliki tingkat keamanan dan kontrol tertinggi atas data mereka yang disimpan di cloud.
Data yang Anda kirimkan dan terima
Pertanyaan yang Anda ajukan kepada Gemini, termasuk informasi input atau kode yang Anda kirimkan ke Gemini untuk dianalisis atau diselesaikan, disebut perintah. Jawaban atau penyelesaian kode yang Anda terima dari Gemini disebut respons. Gemini tidak menggunakan perintah Anda atau responsnya sebagai data untuk melatih modelnya.
Enkripsi perintah
Saat Anda mengirimkan perintah ke Gemini, data Anda dienkripsi selama pengiriman sebagai input ke model pokok di Gemini.
Data program yang dihasilkan dari Gemini
Gemini dilatih dengan kode Google Cloud pihak pertama serta kode pihak ketiga yang dipilih. Anda bertanggung jawab atas keamanan, pengujian, dan efektivitas kode Anda, termasuk penyelesaian, pembuatan, atau analisis kode yang ditawarkan Gemini kepada Anda.
Pelajari lebih lanjut cara Google menangani perintah Anda.
3. Opsi untuk menguji perintah
Anda memiliki beberapa opsi untuk menguji perintah.
Vertex AI Studio adalah bagian dari platform Vertex AI Google Cloud, yang dirancang khusus untuk menyederhanakan dan mempercepat pengembangan serta penggunaan model AI generatif.
Google AI Studio adalah alat berbasis web untuk membuat prototipe dan bereksperimen dengan rekayasa perintah dan Gemini API.
- Aplikasi Web Gemini (gemini.google.com)
Aplikasi web Google Gemini (gemini.google.com) adalah alat berbasis web yang dirancang untuk membantu Anda menjelajahi dan memanfaatkan kecanggihan model AI Gemini Google.
- Aplikasi seluler Google Gemini untuk Android dan aplikasi Google di iOS
4. (BAGIAN OPSIONAL) Membuat Akun Layanan
Langkah-langkah ini dijalankan selama penyiapan lab - Anda tidak perlu menjalankannya.
Langkah-langkah ini disertakan untuk menunjukkan cara menyiapkan akun layanan dan peran IAM.
Kembali ke Konsol Google Cloud dan aktifkan Cloud Shell dengan mengklik ikon di sebelah kanan kotak penelusuran.
Di terminal yang terbuka, jalankan perintah berikut untuk membuat kunci dan akun layanan baru.
Anda akan menggunakan akun layanan ini untuk melakukan panggilan API ke Vertex AI Gemini API dari aplikasi Cloud Run.
Konfigurasikan detail project menggunakan detail project Qwiklabs Anda.
Contoh: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Buat akun layanan dan berikan peran.
PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
KEY_FILE_NAME='vertex-client-key'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --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"
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
Jika diminta untuk memberikan otorisasi, klik "Authorize" untuk melanjutkan.
Aktifkan layanan yang diperlukan untuk menggunakan Vertex AI API dan chat Gemini.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Aktifkan layanan yang diperlukan untuk menggunakan Vertex AI API dan chat 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
(END OF OPTIONAL SECTION)
5. Memberikan akses ke Cloud Workstations
Buka Cloud Workstation di Cloud Console.
Berikan akses ke Cloud Workstation untuk siswa Qwiklabs yang disediakan.
Salin nama pengguna/email Qwiklabs yang dibuat untuk project ini, dan gunakan untuk menambahkan akun utama. Pilih workstation, lalu klik "PERMISSIONS
".
Baca detail di bawah.
Klik tombol "ADD PRINCIPAL
".
Tempelkan email siswa Qwiklabs dan pilih peran "Cloud Workstations User
".
Klik "Start
", lalu "Launch
" untuk membuka workstation dan lanjutkan dengan langkah-langkah berikut menggunakan terminal bawaan.
Meng-clone Repositori GitHub
Buat folder dan clone repositori GitHub.
mkdir github
cd github
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Dengan menggunakan item menu "File / Open Folder
", buka "github/genai-for-developers
".
6. Mengaktifkan Gemini Code Assist
Klik ikon "Gemini", di pojok kanan bawah, klik "Login to Google Cloud
".
Klik link di terminal untuk memulai alur otorisasi.
Klik "Buka" untuk membuka link.
Pilih akun pelajar Qwiklabs Anda, lalu klik "Login" di layar berikutnya.
Salin kode verifikasi:
Kembali ke terminal dan tempelkan kode.
Tunggu hingga autentikasi selesai, lalu klik "Select a Google Project".
Dari jendela pop-up, pilih project Qwiklabs Anda.
Contoh:
Buka file "devai-api/app/routes.py
", lalu klik kanan di mana saja dalam file dan pilih "Gemini > Explain
this"
dari menu konteks.
Tinjau penjelasan Gemini untuk file yang dipilih.
7. Toolkit LangChain
Toolkit LangChain adalah kumpulan alat yang dirancang untuk menyederhanakan dan meningkatkan pengembangan aplikasi dengan LangChain. Alat ini menawarkan berbagai fungsi bergantung pada toolkit tertentu, tetapi secara umum, alat ini membantu:
- Menghubungkan ke sumber data eksternal: Mengakses dan menggabungkan informasi dari API, database, dan sumber eksternal lainnya ke dalam aplikasi LangChain Anda.
- Teknik perintah lanjutan: Gunakan perintah bawaan atau buat perintah kustom untuk mengoptimalkan interaksi dengan model bahasa.
- Pembuatan dan pengelolaan rantai: Buat rantai yang kompleks dengan mudah dan kelola dengan efisien.
- Evaluasi dan pemantauan: Menganalisis performa aplikasi dan rantai LangChain Anda.
Beberapa Toolkit LangChain populer meliputi:
- Toolkit Eksekutor Agen: Alat untuk mengembangkan agen yang dapat berinteraksi dengan dunia nyata melalui tindakan seperti penjelajahan web atau eksekusi kode.
- Prompt Engineering Toolkit: Kumpulan referensi untuk membuat perintah yang efektif.
Toolkit GitLab
Di lab ini, Anda akan menggunakan Toolkit GitLab untuk mengotomatiskan pembuatan permintaan penggabungan GitLab.
Toolkit Gitlab berisi alat yang memungkinkan agen LLM berinteraksi dengan repositori gitlab. Alat ini adalah wrapper untuk library python-gitlab
.
Toolkit GitLab dapat melakukan tugas berikut:
- Create File - membuat file baru di repositori.
- Read File - membaca file dari repositori.
- Update File - memperbarui file di repositori.
- Create Pull Request - membuat permintaan pull dari cabang kerja bot ke cabang dasar.
- Get Issue - mengambil masalah dari repositori.
- Get Issue - mengambil detail tentang masalah tertentu.
- Komentari Masalah - memposting komentar tentang masalah tertentu.
- Hapus File - menghapus file dari repositori.
8. Konfigurasi Repositori dan Toolkit GitLab
Buka GitLab, buat project publik baru, dan siapkan Token Akses Project di bagian "Settings / Access Tokens
".
Gunakan detail berikut:
- Nama token:
devai-api-qwiklabs
- Peran:
Maintainer
- Pilih cakupan:
api
Salin dan tempel nilai Token Akses ke file sementara di laptop Anda, yang akan digunakan di langkah berikutnya.
9. Bersiap untuk men-deploy aplikasi di Cloud Run
Kembali ke instance Cloud Workstations dan gunakan terminal yang ada atau buka terminal baru.
Dapatkan kredensial akses untuk akun pengguna Anda melalui alur otorisasi berbasis web.
Klik link dan ikuti langkah-langkah untuk membuat kode verifikasi.
gcloud auth login
Konfigurasikan detail project menggunakan detail project Qwiklabs Anda.
Contoh: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
Tetapkan variabel lingkungan lainnya:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
Tetapkan variabel lingkungan yang diperlukan untuk integrasi GitLab.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
Untuk menghindari eksposur informasi sensitif di terminal, praktik terbaiknya adalah menggunakan read -s
. Ini adalah cara aman untuk menetapkan variabel lingkungan tanpa nilai yang muncul di histori perintah konsol. Setelah menjalankannya, Anda harus menempelkan nilai dan menekan enter.
Perintah ini mengharuskan Anda memperbarui userid dan nama repositori GitLab.
Contoh: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"
export GITLAB_REPOSITORY="USERID/REPOSITORY"
Tetapkan variabel lingkungan lainnya:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
10. Konfigurasi pelacakan LLM LangSmith
Buat akun LangSmith dan buat kunci Service API di bagian Setelan. https://docs.smith.langchain.com/
Tetapkan variabel lingkungan yang diperlukan untuk integrasi LangSmith.
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
11. Konfigurasi JIRA
Nilai ini tidak digunakan di lab ini, sehingga Anda tidak perlu memperbaruinya ke nilai project JIRA tertentu sebelum menjalankan perintah.
Tetapkan variabel lingkungan yang diperlukan untuk deployment layanan 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
12. Men-deploy Devai-API ke Cloud Run
Pastikan Anda berada di folder yang benar.
cd ~/github/genai-for-developers/devai-api
Untuk lab ini, kita akan mengikuti praktik terbaik dan menggunakan Secret Manager untuk menyimpan dan mereferensikan nilai Token Akses dan Kunci API LangChain di Cloud Run.
Simpan Token Akses JIRA di Secret Manager.
echo -n $JIRA_API_TOKEN | \
gcloud secrets create JIRA_API_TOKEN \
--data-file=-
Simpan Token Akses GitLab di Secret Manager.
echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
--data-file=-
Simpan Kunci API LangChain di Secret Manager.
echo -n $LANGCHAIN_API_KEY | \
gcloud secrets create LANGCHAIN_API_KEY \
--data-file=-
Men-deploy aplikasi ke 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" \
--min-instances=1 \
--max-instances=3
Jawab Y
untuk membuat repositori 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
Tinjau alur gcloud run deploy SERVICE_NAME --source=.
di bawah. Pelajari lebih lanjut.
Di balik layar, perintah ini menggunakan buildpacks
dan Cloud Build
Google Cloud untuk mem-build image container secara otomatis dari kode sumber Anda tanpa harus menginstal Docker di komputer atau menyiapkan buildpack atau Cloud Build. Artinya, satu perintah yang dijelaskan di atas melakukan apa yang sebaliknya memerlukan perintah gcloud builds submit
dan gcloud run deploy
.
Jika Anda telah menyediakan Dockerfile(yang telah kita lakukan di repositori ini), Cloud Build akan menggunakannya untuk mem-build image container, bukan mengandalkan buildpack untuk mendeteksi dan mem-build image container secara otomatis. Untuk mempelajari buildpack lebih lanjut, lihat dokumentasi.
Tinjau log Cloud Build di Konsol.
Tinjau image Docker yang dibuat di Artifact Registry.
Buka cloud-run-source-deploy/devai-api
dan tinjau kerentanan yang terdeteksi secara otomatis. Periksa bug yang memiliki perbaikan yang tersedia dan lihat cara memperbaikinya berdasarkan deskripsi.
Tinjau detail instance Cloud Run di Cloud Console.
Uji endpoint dengan menjalankan perintah curl.
curl -X POST \
-H "Content-Type: application/json" \
-d '{"prompt": "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."}' \
$(gcloud run services list --filter="(devai-api)" --format="value(URL)")/generate
(BAGIAN OPSIONAL) Menyiapkan Cloud Workstation
Cloud Workstations menyediakan lingkungan pengembangan terkelola di Google Cloud dengan keamanan bawaan dan lingkungan pengembangan yang telah dikonfigurasi sebelumnya, tetapi dapat disesuaikan. Daripada mewajibkan developer untuk menginstal software dan menjalankan skrip penyiapan, Anda dapat membuat konfigurasi workstation yang menentukan lingkungan dengan cara yang dapat direproduksi. Setiap update pada konfigurasi workstation akan otomatis diterapkan ke workstation saat workstation dimulai lagi. Developer mengakses workstation melalui IDE berbasis browser, dari beberapa editor kode lokal (seperti VSCode atau JetBrains IDE seperti IntelliJ IDEA Ultimate dan PyCharm Professional), atau melalui SSH.
Cloud Workstations menggunakan resource Google Cloud berikut untuk mengelola lingkungan pengembangan Anda:
- Cluster workstation menentukan grup workstation di region tertentu dan jaringan VPC tempat workstation tersebut terhubung. Cluster workstation tidak terkait dengan cluster Google Kubernetes Engine (GKE).
- Konfigurasi workstation berfungsi sebagai template untuk workstation. Konfigurasi workstation menentukan detail seperti jenis instance virtual machine (VM) workstation, penyimpanan persisten, lingkungan penentuan image container, IDE atau Code Editor yang akan digunakan, dan lainnya. Administrator dan tim platform juga dapat menggunakan aturan Identity and Access Management (IAM) untuk memberikan akses kepada tim atau kepada developer perorangan.
- Workstation adalah lingkungan pengembangan yang telah dikonfigurasi sebelumnya yang menyediakan IDE cloud, alat bahasa, library, dan lainnya. Workstation dapat dimulai atau dihentikan sesuai permintaan, dan dijalankan di VM Compute Engine dalam project Anda, dengan disk persisten yang terpasang untuk menyimpan data di antara sesi.
Administrator dan tim platform membuat konfigurasi workstation yang mereka bagikan kepada tim pengembangan. Setiap developer membuat workstation berdasarkan konfigurasi workstation.
Di lab ini, Anda menggunakan IDE berbasis browser, tetapi Cloud Workstations juga mendukung antarmuka pengembangan umum lainnya:
- Anda dapat menggunakan JetBrains IDE lokal Anda sendiri melalui JetBrains Gateway
- Jika menggunakan VSCode Lokal, Anda juga dapat mengakses workstation untuk pengembangan jarak jauh melalui SSH.
- Anda juga dapat menyiapkan SSH dan bahkan tunnel TCP ke Workstation dari komputer lokal
(BAGIAN OPSIONAL) Membuat cluster Workstation
Langkah-langkah ini dijalankan selama penyiapan lab - Anda tidak perlu menjalankannya.
Langkah-langkah ini disertakan untuk menunjukkan cara menyiapkan Cluster, Konfigurasi, dan Workstation Cloud Workstations.
Tinjau bagian ini dan lanjutkan ke bagian Platform Forge.
Membuat cluster Workstation:
gcloud workstations clusters create ws-cluster --region=us-central1
Membuat konfigurasi Workstation
gcloud workstations configs create devai-config \
--cluster=ws-cluster \
--machine-type=e2-standard-8 \
--region=us-central1 \
--running-timeout=21600 \
--idle-timeout=1800 \
--container-predefined-image=codeoss \
--pd-disk-size=200 \
--pd-disk-type=pd-standard \
--service-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \
--pool-size=1
Membuat Workstation
gcloud workstations create devai-workstation \
--cluster=ws-cluster \
--config=devai-config \
--region=us-central1
Lihat workstation yang tersedia di Cloud Console. Mulai dan Luncurkan "devai-workstation
".
Aktifkan "Gemini
" di sudut kanan bawah, ikuti alur login di tab browser baru, lalu salin kode yang dihasilkan kembali ke konsol untuk menyelesaikan login.
Buka chat "Gemini
" di panel kiri dan minta Gemini:
"You are a Cloud Workstations Product Manager, tell me about Cloud Workstations
".
"You are Cloud Workstations Product Manager, Can I create my custom Cloud Workstations image with my company tools so new developers can onboard in minutes?
".
(END OF OPTIONAL SECTION)
13. Platform Forge
Forge adalah platform yang memungkinkan developer membuat aplikasi yang terintegrasi dengan produk Atlassian, seperti Jira, Confluence, Compass, dan Bitbucket.
Menginstal Forge CLI
Jalankan perintah di bawah ini di terminal.
Download Node Version Manager ( nvm) dan sediakan di jalur dalam sesi terminal saat ini.
cd ~/github/genai-for-developers
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Instal nvm.
Pilih rilis LTS Node.js terbaru dengan menjalankan perintah berikut di terminal:
nvm install --lts
nvm use --lts
Instal Forge CLI secara global dengan menjalankan:
npm install -g @forge/cli
Untuk lab ini, kita akan menggunakan variabel lingkungan untuk login.
Menyiapkan project JIRA
Gunakan akun pribadi Anda untuk membuat/melihat project JIRA.
Tinjau project JIRA yang ada: https://admin.atlassian.com/
Buat project JIRA baru menggunakan akun pribadi Anda.
Buka https://team.atlassian.com/your-work, klik , lalu pilih
. Setelah itu, pilih "JIRA Software" - "Coba sekarang". Ikuti petunjuk untuk menyelesaikan pembuatan project/situs.
Pilih JIRA Software.
Membuat project baru.
14. Token API Atlassian
Buat atau gunakan token Atlassian API yang ada untuk login ke CLI.
CLI menggunakan token Anda saat menjalankan perintah.
- Buka https://id.atlassian.com/manage/api-tokens.
- Klik Create API token.
- Masukkan label untuk mendeskripsikan token API Anda. Misalnya, forge-api-token.
- Klik Buat.
- Klik Salin ke papan klip dan tutup dialog.
Jalankan perintah di bawah di terminal Cloud Workstations.
Login ke Forge CLI untuk mulai menggunakan perintah Forge.
Tetapkan alamat email JIRA/FORGE Anda. Ganti dengan alamat email Anda.
export FORGE_EMAIL=your-email
Menetapkan token Forge API. Ganti dengan token JIRA API Anda.
export FORGE_API_TOKEN=your-jira-api-token
Uji forge cli dengan menjalankan perintah di bawah. Jawab "No
" saat diminta untuk mengumpulkan analisis.
forge settings set usage-analytics false
Periksa apakah Anda sudah login.
forge whoami
Contoh output.
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Membuat aplikasi Forge
Pastikan Anda berada di folder "~/github/genai-for-developers
".
Jalankan perintah untuk membuat aplikasi Forge.
forge create
Gunakan nilai berikut saat diminta:
- Nama aplikasi:
devai-jira-ui-qwiklabs
- Pilih kategori:
UI Kit
- Pilih produk:
Jira
- Pilih template:
jira-issue-panel
Ubah ke folder aplikasi.
cd devai-jira-ui-qwiklabs/
Jalankan perintah deployment.
forge deploy
Contoh output:
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.
Instal aplikasi.
forge install
Gunakan nilai berikut saat diminta:
- Pilih produk:
Jira
- Masukkan URL situs:
your-domain.atlassian.net
Contoh output:
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
Buka situs JIRA Anda dan buat tugas JIRA baru dengan deskripsi berikut:
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.
Saat membuka tugas, Anda akan melihat tombol "devai-jira-ui-qwiklabs
".
Klik tombol dan tinjau perubahan di UI.
Melihat log backend forge.
forge logs
Konsol Developer Atlassian
Anda juga dapat melihat dan mengelola aplikasi yang di-deploy di Atlassian Developer Console.
Meninjau log - beralih ke lingkungan Development
,
Meninjau manifes dan kode sumber aplikasi Forge
Buka file "devai-jira-ui-qwiklabs/manifest.yml
" dan gunakan Gemini Code Assist untuk menjelaskannya.
Tinjau penjelasan.
Buka file berikut dan minta Gemini Code Assist untuk menjelaskannya:
devai-jira-ui-qwiklabs/src/frontend/index.jsx
devai-jira-ui-qwiklabs/src/resolvers/index.js
Memperbarui aplikasi Forge dengan endpoint Cloud Run DevAI API
Periksa apakah GCP PROJECT ID ditetapkan:
gcloud config get project
Jika belum, tetapkan project GCP Anda menggunakan project ID dari halaman lab Qwiklabs:
Contoh: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Tetapkan URL layanan 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
Konfirmasi dengan menjalankan perintah di bawah:
forge variables list
Contoh output
Memperbarui manifes dan kode aplikasi Forge
Cuplikan kode ini dapat ditemukan di repo pada folder sample-devai-jira-ui
.
Buka file manifes di editor: devai-jira-ui-qwiklabs/manifest.yml
Tambahkan baris di bawah di akhir file - ganti endpoint Cloud Run dengan endpoint yang Anda deploy.
permissions:
scopes:
- read:jira-work
- write:jira-work
external:
fetch:
client:
- devai-api-gjerpi6qqq-uc.a.run.app/generate # replace with YOUR CLOUD RUN URL
Buka file resolver/indeks di editor: devai-jira-ui-qwiklabs/src/resolvers/index.js
Tambahkan baris di bawah setelah fungsi getText
yang ada.
resolver.define('getApiKey', (req) => {
return process.env.LLM_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
Buka file frontend/index di editor: devai-jira-ui-qwiklabs/src/frontend/index.jsx
Ganti index.jsx
dengan konten di bawah. Perbarui link ke userid/repositori GitLab Anda.
Ada dua tempat yang perlu Anda perbarui, yaitu YOUR-GIT-USERID dan YOUR-GIT-REPO.
Telusuri baris ini dalam file dan lakukan perubahan:
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 apiKey = 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 genAI = new GoogleGenerativeAI(apiKey);
// const model = genAI.getGenerativeModel({ model: "gemini-pro"});
// const prompt = `You are principal software engineer at Google and given requirements below to implement.\nPlease provide implementation details and documentation.\n\nREQUIREMENTS:\n\n${data.fields.description}`
// const result = await model.generateContent(prompt);
// const text = result.response.text();
// const jsonText = JSON.stringify(text);
const bodyGenerateData = `{"prompt": ${JSON.stringify(data.fields.description)}}`;
const generateRes = await api.fetch(devAIApiUrl+'/generate',
{
body: bodyGenerateData,
method: 'post',
headers: { 'Content-Type': 'application/json' },
}
)
const resData = await generateRes.text();
const jsonText = JSON.stringify(resData);
const bodyData = `{
"body": ${jsonText}
}`;
console.log("bodyData", bodyData)
// Add Gemini response as a comment on the JIRA issue
await requestJira(`/rest/api/2/issue/${issueId}/comment`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
});
// 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>
);
Men-deploy ulang aplikasi Forge
Tambahkan dependensi dalam file package.json
:
"@forge/api": "4.0.0",
Instal dependensi:
npm install
Men-deploy aplikasi yang telah diupdate:
forge deploy
Contoh output:
ℹ 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.
Menginstal aplikasi yang telah diupdate:
forge install --upgrade
Contoh output:
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.
Menguji aplikasi Forge
Buka tugas JIRA yang ada atau buat tugas JIRA baru di project JIRA Anda.
Anda harus menghapus panel sebelumnya jika sudah ditambahkan.
Klik "...
" dan pilih hapus dari menu. Setelah itu, Anda dapat mengklik tombol lagi.
Memeriksa komentar Jira
Setelah Anda mendapatkan respons dari DEVAI API, dua komentar akan ditambahkan pada masalah JIRA.
- Permintaan penggabungan GitLab
- Detail implementasi cerita pengguna Gemini
Beralihlah antara tab "History
" dan "Comments
" untuk memuat ulang tampilan.
Mengaktifkan pembuatan Permintaan Penggabungan GitLab
Buka file devai-api/app/routes.py
dan hapus komentar baris di bawah dalam metode generate_handler
:
print(f"{response.text}\n")
# resp_text = response.candidates[0].content.parts[0].text
# pr_prompt = f"""Create GitLab merge request using provided details below.
# Create new files, commit them and push them to opened merge request.
# When creating new files, remove the lines that start with ``` before saving the files.
# DETAILS:
# {resp_text}
# """
# print(pr_prompt)
# agent.invoke(pr_prompt)
Men-deploy ulang aplikasi Cloud Run
Pastikan Anda berada di folder yang benar.
cd ~/github/genai-for-developers/devai-api
Jika menggunakan sesi terminal yang sama, Anda mungkin masih memiliki semua variabel lingkungan yang ditetapkan.
Periksa dengan menjalankan "echo $GITLAB_REPOSITORY
" di terminal.
Ikuti langkah-langkah berikut untuk meresetnya jika sesi terminal baru dibuka.
Pastikan untuk mereset variabel lingkungan yang diperlukan sebelum men-deploy ulang aplikasi.
Perintah ini mengharuskan Anda memperbarui userid dan nama repositori GitLab.
export GITLAB_REPOSITORY="USERID/REPOSITORY"
Tetapkan variabel lingkungan lainnya:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
export PROJECT_ID=$(gcloud config get-value project)
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
Toolkit GitLab akan menggunakan cabang "devai
" untuk mendorong perubahan untuk permintaan penggabungan.
Pastikan Anda telah membuat cabang tersebut.
Men-deploy aplikasi ke 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" \
--min-instances=1 \
--max-instances=3
Memverifikasi integrasi menyeluruh
Mulai proses dari tugas JIRA dengan mengklik tombol lagi dan memverifikasi output di repositori GitLab, di bagian Permintaan penggabungan, dan LangSmith.
Detail permintaan Penggabungan GitLab.
Rekaman aktivitas LLM LangSmith
Buka portal LangSmith dan tinjau rekaman aktivitas LLM untuk panggilan pembuatan masalah JIRA.
Contoh trace LLM LangSmith.
(BAGIAN OPSIONAL) Kirim perubahan Anda ke repo GitHub
Buka situs GitHub dan buat repositori baru untuk mendorong perubahan lab ini ke repositori pribadi Anda.
Kembali ke instance Cloud Workstations dan tetapkan nama pengguna dan email Git di terminal.
Perbarui nilai sebelum menjalankan perintah.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
Buat kunci SSH dan tambahkan di repositori GitHub.
Perbarui email Anda sebelum menjalankan perintah.
Jangan memasukkan frasa sandi dan menekan enter beberapa kali untuk menyelesaikan pembuatan kunci.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Tambahkan kunci publik yang dihasilkan ke akun GitHub Anda.
Buka https://github.com/settings/keys, lalu klik "New SSH key
".
Untuk nama kunci, gunakan "qwiklabs-key
" dan salin/tempel output dari perintah terakhir.
Kembali ke terminal, commit, dan kirim perubahan.
cd ~/github/genai-for-developers
git remote rm origin
Tetapkan origin jarak jauh menggunakan repositori yang dibuat di atas.
Ganti dengan URL repositori Anda.
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
Tambahkan, commit, dan kirim perubahan.
git add .
git commit -m "lab changes"
git push -u origin main
15. Selamat!
Selamat, Anda telah menyelesaikan lab!
Yang telah kita bahas:
- Cara men-deploy aplikasi Cloud Run untuk berintegrasi dengan Gemini API.
- Cara membuat dan men-deploy aplikasi Atlassian Forge untuk JIRA.
- Cara menggunakan Agen ReAct LangChain untuk otomatisasi tugas GitLab.
- Cara meninjau rekaman aktivitas LLM di LangSmith.
Langkah berikutnya:
- Sesi praktik lainnya akan segera hadir.
Pembersihan
Agar tidak dikenai biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
©2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.