Wdrażanie historii użytkowników Jira za pomocą generatywnej AI

Wdrażanie historii użytkowników Jira za pomocą generatywnej AI

Informacje o tym ćwiczeniu (w Codelabs)

subjectOstatnia aktualizacja: mar 24, 2025
account_circleAutorzy: Andrey Shakirov

1. Omówienie

W tym laboratorium utworzysz rozwiązanie do automatyzacji implementacji scenariuszy użytkowników JIRA za pomocą generatywnej AI.

a4ba5d8788dc40.png

Czego się nauczysz

Laboratorium składa się z kilku głównych części:

  • Wdrażanie aplikacji Cloud Run w celu integracji z interfejsami Gemini API
  • Tworzenie i wdrażanie aplikacji Atlassian Forge dla Jira
  • Automatyzowanie zadań GitLab za pomocą agentów LangChain ReAct

Wymagania wstępne

  • Ten moduł zakłada, że znasz środowiska Cloud Console i Cloud Shell.

2. Konfiguracja i wymagania

Konfiguracja projektu Cloud

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, którego nie używają interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest niepowtarzalny w ramach wszystkich projektów Google Cloud i nie można go zmienić (po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem musisz podać identyfikator projektu (zwykle oznaczony jako PROJECT_ID). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować inny losowy. Możesz też spróbować użyć własnego adresu e-mail, aby sprawdzić, czy jest on dostępny. Po wykonaniu tego kroku nie można go zmienić. Pozostanie on na stałe w ramach projektu.
  • Informacyjnie: istnieje jeszcze 3 wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć rozliczenia w konsoli Cloud, aby korzystać z zasobów i interfejsów API Cloud. Przejście przez ten samouczek nie będzie kosztowne, a być może nawet bezpłatne. Aby wyłączyć zasoby i uniknąć obciążenia opłatami po zakończeniu samouczka, możesz usunąć utworzone zasoby lub usunąć projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Konfiguracja środowiska

Otwórz czat Gemini.

bc3c899ac8bcf488.png

Możesz też wpisać „Zapytaj Gemini” na pasku wyszukiwania.

e1e9ad314691368a.png

Włączanie Gemini for Google Cloud API:

990a0ceea7d05531.png

Kliknij „Start chatting” i wybierz jedno z przykładowych pytań lub wpisz własne prompty, aby je wypróbować.

ed120d672468b412.png

Prompty do wypróbowania:

  • Opisz Cloud Run w 5 kluczowych punktach.
  • Jesteś menedżerem produktu Google Cloud Run. Wyjaśnij studentowi, na czym polega Cloud Run, w 5 krótkich punktach.
  • Jesteś menedżerem produktu Cloud Run w Google. Wyjaśnij certyfikowanemu deweloperowi Kubernetes, na czym polega Cloud Run, w 5 kluczowych punktach.
  • Jesteś menedżerem produktu Cloud Run w Google i chcesz wyjaśnić starszemu programiście, kiedy należy używać Cloud Run, a kiedy GKE. W tym celu przedstawiasz 5 krótkich kluczowych informacji.

Aby dowiedzieć się więcej o pisaniu lepszych promptów, zapoznaj się z przewodnikiem po promptach.

Jak Gemini dla Google Cloud korzysta z Twoich danych

Zobowiązanie Google do ochrony prywatności

Google jako jedna z pierwszych firm w branży opublikowała zobowiązanie do ochrony prywatności w systemach AI/ML, w którym wyraziliśmy przekonanie, że klienci powinni mieć najwyższy poziom bezpieczeństwa i kontroli nad swoimi danymi przechowywanymi w chmurze.

Dane, które przesyłasz i odbierasz

Pytania, które zadajesz Gemini, w tym wszelkie informacje wejściowe lub kod, które przesyłasz do Gemini w celu analizy lub uzupełnienia, nazywamy promptami. Odpowiedzi lub dokończenia kodu, które otrzymujesz od Gemini, nazywane są odpowiedziami. Gemini nie używa Twoich promptów ani swoich odpowiedzi jako danych do trenowania swoich modeli.

Szyfrowanie promptów

Gdy przesyłasz prompty do Gemini, Twoje dane są szyfrowane podczas przesyłania i przekazywane do modelu podstawowego w Gemini.

Dane programu wygenerowane przez Gemini

Gemini jest trenowany na podstawie kodu własnego Google Cloud oraz wybranego kodu innych firm. Ponosisz odpowiedzialność za bezpieczeństwo, testowanie i skuteczność kodu, w tym za uzupełnianie, generowanie i analizowanie kodu przez Gemini.

Dowiedz się więcej o tym, jak Google radzi sobie z Twoimi prośbami.

3. Opcje testowania promptów

Możesz przetestować prompty na kilka sposobów.

Vertex AI Studio jest częścią platformy Vertex AI w Google Cloud, która została zaprojektowana z myślą o uproszczeniu i przyspieszeniu tworzenia oraz stosowania modeli generatywnej AI.

Google AI Studio to internetowe narzędzie do tworzenia prototypów i eksperymentowania z inżynierią promptów oraz interfejsem Gemini API.

Aplikacja internetowa Google Gemini (gemini.google.com) to narzędzie internetowe, które ułatwia poznawanie i wykorzystywanie potencjału modeli sztucznej inteligencji Gemini od Google.

4. Sprawdzanie aplikacji

Utwórz konto usługi

Wróć do Google Cloud Console i aktywuj Cloud Shell, klikając ikonę po prawej stronie paska wyszukiwania.

3e0c761ca41f315e.png

Aby utworzyć nowe konto usługi i klucze, uruchom w otwartym terminalu te polecenia.

Z tego konta usługi będziesz korzystać do wywoływania interfejsu Vertex AI Gemini API z aplikacji Cloud Run.

Skonfiguruj szczegóły projektu, korzystając z danych projektu Qwiklabs.

Przykład: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

Utwórz konto usługi.

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"

Przypisz role.

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"

Jeśli pojawi się pytanie o autoryzację, kliknij „Autoryzuj”, aby kontynuować.

6356559df3eccdda.png

Włącz wymagane usługi, aby korzystać z interfejsów API Vertex AI i czatu Gemini.

gcloud services enable \
    generativelanguage
.googleapis.com \
    aiplatform
.googleapis.com \
    cloudaicompanion
.googleapis.com \
    run
.googleapis.com \
    cloudresourcemanager
.googleapis.com
 

Włącz wymagane usługi, aby korzystać z interfejsów API Vertex AI i czatu 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

Klonowanie repozytorium GitHub

Sklonuj repozytorium GitHub.

git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git

Otwórz edytor Cloud Shell

7e71f46b6c7b67ca.png

Użyj elementu menu „File / Open Folder”, aby otworzyć „genai-for-developers”.

Otwórz plik „devai-api/app/routes.py”, a potem kliknij prawym przyciskiem myszy dowolne miejsce w pliku i w menu kontekstowym wybierz „Gemini > Explain this"”.

34054e1fad005ff8.png

Przeczytaj wyjaśnienie Gemini dotyczące wybranego pliku.

f73af988a723142.png

5. Konfiguracja repozytorium GitLab i Toolkit

W tym laboratorium użyjesz narzędzia GitLabToolkit do zautomatyzowania tworzenia żądań połączenia w GitLab.

Omówienie zestawów narzędzi LangChain

Pakiet narzędzi LangChain to zestawy narzędzi, które mają na celu usprawnienie i ulepszanie tworzenia aplikacji za pomocą LangChain. Oferują one różne funkcje w zależności od konkretnego zestawu narzędzi, ale ogólnie pomagają w tych kwestiach:

  • Łączenie z zewnętrznymi źródłami danych: uzyskuj dostęp do informacji z interfejsów API, baz danych i innych zewnętrznych źródeł oraz uwzględniaj je w swoich aplikacjach LangChain.
  • Zaawansowane techniki promptów: możesz używać gotowych promptów lub tworzyć własne, aby optymalizować interakcje z modelami językowymi.
  • Tworzenie i zarządzanie łańcuchami: możesz łatwo tworzyć złożone łańcuchy i skutecznie nimi zarządzać.
  • Ocena i monitorowanie: analizuj skuteczność aplikacji i łańcuchów LangChain.

Oto niektóre popularne zestawy narzędzi LangChain:

  • Narzędzia wykonawcy agenta: narzędzia do tworzenia agentów, które mogą wchodzić w interakcje ze światem rzeczywistym, wykonując takie działania jak przeglądanie internetu czy wykonywanie kodu.
  • Zestaw narzędzi do tworzenia promptów: zbiór zasobów do tworzenia skutecznych promptów.

Omówienie GitLab Toolkit

Zestaw narzędzi Gitlab zawiera narzędzia, które umożliwiają interfejsowi LLM interakcję z repozytorium Gitlab. To narzędzie jest opakowaniem dla biblioteki python-gitlab.

Za pomocą pakietu GitLab możesz wykonywać te czynności:

  • Utwórz plik – tworzy nowy plik w repozytorium.
  • Read File (Odczytaj plik) – odczytuje plik z repozytorium.
  • Zaktualizuj plik – aktualizuje plik w repozytorium.
  • Utwórz żądanie pull – tworzy żądanie pull z gałęzi roboczej bota do gałęzi bazowej.
  • Get Issues – pobiera problemy z repozytorium.
  • Pobierz problem – pobiera szczegóły dotyczące konkretnego problemu.
  • Komentowanie problemu – publikowanie komentarza na temat konkretnego problemu.
  • Usuń plik – usuwa plik z repozytorium.

Konfiguracja projektu GitLab

Otwórz GitLab, utwórz nowy projekt i skonfiguruj token dostępu do projektu w sekcji „Settings / Access Tokens”.

Użyj tych informacji:

  • Nazwa tokena: devai-api-qwiklabs
  • Rola: Maintainer
  • Wybierz zakresy: api

c205fd7524c456dc.png

Skopiuj i wklej wartość tokena dostępu do pliku tymczasowego na laptopie. Zostanie on użyty w następnych krokach.

6. Przygotowanie do wdrożenia aplikacji w Cloud Run

Wróć do edytora Cloud Shell i użyj istniejącego terminala lub otwórz nowy.

941f0c1692037664.png

Skonfiguruj szczegóły projektu, korzystając z danych projektu Qwiklabs.

Przykład: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR-QWIKLABS-PROJECT-ID

Ustaw pozostałe zmienne środowiskowe:

export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api

Ustaw zmienne środowiskowe wymagane do integracji z GitLab.

export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token

Aby uniknąć ujawniania informacji poufnych w terminalu, najlepiej użyć polecenia read -s GITLAB_PERSONAL_ACCESS_TOKEN. Jest to bezpieczny sposób ustawiania zmiennych środowiskowych bez wyświetlania wartości w historii poleceń w konsoli. Po jego uruchomieniu musisz wkleić wartość i nacisnąć Enter. Musisz też wyeksportować zmienną środowiskową: export GITLAB_PERSONAL_ACCESS_TOKEN

Aby użyć tego polecenia, musisz zaktualizować identyfikator użytkownika i nazwę repozytorium GitLab.

Przykład: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

119489def27115c8.png

export GITLAB_REPOSITORY="USERID/REPOSITORY"

Ustaw pozostałe zmienne środowiskowe:

export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"

Konfiguracja śledzenia LangSmith LLM

Skonfiguruj konto, jeśli chcesz wyświetlać informacje o śledzeniu agenta w LangSmith, w przeciwnym razie wykonaj polecenia bez zmian.

Utwórz konto LangSmith i wygeneruj klucz interfejsu API usługi w sekcji Ustawienia. https://smith.langchain.com/settings

Ustaw zmienne środowiskowe wymagane do integracji z LangSmith.

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"

export LANGCHAIN_API_KEY=langchain-service-api-key

Konfiguracja JIRA

Te wartości nie są używane w tym laboratorium, więc przed wykonaniem poleceń nie musisz ich zmieniać na wartości z Twojego projektu Jira.

Ustaw zmienne środowiskowe wymagane do wdrożenia usługi 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

Utwórz klucz interfejsu API

Utwórz nowy klucz interfejsu API w sekcji Cloud Console / Interfejsy API i usługi / Dane logowania.

Ten klucz będzie używany do uwierzytelniania wywołań interfejsu API JIRA w aplikacji Cloud Run.

W środowisku produkcyjnym należy skonfigurować ograniczenia aplikacji i interfejsu API dla utworzonego klucza API. Ograniczenia aplikacji ograniczają użycie klucza interfejsu API do określonych stron(np. Twojego wystąpienia JIRA).

Ustaw zmienne środowiskowe wymagane do wdrożenia usługi Cloud Run.

export DEVAI_API_KEY=your-api-key

Tworzenie obiektów tajnych w usłudze Secret Manager

W tym laboratorium postępujemy zgodnie ze sprawdzonymi metodami i używamy usługi Secret Manager do przechowywania wartości tokenów dostępu, kluczy interfejsu API i kluczy LangChain API w Cloud Run oraz do odwoływania się do nich.

Utwórz i przechowuj wymagane obiekty tajne w usłudze 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. Wdrażanie interfejsu Devai-API w Cloud Run

Sprawdź, czy jesteś we właściwym folderze.

cd ~/genai-for-developers/devai-api

Wdróż aplikację w 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

Odpowiedź Y: utwórz repozytorium Dockera w 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

Zapoznaj się z procesem gcloud run deploy SERVICE_NAME --source=. poniżej. Więcej informacji

5c122a89dd11822e.png

W tle to polecenie używa usług buildpacksCloud Build Google Cloud do automatycznego kompilowania obrazów kontenera z Twojego kodu źródłowego bez konieczności instalowania Dockera na komputerze ani konfigurowania pakietów kompilacji ani Cloud Build. Oznacza to, że jedno polecenie opisane powyżej wykonuje to samo, co wymagałoby użycia poleceń gcloud builds submitgcloud run deploy.

Jeśli podano plik Dockerfile(jak w tym repozytorium), usługa Cloud Build użyje go do kompilowania obrazów kontenera zamiast polegać na pakietach kompilacji, które automatycznie wykrywają i kompilują obrazy kontenera. Więcej informacji o pakietach kompilacji znajdziesz w dokumentacji.

Sprawdź logi Cloud Build w konsoli.

Sprawdź utworzony obraz Dockera w Artifact Registry.

Sprawdź szczegóły instancji Cloud Run w Cloud Console.

Aplikacja testowa

Przetestuj punkt końcowy, wykonując polecenie curl.

Przed uruchomieniem polecenia zaktualizuj adres URL usługi Cloud Run.

Przykład:

curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test

8. Automatyzacja wdrażania treści

Forge to platforma, która umożliwia deweloperom tworzenie aplikacji integrujących się z usługami Atlassian, takimi jak Jira, Confluence, Compass i Bitbucket.

eda6f59ff15df25e.png

Instalowanie interfejsu wiersza poleceń Forge

Zainstaluj interfejs wiersza poleceń Forge globalnie, wykonując to polecenie:

npm install -g @forge/cli

W tym module do logowania użyjemy zmiennych środowiskowych.

e4e4e59cf8622e3f.png

Konfigurowanie projektu JIRA

Utwórz lub wyświetl projekty JIRA za pomocą swojego konta osobistego.

Sprawdź istniejące projekty JIRA: https://admin.atlassian.com/

Utwórz nowy projekt JIRA za pomocą swojego konta osobistego.

Otwórz stronę https://team.atlassian.com/your-work i kliknij 8654143154cb8665.png, a następnie wybierz 47b253090a08932.png. Następnie wybierz „JIRA Software” – „Wypróbuj teraz”. Postępuj zgodnie z instrukcjami, aby utworzyć projekt lub stronę.

5bab2a96e3b81383.png

Wybierz JIRA Software.

785bc4d8bf920403.png

Utwórz nowy projekt.

8a6e7cdc8224ffa0.png

Tworzenie tokena interfejsu Atlassian API

Aby zalogować się w interfejsie wiersza poleceń, utwórz token API Atlassian lub użyj istniejącego.

Podczas wykonywania poleceń interfejs wiersza poleceń używa Twojego tokena.

  1. Otwórz stronę https://id.atlassian.com/manage/api-tokens.
  2. Kliknij Utwórz token API.
  3. Wpisz etykietę opisującą token API. Na przykład forge-api-token.
  4. Kliknij Utwórz.
  5. Kliknij Kopiuj do schowka i zamknij okno.

Konfigurowanie ustawień środowiska Forge

Wróć do Cloud Console i uruchom w terminalu podane niżej polecenia.

Aby zacząć używać poleceń Forge, zaloguj się w Forge CLI.

Ustaw adres e-mail JIRA/FORGE. Zastąp go swoim adresem e-mail.

export FORGE_EMAIL=your-email

Ustaw token API Forge. Zastąp go swoim tokenem API JIRA.

export FORGE_API_TOKEN=your-jira-api-token

Przetestuj interfejs wiersza poleceń Forge, uruchamiając podane niżej polecenie. Odpowiedz „No”, gdy pojawi się pytanie o zbieranie statystyk.

forge settings set usage-analytics false

Sprawdź, czy jesteś zalogowany(-a).

forge whoami

Przykładowe dane wyjściowe.

Logged in as John Green (johngreen@email.com)
Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd

Tworzenie aplikacji Forge

Sprawdź, czy jesteś w folderze „~/genai-for-developers”.

Uruchom polecenie, aby utworzyć aplikację Forge.

forge create

Gdy pojawi się prośba, wpisz te wartości:

  • Nazwa aplikacji: devai-jira-ui-qwiklabs
  • Wybierz kategorię: UI Kit
  • Wybierz usługę: Jira
  • Wybierz szablon: jira-issue-panel

bc94e2da059f15cf.png

Przejdź do folderu aplikacji.

cd devai-jira-ui-qwiklabs/

Uruchom polecenie, aby zainstalować zależności.

npm install

Uruchom polecenie wdrażania.

forge deploy

Przykładowe dane wyjściowe:

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.

Zainstaluj aplikację.

forge install

Gdy pojawi się prośba, wpisz te wartości:

  • Wybierz usługę: Jira
  • Wpisz adres URL witryny: your-domain.atlassian.net

Przykładowe dane wyjściowe:

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

Otwórz witrynę JIRA i utwórz nowe zadanie JIRA o takim opisie:

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.

Gdy otworzysz zadanie, zobaczysz przycisk „devai-jira-ui-qwiklabs”.

Kliknij przycisk i sprawdź zmiany w interfejsie.

a64378e775125654.png

Wyświetlanie logów backendu Forge.

forge logs

Konsola dewelopera Atlassian

Możesz też wyświetlać w konsoli dla deweloperów Atlassian wdrożone aplikacje i nimi zarządzać.

10281496d8181597.png

Sprawdzanie dzienników – przełącz się na środowisko Development,

d5c3b1a18dee166e.png

Sprawdzanie pliku manifestu i kodu źródłowego aplikacji Forge

Otwórz plik „devai-jira-ui-qwiklabs/manifest.yml” i użyj Gemini Code Assist, aby wyjaśnić konfigurację.

8710dc7cd343a6a4.png

Zapoznaj się z wyjaśnieniem.

e4c9052a0337527d.png

Otwórz te pliki i poproś Gemini Code Assist o ich wyjaśnienie:

  • devai-jira-ui-qwiklabs/src/frontend/index.jsx
  • devai-jira-ui-qwiklabs/src/resolvers/index.js

3283420f190cda21.png

Aktualizacja aplikacji Forge za pomocą punktu końcowego DevAI API Cloud Run

Sprawdź, czy ustawiony jest identyfikator projektu GCP:

gcloud config get project

Jeśli nie, skonfiguruj projekt GCP, korzystając z identyfikatora projektu na stronie laboratorium Qwiklabs:

Przykład: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

Ustaw adres URL usługi 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

Ustaw klucz interfejsu API DEVAI:

export DEVAI_API_KEY=api-key-that-you-created

forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY

Potwierdź, uruchamiając to polecenie:

forge variables list

Przykładowe dane wyjściowe

f63a751f0d6211ff.png

Aktualizowanie pliku manifestu i kodu aplikacji Forge

Te fragmenty kodu znajdziesz w repozytorium w folderze sample-devai-jira-ui.

Otwórz plik manifestu w edytorze: devai-jira-ui-qwiklabs/manifest.yml

Dodaj wiersze poniżej na końcu pliku – zastąp punkt końcowy Cloud Run tym, który został przez Ciebie wdrożony.

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

Otwórz plik resolverów/indeksów w edytorze: devai-jira-ui-qwiklabs/src/resolvers/index.js

Dodaj wiersze pod istniejącą funkcją getText.

resolver.define('getApiKey', (req) => {
 
return process.env.DEVAI_API_KEY;
});

resolver
.define('getDevAIApiUrl', (req) => {
 
return process.env.DEVAI_API_URL;
});

Otwórz w edytorze plik front-endu lub indeksu: devai-jira-ui-qwiklabs/src/frontend/index.jsx

Zastąp index.jsx treścią poniżej. Zaktualizuj link do identyfikatora użytkownika lub repozytorium GitLab.

Musisz zaktualizować identyfikator użytkownika i repozytorium Git w 2 miejscach.

W pliku odszukaj ten wiersz i wprowadź zmiany:

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>
);

Wdrażanie ponownie aplikacji Forge

Dodaj zależności w pliku package.json:

"@forge/api": "4.0.0",

Uruchom polecenie, aby zainstalować zależności:

npm install

Wdróż zaktualizowaną aplikację:

forge deploy

Przykładowe dane wyjściowe:

ℹ 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.

Instalowanie zaktualizowanej aplikacji:

forge install --upgrade

ef17c7da9b2962d8.png

Przykładowe dane wyjściowe:

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.

Aplikacja Test Forge

Otwórz istniejące zadanie JIRA lub utwórz nowe w projekcie JIRA.

Jeśli poprzedni panel został już dodany, musisz go usunąć.

Kliknij ... i w menu wybierz usuń. Następnie możesz ponownie kliknąć przycisk.

460503e8b2014b52.png

Sprawdzanie komentarzy w Jira

Gdy otrzymasz odpowiedź od interfejsu API DEVAI, dodamy komentarz do zgłoszenia w JIRA.

  • Link do żądania połączenia w GitLab

Aby odświeżyć widok, przełącz się między kartami „History” i „Comments”.

9539d2bd3cbdad28.png

Weryfikowanie prośby o połączenie w GitLab

Otwórz GitLab i sprawdź, czy w Twoim projekcie są nowe żądania merge.

4c2345a89bfe71ee.png

fa3a552923cd70f1.png

Ślady LangSmith LLM

Jeśli skonfigurowano śledzenie LLM, otwórz portal LangSmith i sprawdź ślad LLM dla wywołania funkcji tworzenia żądania połączenia w GitLab.

Przykładowy ślad LangSmith LLM.

1ae0f88ab885f69.png

9. Przesyłanie zmian do repozytorium GitHub

(OPCJONALNA SEKCJA)

Otwórz stronę GitHub i utwórz nowe repozytorium, aby przesłać zmiany z tego laboratorium do swojego osobistego repozytorium.

Wróć do Cloud Console i ustaw w terminalu nazwę użytkownika i adres e-mail Git.

Zaktualizuj wartości przed uruchomieniem poleceń.

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

Wygeneruj klucz SSH i dodaj go do repozytorium GitHub.

Zaktualizuj adres e-mail przed uruchomieniem poleceń.

Nie wpisuj hasła i nie naciskaj klawisza Enter wielokrotnie, aby utworzyć klucz.

ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"

ssh
-add ~/.ssh/id_ed25519

cat
~/.ssh/id_ed25519.pub

Dodaj wygenerowany klucz publiczny do swojego konta GitHub.

Otwórz https://github.com/settings/keys i kliknij „New SSH key”.

Jako nazwy klucza użyj „qwiklabs-key” i skopiuj/wklej dane wyjściowe z ostatniego polecenia.

Wróć do terminala, zatwierdź i prześlij zmiany.

cd ~/genai-for-developers

git remote rm origin

Ustaw zdalne źródło za pomocą utworzonego powyżej repozytorium.

Zastąp go adresem URL repozytorium.

git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git

Dodaj, zatwierdź i prześlij zmiany.

git add .

git commit
-m "lab changes"

git push
-u origin main

10. Gratulacje!

Gratulacje! Masz ukończony ten moduł.

Omówione zagadnienia:

  • Jak wdrażać aplikacje Cloud Run w celu integracji z interfejsami Gemini API.
  • Jak utworzyć i wdrożyć aplikację Atlassian Forge dla JIRA.
  • Jak używać agentów LangChain ReAct do automatyzacji zadań GitLab
  • Jak przeglądać ścieżki LLM w LangSmith

Co dalej:

  • Wkrótce odbędą się kolejne praktyczne sesje.

Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, możesz usunąć projekt zawierający te zasoby lub zachować projekt i usunąć poszczególne zasoby.

Usuwanie projektu

Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego na potrzeby samouczka.

©2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.