Bu codelab hakkında
1. Genel Bakış
Bu laboratuvarda, GenAI ile JIRA kullanıcı hikayesi uygulamasını otomatikleştirecek bir çözüm oluşturacaksınız.
Öğrenecekleriniz
Laboratuvarın birkaç ana bölümü vardır:
- Gemini API'leriyle entegre edilecek Cloud Run uygulamasını dağıtma
- JIRA için Atlassian Forge uygulaması oluşturma ve dağıtma
- GitLab görevlerini otomatikleştirmek için LangChain ReAct Agents'ı kullanma
Ön koşullar
- Bu laboratuvarda, Cloud Console ve Cloud Shell ortamlarına aşina olmanız gerekir.
2. Kurulum ve şartlar
Cloud projesi oluşturma
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.
- Proje adı, bu projenin katılımcılarının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dize otomatik olarak oluşturur. Bu dizenin ne olduğu genellikle önemli değildir. Çoğu kod laboratuvarında proje kimliğinize (genellikle
PROJECT_ID
olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi anahtarınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje boyunca geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer (Proje Numarası) olduğunu belirtmek isteriz. Bu üç değer hakkında daha fazla bilgiyi dokümanlar bölümünde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmak çok pahalı değildir. Bu eğitimden sonra faturalandırılmamak için kaynakları kapatmak istiyorsanız oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programına uygundur.
Ortam kurulumu
Gemini sohbetini açın.
Alternatif olarak, arama çubuğuna "Gemini'ye sor" yazın.
Google Cloud API için Gemini'yi etkinleştirin:
"Start chatting
"yi tıklayın ve örnek sorulardan birini uygulayın veya denemek için kendi isteminizi yazın.
Deneyebileceğiniz istemler:
- Cloud Run'u 5 temel noktada açıklayın.
- Google Cloud Run Ürün Müdürü olduğunuzu varsayarak bir öğrenciye Cloud Run'u 5 kısa ve önemli noktayla açıklayın.
- Google Cloud Run Ürün Müdürü olarak, Cloud Run'u Sertifikalı bir Kubernetes Geliştiricisine 5 kısa ve önemli noktayla açıklayın.
- Google Cloud Run Ürün Müdürü olduğunuzu varsayalım. Kıdemli bir geliştiriciye, Cloud Run'u ne zaman GKE yerine kullanacağınızı 5 kısa ve önemli noktayla açıklayın.
Daha iyi istemler yazma hakkında daha fazla bilgi edinmek için İstem Rehberi'ne göz atın.
Google Cloud için Gemini, verilerinizi nasıl kullanır?
Google'ın gizlilik taahhüdü
Google, sektörde AI/ML gizlilik taahhüdü yayınlayan ilk şirketlerden biri oldu. Bu taahhüdümüzde, müşterilerin bulutta depolanan verileri üzerinde en yüksek düzeyde güvenlik ve denetime sahip olması gerektiğine olan inancımızı özetliyoruz.
Gönderdiğiniz ve aldığınız veriler
Gemini'ye sorduğunuz sorulara (analiz etmesi veya tamamlaması için gönderdiğiniz giriş bilgileri veya kodlar dahil) istem denir. Gemini'den aldığınız yanıtlara veya kod tamamlamalarına yanıt denir. Gemini, istemlerinizi veya yanıtlarını modellerini eğitmek için veri olarak kullanmaz.
İstemlerin şifrelenmesi
Gemini'ye istem gönderdiğinizde, Gemini'deki temel modele giriş olarak verileriniz aktarım sırasında şifrelenir.
Gemini'den oluşturulan program verileri
Gemini, birinci taraf Google Cloud kodunun yanı sıra belirli üçüncü taraf kodlarıyla eğitilmiştir. Gemini'nin sunduğu kod tamamlama, oluşturma veya analizler dahil olmak üzere kodunuzun güvenliği, test edilmesi ve etkililiğinden siz sorumlusunuz.
Google'ın istemlerinizi nasıl işlediği hakkında daha fazla bilgi edinin.
3. İstemleri test etme seçenekleri
İstemleri test etmek için çeşitli seçenekleriniz vardır.
Vertex AI Studio, Google Cloud'un Vertex AI platformunun bir parçasıdır ve üretken yapay zeka modellerinin geliştirilmesini ve kullanımını basitleştirmek ve hızlandırmak için özel olarak tasarlanmıştır.
Google AI Studio, istem mühendisliği ve Gemini API ile prototip oluşturmak ve denemeler yapmak için web tabanlı bir araçtır.
- Gemini web uygulaması (gemini.google.com)
Google Gemini web uygulaması (gemini.google.com), Google'ın Gemini yapay zeka modellerinin gücünü keşfetmenize ve kullanmanıza yardımcı olmak için tasarlanmış web tabanlı bir araçtır.
- Android için Google Gemini mobil uygulaması ve iOS'teki Google uygulaması
4. Başvuruyu inceleme
Hizmet Hesabı Oluşturma
Google Cloud Console'a dönün ve arama çubuğunun sağındaki simgeyi tıklayarak Cloud Shell'i etkinleştirin.
Yeni bir hizmet hesabı ve anahtarlar oluşturmak için açık terminalde aşağıdaki komutları çalıştırın.
Cloud Run uygulamasından Vertex AI Gemini API'ye API çağrıları yapmak için bu hizmet hesabını kullanacaksınız.
Qwiklabs proje ayrıntılarınızı kullanarak proje ayrıntılarını yapılandırın.
Örnek: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Hizmet hesabı oluşturun.
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"
Rol atayın.
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"
Yetki vermeniz istenirse devam etmek için "Yetkilendir"i tıklayın.
Vertex AI API'lerini ve Gemini sohbet uygulamasını kullanmak için gerekli hizmetleri etkinleştirin.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Vertex AI API'lerini ve Gemini sohbet uygulamasını kullanmak için gerekli hizmetleri etkinleştirin.
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 deposunu kopyalama
GitHub deposunu kopyalayın.
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Cloud Shell Düzenleyici'yi açma
"File / Open Folder
" menü öğesini kullanarak "genai-for-developers
"u açın.
"devai-api/app/routes.py
" dosyasını açın, ardından dosyanın herhangi bir yerinde sağ tıklayın ve bağlam menüsünden "Gemini > Explain
this"
"yi seçin.
Gemini'nin, seçili dosyayla ilgili açıklamasını inceleyin.
5. GitLab deposu ve araç seti yapılandırması
Bu laboratuvarda, GitLab birleştirme isteği oluşturma işlemini otomatikleştirmek için GitLabToolkit'i kullanacaksınız.
LangChain Araç Kitlerine Genel Bakış
LangChain araç setleri, LangChain ile uygulamaların geliştirilmesini kolaylaştırmak ve iyileştirmek için tasarlanmış araç paketleridir. Bu araçlar, belirli araç setine bağlı olarak çeşitli işlevler sunar ancak genellikle aşağıdaki konularda yardımcı olur:
- Harici veri kaynaklarına bağlanma: API'lerden, veritabanlarından ve diğer harici kaynaklardan gelen bilgilere erişip bunları LangChain uygulamalarınıza dahil edin.
- Gelişmiş istem verme teknikleri: Dil modelleriyle etkileşimleri optimize etmek için önceden oluşturulmuş istemleri kullanın veya özel istemler oluşturun.
- Zincir oluşturma ve yönetme: Karmaşık zincirleri kolayca oluşturun ve verimli bir şekilde yönetin.
- Değerlendirme ve izleme: LangChain uygulamalarınızın ve zincirlerinizin performansını analiz edin.
Popüler LangChain araç takımlarından bazıları şunlardır:
- Temsilci Yürütücü Aracı Kitapları: Web'de gezinme veya kod yürütme gibi işlemler aracılığıyla gerçek dünyayla etkileşime geçebilen temsilciler geliştirmek için kullanılan araçlar.
- İstem Mühendisliği Aracı Kiti: Etkili istemler oluşturmaya yönelik bir kaynak koleksiyonu.
GitLab Toolkit'e Genel Bakış
Gitlab araç seti, LLM aracının bir gitlab deposuyla etkileşim kurmasını sağlayan araçlar içerir. Bu araç, python-gitlab
kitaplığının sarmalayıcısıdır.
GitLab araç seti aşağıdaki görevleri gerçekleştirebilir:
- Dosya Oluştur: Depoda yeni bir dosya oluşturur.
- Dosya Okuma: Depodan bir dosyayı okur.
- Dosyayı Güncelle: Depodaki bir dosyayı günceller.
- Pull isteği oluştur: Botun çalışma dalından ana dala bir pull isteği oluşturur.
- Get Issue (Sorunu Getir): Sorunları depodan getirir.
- Get Issue (Sorunu Getir): Belirli bir sorunla ilgili ayrıntıları getirir.
- Sorun hakkında yorum yapma: Belirli bir sorun hakkında yorum yayınlar.
- Dosya Sil: Depodan bir dosyayı siler.
GitLab Projesi Kurulumu
GitLab'ı açın, yeni bir proje oluşturun ve "Settings / Access Tokens
" bölümünde Proje Erişim Jetonu'nu ayarlayın.
Aşağıdaki ayrıntıları kullanın:
- Jeton adı:
devai-api-qwiklabs
- Rol:
Maintainer
- Kapsamları seçin:
api
Erişim jetonu değerini dizüstü bilgisayarınızdaki bir geçici dosyaya kopyalayıp yapıştırın. Bu değer sonraki adımlarda kullanılacaktır.
6. Uygulamayı Cloud Run'a dağıtmaya hazırlanma
Cloud Shell Düzenleyici'ye dönün ve mevcut terminali kullanın veya yeni bir terminal açın.
Qwiklabs proje ayrıntılarınızı kullanarak proje ayrıntılarını yapılandırın.
Örnek: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
Ortam değişkenlerinin geri kalanını ayarlayın:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
GitLab entegrasyonu için gereken ortam değişkenlerini ayarlayın.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
Hassas bilgilerin terminalde gösterilmesini önlemek için en iyi yöntem read -s GITLAB_PERSONAL_ACCESS_TOKEN
kullanmaktır. Bu, ortam değişkenlerini konsolun komut geçmişinde değer gösterilmeden ayarlamanızı sağlayan güvenli bir yöntemdir. Çalıştırdıktan sonra değeri yapıştırıp Enter tuşuna basmanız gerekir. Ortam değişkenini de dışa aktarmanız gerekir: export GITLAB_PERSONAL_ACCESS_TOKEN
Bu komut için GitLab kullanıcı kimliğinizi ve depo adınızı güncellemeniz gerekir.
Örnek: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"
export GITLAB_REPOSITORY="USERID/REPOSITORY"
Ortam değişkenlerinin geri kalanını ayarlayın:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
LangSmith LLM izleme yapılandırması
LangSmith'te aracı takibi bilgilerini görüntülemek istiyorsanız hesabı ayarlayın. Aksi takdirde komutları olduğu gibi yürütün.
LangSmith hesabı oluşturun ve Ayarlar bölümünde bir Service API anahtarı oluşturun. https://smith.langchain.com/settings
LangSmith entegrasyonu için gerekli ortam değişkenlerini ayarlayın.
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
JIRA yapılandırması
Bu değerler bu laboratuvarda kullanılmaz. Bu nedenle, komutları yürütmeden önce bu değerleri belirli JIRA proje değerlerinizle güncellemeniz gerekmez.
Cloud Run hizmeti dağıtımı için gerekli ortam değişkenlerini ayarlayın.
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 anahtarı oluştur
Cloud Console / API'ler ve Hizmetler / Kimlik Bilgileri bölümünde yeni bir API anahtarı oluşturun.
Bu anahtar, Cloud Run uygulamasına yapılan JIRA API çağrılarının kimliğini doğrulamak için kullanılır.
Üretim ortamı için, oluşturulan API anahtarı için uygulama ve API kısıtlamalarını yapılandırırsınız. Uygulama kısıtlamaları, API anahtarının kullanımını belirli web siteleriyle(ör. JIRA örneğiniz) sınırlandırır.
Cloud Run hizmeti dağıtımı için gerekli ortam değişkenlerini ayarlayın.
export DEVAI_API_KEY=your-api-key
Secret Manager'da gizli anahtar oluşturma
Bu laboratuvarda, en iyi uygulamaları uygulayarak Cloud Run'da erişim jetonlarını, API anahtarını ve LangChain API anahtarı değerlerini depolamak ve referans vermek için Secret Manager'ı kullanırız.
Secret Manager'da gerekli gizli anahtarları oluşturun ve saklayın.
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'yi Cloud Run'a dağıtma
Doğru klasörde olduğunuzdan emin olun.
cd ~/genai-for-developers/devai-api
Uygulamayı Cloud Run'a dağıtın.
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
Artifact Registry Docker deposu oluşturmak için Y
cevabını verin.
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
Aşağıdaki gcloud run deploy SERVICE_NAME --source=.
akışını inceleyin. Daha fazla bilgi edinin.
Bu komut, arka planda Google Cloud'un buildpacks
ve Cloud Build
özelliklerini kullanarak makinenize Docker yüklemenize veya buildpack'ler ya da Cloud Build'i ayarlamanıza gerek kalmadan kaynak kodunuzdan otomatik olarak container görüntüleri oluşturur. Yani yukarıda açıklanan tek komut, gcloud builds submit
ve gcloud run deploy
komutlarının gerektirdiği işlemleri yapar.
Dockerfile sağladıysanız(bu depoda sağladık) Cloud Build, container görüntülerini otomatik olarak algılayıp oluşturmak için buildpack'lere güvenmek yerine Dockerfile'i kullanır. Derleme paketleri hakkında daha fazla bilgi edinmek için dokümanlara göz atın.
Console'da Cloud Build günlüklerini inceleyin.
Oluşturulan Docker görüntüsünü Artifact Registry'de inceleyin.
Cloud Console'da Cloud Run örneği ayrıntılarını inceleyin.
Test uygulaması
curl komutunu çalıştırarak uç noktasını test edin.
Komutu çalıştırmadan önce Cloud Run hizmetinizin URL'sini girin.
Örnek:
curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test
8. Hikayeyi uygulamayı otomatikleştirme
Forge, geliştiricilerin Jira, Confluence, Compass ve Bitbucket gibi Atlassian ürünleriyle entegre olan uygulamalar oluşturmasına olanak tanıyan bir platformdur.
Forge CLI'yi yükleme
Aşağıdaki komutu çalıştırarak Forge CLI'yi global olarak yükleyin:
npm install -g @forge/cli
Bu laboratuvarda oturum açmak için ortam değişkenlerini kullanacağız.
JIRA projesini ayarlama
JIRA projeleri oluşturmak/görüntülemek için kişisel hesabınızı kullanın.
Mevcut JIRA projelerinizi inceleyin: https://admin.atlassian.com/
Kişisel hesabınızı kullanarak yeni bir JIRA projesi oluşturun.
https://team.atlassian.com/your-work adresine gidin, simgesini tıklayın ve
'ı seçin. Ardından "JIRA Software" - "Şimdi dene"yi seçin. Proje/site oluşturma işlemini tamamlamak için talimatları uygulayın.
JIRA Software'ı seçin.
Yeni bir proje oluşturun.
Atlassian API jetonu oluşturma
CLI'ye giriş yapmak için mevcut bir Atlassian API jetonu oluşturun veya kullanın.
KSA, komutları çalıştırırken jetonunuzu kullanır.
- https://id.atlassian.com/manage/api-tokens adresine gidin.
- API jetonu oluştur'u tıklayın.
- API jetonunuzu tanımlayacak bir etiket girin. Örneğin, forge-api-token.
- Oluştur'u tıklayın.
- Panoya kopyala'yı tıklayın ve iletişim kutusunu kapatın.
Forge ortam ayarlarını yapılandırma
Cloud Console'a dönün ve terminalde aşağıdaki komutları çalıştırın.
Forge komutlarını kullanmaya başlamak için Forge KSA'ya giriş yapın.
JIRA/FORGE e-posta adresinizi ayarlayın. E-posta adresinizle değiştirin.
export FORGE_EMAIL=your-email
Forge API jetonunu ayarlayın. JIRA API jetonunuzla değiştirin.
export FORGE_API_TOKEN=your-jira-api-token
Aşağıdaki komutu çalıştırarak forge cli'yi test edin. Analiz toplama isteğinde bulunulduğunda "No
" cevabını verin.
forge settings set usage-analytics false
Giriş yapıp yapmadığınızı kontrol edin.
forge whoami
Örnek çıkış.
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Forge uygulaması oluşturma
"~/genai-for-developers
" klasöründe olduğunuzdan emin olun.
Forge uygulaması oluşturmak için komutu çalıştırın.
forge create
İstendiğinde aşağıdaki değerleri kullanın:
- Uygulama adı:
devai-jira-ui-qwiklabs
- Bir kategori seçin:
UI Kit
- Ürün seçin:
Jira
- Şablon seçin:
jira-issue-panel
Uygulama klasörüne geçin.
cd devai-jira-ui-qwiklabs/
Bağımlılıkları yüklemek için komutu çalıştırın.
npm install
Dağıtım komutunu çalıştırın.
forge deploy
Örnek çıktı:
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.
Uygulamayı yükleyin.
forge install
İstendiğinde aşağıdaki değerleri kullanın:
- Ürün seçin:
Jira
- Site URL'sini girin:
your-domain.atlassian.net
Örnek çıktı:
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 sitenizi açın ve aşağıdaki açıklamayı içeren yeni bir JIRA görevi oluşturun:
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.
Görevi açtığınızda "devai-jira-ui-qwiklabs
" düğmesini görürsünüz.
Düğmeyi tıklayın ve kullanıcı arayüzündeki değişiklikleri inceleyin.
Forge arka uç günlüklerini görüntüleyin.
forge logs
Atlassian Developer Console
Dağıtılan uygulamaları Atlassian Developer Console'da da görüntüleyebilir ve yönetebilirsiniz.
Günlükleri inceleyin - Development
ortamına geçin,
Forge uygulama manifestini ve kaynak kodunu inceleme
"devai-jira-ui-qwiklabs/manifest.yml
" dosyasını açın ve yapılandırmayı açıklamak için Gemini Code Assist'i kullanın.
Açıklamayı inceleyin.
Aşağıdaki dosyaları açıp Gemini Code Assist'ten açıklama yapmasını isteyin:
devai-jira-ui-qwiklabs/src/frontend/index.jsx
devai-jira-ui-qwiklabs/src/resolvers/index.js
Forge uygulamasını DevAI API Cloud Run uç noktasıyla güncelleme
GCP PROJE KİMLİĞİ'nin ayarlanıp ayarlanmadığını kontrol edin:
gcloud config get project
Aksi takdirde, Qwiklabs laboratuvar sayfasındaki proje kimliğini kullanarak GCP projenizi ayarlayın:
Örnek: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Cloud Run hizmet URL'sini ayarlama:
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 anahtarını ayarlama:
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
Aşağıdaki komutu çalıştırarak onaylayın:
forge variables list
Örnek çıkış
Forge uygulama manifestini ve kodunu güncelleme
Bu kod snippet'lerini, sample-devai-jira-ui
klasörünün altındaki depoda bulabilirsiniz.
Manifest dosyasını düzenleyicide açın: devai-jira-ui-qwiklabs/manifest.yml
Dosyanın sonuna aşağıdaki satırları ekleyin. Cloud Run uç noktasını dağıttığınız uç noktayla değiştirin.
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
Çözümleyicileri/dizin dosyasını düzenleyicide açın: devai-jira-ui-qwiklabs/src/resolvers/index.js
Mevcut getText
işlevinin altına satır ekleyin.
resolver.define('getApiKey', (req) => {
return process.env.DEVAI_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
Ön uç/dizin dosyasını düzenleyicide açın: devai-jira-ui-qwiklabs/src/frontend/index.jsx
index.jsx
yerine aşağıdaki içeriği girin. GitLab kullanıcı kimliğinize/deponuza ait bağlantıyı güncelleyin.
GIT-USERID ve GIT-REPO değerlerini iki yerde güncellemeniz gerekir.
Dosyada bu satırı arayın ve değişiklikleri yapın:
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 uygulamasını yeniden dağıtma
package.json
dosyasına bağımlılık ekleyin:
"@forge/api": "4.0.0",
Bağımlılıkları yüklemek için komutu çalıştırın:
npm install
Güncellenen uygulamayı dağıtma:
forge deploy
Örnek çıktı:
ℹ 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.
Güncellenen uygulamayı yükleme:
forge install --upgrade
Örnek çıktı:
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.
Test Forge uygulamasını kullanma
JIRA projenizde mevcut bir görevi açın veya yeni bir JIRA görevi oluşturun.
Daha önce eklenmişse önceki paneli kaldırmanız gerekir.
"...
" simgesini tıklayın ve menüden kaldır'ı seçin. Ardından düğmeyi tekrar tıklayabilirsiniz.
Jira yorumlarını kontrol etme
DEVAI API'den yanıt aldıktan sonra JIRA sorununa bir yorum eklenir.
- GitLab birleştirme isteği bağlantısı
Görünümü yenilemek için "History
" ve "Comments
" sekmeleri arasında geçiş yapın.
GitLab birleştirme isteğini doğrulama
GitLab'ı açıp projenizde yeni birleştirme isteği olup olmadığını kontrol edin.
LangSmith LLM izleri
LLM izlemeyi yapılandırdıysanız LangSmith portalını açın ve GitLab birleştirme isteği oluşturma çağrısı için LLM izlemeyi inceleyin.
Örnek LangSmith LLM izlemesi.
9. Değişikliklerinizi GitHub deposuna aktarma
(OPTIONAL SECTION)
GitHub web sitesine gidip bu laboratuvardaki değişiklikleri kişisel deponuza göndermek için yeni bir depo oluşturun.
Cloud Console'a dönün ve terminalde Git kullanıcı adını ve e-posta adresini ayarlayın.
Komutları çalıştırmadan önce değerleri güncelleyin.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
SSH anahtarı oluşturun ve GitHub deposuna ekleyin.
Komutları çalıştırmadan önce e-postanızı güncelleyin.
Anahtar oluşturma işlemini tamamlamak için şifre girip Enter tuşuna birden çok kez basmayın.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Oluşturulan herkese açık anahtarı GitHub hesabınıza ekleyin.
https://github.com/settings/keys adresini açıp "New SSH key
" simgesini tıklayın.
Anahtar adı için "qwiklabs-key
" kullanın ve son komutun çıktısını kopyalayıp yapıştırın.
Terminale geri dönün, değişiklikleri kaydedin ve gönderin.
cd ~/genai-for-developers
git remote rm origin
Yukarıda oluşturulan deposu kullanarak uzak kaynağı ayarlayın.
Depo URL'nizle değiştirin.
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
Değişiklikleri ekleyin, kaydedin ve gönderin.
git add .
git commit -m "lab changes"
git push -u origin main
10. Tebrikler!
Tebrikler, laboratuvarı tamamladınız.
Ele aldığımız konular:
- Gemini API'leriyle entegre edilecek Cloud Run uygulamalarını dağıtma.
- JIRA için Atlassian Forge uygulaması oluşturma ve dağıtma.
- GitLab görevlerini otomatikleştirmek için LangChain ReAct Agents'ı kullanma.
- LangSmith'te LLM izlerini inceleme.
Sıradaki adım:
- Daha fazla uygulamalı oturum yakında kullanıma sunulacak.
Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız kaynakları içeren projeyi silin veya projeyi saklayıp kaynakları tek tek silin.
Projeyi silme
Faturalandırılmanın önüne geçmenin en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.
©2024 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.