Informationen zu diesem Codelab
1. Übersicht
In diesem Lab erstellen Sie eine Lösung, mit der Sie die Implementierung von JIRA-User Storys mit GenAI automatisieren.
Lerninhalte
Das Lab besteht aus mehreren Hauptteilen:
- Cloud Run-Anwendung für die Einbindung in Gemini APIs bereitstellen
- Atlassian Forge-App für JIRA erstellen und bereitstellen
- LangChain ReAct-Agents für die Automatisierung von GitLab-Aufgaben verwenden
Vorbereitung
- Für dieses Lab wird davon ausgegangen, dass Sie mit der Cloud Console und Cloud Shell-Umgebungen vertraut sind.
2. Einrichtung und Anforderungen
Cloud-Projekt einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.
- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es ist ein Zeichenstring, der von Google APIs nicht verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und kann nach der Festlegung nicht mehr geändert werden. In der Cloud Console wird automatisch ein eindeutiger String generiert. In der Regel spielt es keine Rolle, wie er lautet. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (normalerweise als
PROJECT_ID
gekennzeichnet). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige generieren. Alternativ können Sie Ihr eigenes Konto ausprobieren und prüfen, ob es verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs ist kostenlos oder kostet nur sehr wenig. Wenn Sie die Ressourcen deaktivieren möchten, um weitere Kosten nach Abschluss dieser Anleitung zu vermeiden, können Sie die von Ihnen erstellten Ressourcen oder das Projekt löschen. Neuen Google Cloud-Nutzern steht das kostenlose Testprogramm mit einem Guthaben von 300$ zur Verfügung.
Umgebung einrichten
Öffnen Sie Gemini Chat.
Sie können auch „Gemini fragen“ in die Suchleiste eingeben.
Aktivieren Sie Gemini for Google Cloud API:
Klicke auf „Start chatting
“ und folge einer der Beispielfragen oder gib einen eigenen Prompt ein, um es auszuprobieren.
Probiere folgende Prompts aus:
- Erläutern Sie Cloud Run in fünf wichtigen Punkten.
- Sie sind Product Manager für Google Cloud Run. Erläutern Sie Cloud Run einem Studenten in fünf kurzen Punkten.
- Sie sind Produktmanager für Google Cloud Run und erklären einem zertifizierten Kubernetes-Entwickler Cloud Run in fünf kurzen Punkten.
- Sie sind Product Manager für Google Cloud Run. Erläutern Sie einem Senior Developer in fünf kurzen Punkten, wann Sie Cloud Run und wann Sie GKE verwenden würden.
Weitere Informationen zum Erstellen besserer Prompts finden Sie in der Anleitung: Prompts.
So nutzt Gemini for Google Cloud Ihre Daten
Datenschutzprinzipien von Google
Google war einer der ersten Anbieter in der Branche, der eine KI-/ML-Datenschutzverpflichtung veröffentlicht hat. Diese legt fest, dass Kunden die höchste Sicherheit und Kontrolle über ihre Daten haben sollten, die in der Cloud gespeichert werden.
Von Ihnen eingereichte und empfangene Daten
Die Fragen, die Sie an Gemini stellen, einschließlich aller Eingabeinformationen oder Codes, die Sie zur Analyse oder Fertigstellung an Gemini senden, werden als Prompts bezeichnet. Die Antworten oder Code-Ergänzungen, die Sie von Gemini erhalten, werden als Antworten bezeichnet. Gemini verwendet Ihre Prompts und seine Antworten nicht als Daten zum Trainieren seines Modells.
Verschlüsselung von Prompts
Wenn Sie Prompts an Gemini senden, werden Ihre Daten während der Übertragung als Eingabe für das zugrunde liegende Modell in Gemini verschlüsselt.
Von Gemini generierte Programmdaten
Gemini wird mit Google Cloud-Code und ausgewähltem Code von Drittanbietern trainiert. Sie sind für die Sicherheit, die Tests und die Effektivität Ihres Codes verantwortlich, einschließlich aller Codevervollständigungen, -generierungen oder ‑analysen, die Gemini bietet.
3. Optionen zum Testen von Prompts
Es gibt mehrere Möglichkeiten, Prompts zu testen.
Vertex AI Studio ist Teil der Vertex AI-Plattform von Google Cloud und wurde speziell entwickelt, um die Entwicklung und Nutzung generativer KI-Modelle zu vereinfachen und zu beschleunigen.
Google AI Studio ist ein webbasiertes Tool zum Erstellen von Prototypen und Experimentieren mit Prompt-Engineering und der Gemini API.
- Gemini Web-App (gemini.google.com)
Die Google Gemini Web-App (gemini.google.com) ist ein webbasiertes Tool, mit dem Sie die Leistungsfähigkeit der Gemini-KI-Modelle von Google kennenlernen und nutzen können.
- Mobile Google Gemini App für Android und Google App für iOS
4. Antrag prüfen
Dienstkonto erstellen
Kehren Sie zur Google Cloud Console zurück und aktivieren Sie Cloud Shell, indem Sie auf das Symbol rechts neben der Suchleiste klicken.
Führen Sie im geöffneten Terminal die folgenden Befehle aus, um ein neues Dienstkonto und Schlüssel zu erstellen.
Sie verwenden dieses Dienstkonto, um API-Aufrufe an die Vertex AI Gemini API aus der Cloud Run-Anwendung zu senden.
Konfigurieren Sie die Projektdetails mithilfe Ihrer Qwiklabs-Projektdetails.
Beispiel: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Erstellen Sie ein Dienstkonto.
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"
Weisen Sie Rollen zu.
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"
Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf „Autorisieren“, um fortzufahren.
Aktivieren Sie die erforderlichen Dienste, um Vertex AI APIs und Gemini-Chat zu verwenden.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Aktivieren Sie die erforderlichen Dienste, um Vertex AI APIs und Gemini-Chat zu verwenden.
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-Repository klonen
GitHub-Repository klonen.
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Cloud Shell-Editor öffnen
Öffnen Sie über den Menüpunkt „File / Open Folder
“ die Seite „genai-for-developers
“.
Öffnen Sie die Datei „devai-api/app/routes.py
“, klicken Sie mit der rechten Maustaste auf eine beliebige Stelle in der Datei und wählen Sie im Kontextmenü „Gemini > Explain
this"
“ aus.
Lesen Sie die Erklärung von Gemini für die ausgewählte Datei.
5. Konfiguration von GitLab-Repository und ‑Toolkit
In diesem Lab verwenden Sie das GitLabToolkit, um das Erstellen von GitLab-Zusammenführungsanfragen zu automatisieren.
LangChain-Toolkits – Übersicht
LangChain-Toolkits sind Tools, die die Entwicklung von Anwendungen mit LangChain optimieren und verbessern sollen. Je nach Toolkit bieten sie verschiedene Funktionen, aber im Allgemeinen helfen sie bei:
- Verbindung zu externen Datenquellen herstellen: Sie können auf Informationen aus APIs, Datenbanken und anderen externen Quellen zugreifen und sie in Ihre LangChain-Anwendungen einbinden.
- Erweiterte Prompt-Techniken: Sie können vordefinierte Prompts verwenden oder benutzerdefinierte Prompts erstellen, um die Interaktionen mit Sprachmodellen zu optimieren.
- Erstellen und Verwalten von Ketten: Sie können ganz einfach komplexe Ketten erstellen und effizient verwalten.
- Bewertung und Monitoring: Analysieren Sie die Leistung Ihrer LangChain-Anwendungen und -Chains.
Zu den beliebten LangChain-Toolkits gehören:
- Agent Executor Toolkits: Tools zur Entwicklung von Agenten, die über Aktionen wie Web-Browsing oder Codeausführung mit der realen Welt interagieren können.
- Prompt Engineering Toolkit: Eine Sammlung von Ressourcen zum Erstellen effektiver Prompts.
GitLab Toolkit – Übersicht
Das GitLab-Toolkit enthält Tools, mit denen ein LLM-Agent mit einem GitLab-Repository interagieren kann. Das Tool ist ein Wrapper für die python-gitlab
-Bibliothek.
Das GitLab-Toolkit kann folgende Aufgaben ausführen:
- Datei erstellen: Damit wird eine neue Datei im Repository erstellt.
- Datei lesen: Liest eine Datei aus dem Repository.
- Datei aktualisieren: Hiermit wird eine Datei im Repository aktualisiert.
- Pull-Anfrage erstellen: Erstellt eine Pull-Anfrage vom Arbeitszweig des Bots an den Basiszweig.
- Get Issue: Hiermit werden Probleme aus dem Repository abgerufen.
- Problem abrufen: Hiermit werden Details zu einem bestimmten Problem abgerufen.
- Problem kommentieren: Hier können Sie einen Kommentar zu einem bestimmten Problem posten.
- Datei löschen: Hiermit wird eine Datei aus dem Repository gelöscht.
GitLab-Projekteinrichtung
Öffnen Sie GitLab, erstellen Sie ein neues Projekt und richten Sie unter „Settings / Access Tokens
“ ein Projektzugriffstoken ein.
Verwenden Sie die folgenden Angaben:
- Token name:
devai-api-qwiklabs
- Rolle:
Maintainer
- Wählen Sie Bereiche aus:
api
Kopieren Sie den Wert des Zugriffstokens und fügen Sie ihn in eine temporäre Datei auf Ihrem Laptop ein. Sie benötigen ihn für die nächsten Schritte.
6. Anwendung für die Bereitstellung in Cloud Run vorbereiten
Kehren Sie zum Cloud Shell-Editor zurück und verwenden Sie ein vorhandenes Terminal oder öffnen Sie ein neues.
Konfigurieren Sie die Projektdetails mithilfe Ihrer Qwiklabs-Projektdetails.
Beispiel: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
Legen Sie die restlichen Umgebungsvariablen fest:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
Legen Sie die für die GitLab-Integration erforderlichen Umgebungsvariablen fest.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
Um die Offenlegung vertraulicher Informationen im Terminal zu vermeiden, wird empfohlen, read -s GITLAB_PERSONAL_ACCESS_TOKEN
zu verwenden. Dies ist eine sichere Möglichkeit, Umgebungsvariablen festzulegen, ohne dass der Wert im Befehlsverlauf der Konsole angezeigt wird. Nach der Ausführung müssen Sie den Wert einfügen und die Eingabetaste drücken. Sie müssen auch die Umgebungsvariable exportieren: export GITLAB_PERSONAL_ACCESS_TOKEN
Für diesen Befehl müssen Sie Ihre GitLab-Nutzer-ID und den Repository-Namen aktualisieren.
Beispiel: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"
export GITLAB_REPOSITORY="USERID/REPOSITORY"
Legen Sie die restlichen Umgebungsvariablen fest:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
LangSmith-LLM-Tracing-Konfiguration
Richten Sie das Konto ein, wenn Sie sich Informationen zur Kundenservicemitarbeiter-Verfolgung in LangSmith ansehen möchten. Andernfalls führen Sie die Befehle unverändert aus.
Erstellen Sie ein LangSmith-Konto und generieren Sie im Bereich „Einstellungen“ einen Service API-Schlüssel. https://smith.langchain.com/settings
Legen Sie die für die LangSmith-Integration erforderlichen Umgebungsvariablen fest.
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
JIRA-Konfiguration
Diese Werte werden in diesem Lab nicht verwendet. Sie müssen sie also nicht auf die Werte Ihres JIRA-Projekts aktualisieren, bevor Sie die Befehle ausführen.
Legen Sie die Umgebungsvariablen fest, die für die Bereitstellung des Cloud Run-Dienstes erforderlich sind.
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-Schlüssel erstellen
Erstellen Sie einen neuen API-Schlüssel im Bereich Cloud Console / API & Dienste / Anmeldedaten.
Mit diesem Schlüssel werden JIRA API-Aufrufe an die Cloud Run-Anwendung authentifiziert.
Für die Produktionsumgebung konfigurieren Sie Anwendungs- und API-Einschränkungen für den erstellten API-Schlüssel. Mit Anwendungseinschränkungen wird die Nutzung eines API-Schlüssels auf bestimmte Websites(z.B. Ihre JIRA-Instanz) beschränkt.
Legen Sie die Umgebungsvariablen fest, die für die Bereitstellung des Cloud Run-Dienstes erforderlich sind.
export DEVAI_API_KEY=your-api-key
Secrets in Secret Manager erstellen
In diesem Lab folgen wir den Best Practices und verwenden Secret Manager, um die Werte für Zugriffstokens, API-Schlüssel und LangChain-API-Schlüssel in Cloud Run zu speichern und zu referenzieren.
Erstellen und speichern Sie die erforderlichen Secrets in Secret Manager.
echo -n $DEVAI_API_KEY | \
gcloud secrets create DEVAI_API_KEY \
--data-file=-
echo -n $JIRA_API_TOKEN | \
gcloud secrets create JIRA_API_TOKEN \
--data-file=-
echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
--data-file=-
echo -n $LANGCHAIN_API_KEY | \
gcloud secrets create LANGCHAIN_API_KEY \
--data-file=-
7. Devai-API in Cloud Run bereitstellen
Prüfen Sie, ob Sie sich im richtigen Ordner befinden.
cd ~/genai-for-developers/devai-api
Die Anwendung in Cloud Run bereitstellen.
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
Geben Sie Y
ein, um ein Artifact Registry-Docker-Repository zu erstellen.
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
Sehen Sie sich unten den Ablauf für gcloud run deploy SERVICE_NAME --source=.
an. Weitere Informationen
Im Hintergrund verwendet dieser Befehl buildpacks
und Cloud Build
von Google Cloud, um automatisch Container-Images aus Ihrem Quellcode zu erstellen, ohne Docker auf Ihrem Computer installieren oder Buildpacks oder Cloud Build einrichten zu müssen. Das heißt, der einzige oben beschriebene Befehl würde die Befehle gcloud builds submit
und gcloud run deploy
ausführen.
Wenn Sie ein Dockerfile bereitgestellt haben(wie in diesem Repository), verwendet Cloud Build dieses, um Container-Images zu erstellen, anstatt sich auf die Buildpacks zu verlassen, die Container-Images automatisch erkennen und erstellen. Weitere Informationen zu Buildpacks finden Sie in der Dokumentation.
Sehen Sie sich die Cloud Build-Protokolle in der Console an.
Sehen Sie sich das erstellte Docker-Image in Artifact Registry an.
Sehen Sie sich die Cloud Run-Instanzdetails in der Cloud Console an.
App testen
Testen Sie den Endpunkt mit dem Befehl „curl“.
Aktualisieren Sie die URL des Cloud Run-Dienstes, bevor Sie den Befehl ausführen.
Beispiel:
curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test
8. Story-Implementierung automatisieren
Forge ist eine Plattform, mit der Entwickler Apps erstellen können, die in Atlassian-Produkte wie Jira, Confluence, Compass und Bitbucket eingebunden werden können.
Forge-Befehlszeile installieren
Installieren Sie die Forge CLI global mit dem Befehl:
npm install -g @forge/cli
In diesem Lab verwenden wir Umgebungsvariablen für die Anmeldung.
JIRA-Projekt einrichten
JIRA-Projekte mit Ihrem privaten Konto erstellen und ansehen.
Vorhandene JIRA-Projekte prüfen: https://admin.atlassian.com/
Erstellen Sie mit Ihrem privaten Konto ein neues JIRA-Projekt.
Rufen Sie https://team.atlassian.com/your-work auf, klicken Sie auf und wählen Sie dann
aus. Wählen Sie dann „JIRA Software“ und dann „Jetzt testen“ aus. Folgen Sie der Anleitung, um das Projekt bzw. die Website zu erstellen.
Wählen Sie „Jira Software“ aus.
Erstellen Sie ein neues Projekt.
Atlassian API-Token erstellen
Erstellen Sie ein Atlassian API-Token oder verwenden Sie ein vorhandenes, um sich in der Befehlszeile anzumelden.
Die Befehlszeile verwendet Ihr Token, wenn Befehle ausgeführt werden.
- Rufen Sie https://id.atlassian.com/manage/api-tokens auf.
- Klicken Sie auf API-Token erstellen.
- Geben Sie ein Label ein, um Ihr API-Token zu beschreiben. Beispiel: forge-api-token.
- Klicken Sie auf Erstellen.
- Klicken Sie auf In die Zwischenablage kopieren und schließen Sie das Dialogfeld.
Forge-Umgebungseinstellungen konfigurieren
Kehren Sie zur Cloud Console zurück und führen Sie die folgenden Befehle im Terminal aus.
Melden Sie sich in der Forge-Befehlszeile an, um Forge-Befehle verwenden zu können.
Legen Sie Ihre JIRA-/FORGE-E-Mail-Adresse fest. Ersetzen Sie „your_email_address“ durch Ihre E-Mail-Adresse.
export FORGE_EMAIL=your-email
Forge API-Token festlegen Ersetzen Sie das JIRA API-Token.
export FORGE_API_TOKEN=your-jira-api-token
Testen Sie die Forge-Befehlszeile, indem Sie den folgenden Befehl ausführen. Antworten Sie mit „No
“, wenn Sie gefragt werden, ob Sie Analysen erfassen möchten.
forge settings set usage-analytics false
Prüfen Sie, ob Sie angemeldet sind.
forge whoami
Beispielausgabe:
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Forge-Anwendung erstellen
Sie müssen sich im Ordner „~/genai-for-developers
“ befinden.
Befehl ausführen, um eine Forge-Anwendung zu erstellen
forge create
Geben Sie die folgenden Werte ein, wenn Sie dazu aufgefordert werden:
- App-Name:
devai-jira-ui-qwiklabs
- Wählen Sie eine Kategorie aus:
UI Kit
- Wählen Sie ein Produkt aus:
Jira
- Wählen Sie eine Vorlage aus:
jira-issue-panel
Wechseln Sie in den Ordner der Anwendung.
cd devai-jira-ui-qwiklabs/
Führen Sie den Befehl aus, um die Abhängigkeiten zu installieren.
npm install
Führen Sie den Bereitstellungsbefehl aus.
forge deploy
Beispielausgabe:
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.
Installieren Sie die Anwendung.
forge install
Geben Sie die folgenden Werte ein, wenn Sie dazu aufgefordert werden:
- Wählen Sie ein Produkt aus:
Jira
- Geben Sie die Website-URL ein:
your-domain.atlassian.net
Beispielausgabe:
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
Öffnen Sie Ihre JIRA-Website und erstellen Sie eine neue JIRA-Aufgabe mit der folgenden Beschreibung:
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.
Wenn Sie die Aufgabe öffnen, sehen Sie die Schaltfläche „devai-jira-ui-qwiklabs
“.
Klicken Sie auf die Schaltfläche und prüfen Sie die Änderungen auf der Benutzeroberfläche.
Forge-Backend-Logs ansehen
forge logs
Atlassian Developer Console
Sie können bereitgestellte Apps auch in der Atlassian Developer Console ansehen und verwalten.
Protokolle prüfen – zur Development
-Umgebung wechseln,
Manifest und Quellcode der Forge-Anwendung überprüfen
Öffnen Sie die Datei „devai-jira-ui-qwiklabs/manifest.yml
“ und verwenden Sie Gemini Code Assist, um die Konfiguration zu erklären.
Lesen Sie die Erklärung.
Öffnen Sie die folgenden Dateien und bitten Sie Gemini Code Assist, sie zu erklären:
devai-jira-ui-qwiklabs/src/frontend/index.jsx
devai-jira-ui-qwiklabs/src/resolvers/index.js
Forge-App mit dem Cloud Run-Endpunkt der DevAI API aktualisieren
Prüfen, ob die GCP-PROJEKT-ID festgelegt ist:
gcloud config get project
Falls nicht, legen Sie Ihr GCP-Projekt mit der Projekt-ID von der Qwiklabs-Lab-Seite fest:
Beispiel: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Cloud Run-Dienst-URL festlegen:
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-Schlüssel festlegen:
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
Führen Sie den folgenden Befehl aus, um dies zu bestätigen:
forge variables list
Beispielausgabe:
Forge-Anwendungsmanifest und -Code aktualisieren
Diese Code-Snippets finden Sie im Repository im Ordner sample-devai-jira-ui
.
Öffnen Sie die Manifestdatei im Editor: devai-jira-ui-qwiklabs/manifest.yml
Fügen Sie die folgenden Zeilen am Ende der Datei hinzu. Ersetzen Sie dabei den Cloud Run-Endpunkt durch den von Ihnen bereitgestellten.
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
Öffnen Sie die Datei „resolvers/index“ im Editor: devai-jira-ui-qwiklabs/src/resolvers/index.js
.
Fügen Sie nach der vorhandenen getText
-Funktion Zeilen hinzu.
resolver.define('getApiKey', (req) => {
return process.env.DEVAI_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
Öffnen Sie die Frontend-/Indexdatei im Editor: devai-jira-ui-qwiklabs/src/frontend/index.jsx
Ersetzen Sie index.jsx
durch den Inhalt unten. Aktualisieren Sie den Link zu Ihrer GitLab-Nutzer-ID/Ihrem GitLab-Repository.
Sie müssen DEINE-GIT-USERID und DEIN-GIT-REPO an zwei Stellen aktualisieren.
Suchen Sie in der Datei nach dieser Zeile und nehmen Sie die Änderungen vor:
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-Anwendung neu bereitstellen
Fügen Sie der Datei package.json
Abhängigkeiten hinzu:
"@forge/api": "4.0.0",
Führen Sie den Befehl aus, um die Abhängigkeiten zu installieren:
npm install
Aktualisierte Anwendung bereitstellen:
forge deploy
Beispielausgabe:
ℹ 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.
Aktualisierte Anwendung installieren:
forge install --upgrade
Beispielausgabe:
Upgrading your app on the Atlassian site. Your app will be upgraded with the following additional scopes: - read:jira-work - write:jira-work Your app will exchange data with the following urls: - devai-api-7su2ctuqpq-uc.a.run.app ? Do you want to continue? Yes ✔ Upgrade complete! Your app in the development environment is now the latest in Jira on genai-for-developers.atlassian.net.
Forge-Anwendung testen
Öffnen Sie eine vorhandene JIRA-Aufgabe oder erstellen Sie eine neue in Ihrem JIRA-Projekt.
Sie müssen das vorherige Steuerfeld entfernen, falls es bereits hinzugefügt wurde.
Klicken Sie auf ...
und wählen Sie im Menü die Option „Entfernen“ aus. Danach können Sie noch einmal auf die Schaltfläche klicken.
Jira-Kommentare prüfen
Sobald du eine Antwort von der DEVAI API erhältst, wird dem JIRA-Problem ein Kommentar hinzugefügt.
- Link zum GitLab-Merge-Request
Wechseln Sie zwischen den Tabs „History
“ und „Comments
“, um die Ansicht zu aktualisieren.
GitLab-Merge-Request prüfen
Öffnen Sie GitLab und prüfen Sie, ob es neue Zusammenführungsanfragen in Ihrem Projekt gibt.
LangSmith-LLM-Traces
Wenn Sie LLM-Tracing konfiguriert haben, öffnen Sie das LangSmith-Portal und prüfen Sie die LLM-Spuren für den Aufruf zum Erstellen einer GitLab-Zusammenführungsanfrage.
Beispiel für einen LangSmith-LLM-Trace
9. Änderungen per Push in das GitHub-Repository übertragen
(OPTIONAL SECTION)
Rufen Sie die GitHub auf und erstellen Sie ein neues Repository, um Änderungen für dieses Lab in Ihr privates Repository zu übertragen.
Kehren Sie zur Cloud Console zurück und legen Sie im Terminal den Git-Nutzernamen und die E-Mail-Adresse fest.
Aktualisieren Sie die Werte, bevor Sie die Befehle ausführen.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
Generieren Sie einen SSH-Schlüssel und fügen Sie ihn dem GitHub-Repository hinzu.
Aktualisieren Sie Ihre E-Mail-Adresse, bevor Sie die Befehle ausführen.
Geben Sie keine Passphrase ein und drücken Sie nicht mehrmals die Eingabetaste, um die Schlüsselgenerierung abzuschließen.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Fügen Sie Ihrem GitHub-Konto den generierten öffentlichen Schlüssel hinzu.
Rufen Sie https://github.com/settings/keys auf und klicken Sie auf New SSH key
.
Verwenden Sie als Schlüsselnamen „qwiklabs-key
“ und kopieren Sie die Ausgabe des letzten Befehls per Drag-and-drop.
Kehren Sie zum Terminal zurück, übernehmen Sie die Änderungen und übertragen Sie sie per Push.
cd ~/genai-for-developers
git remote rm origin
Legen Sie den Remote-Ursprung mit dem oben erstellten Repository fest.
Ersetzen Sie „repository_url“ durch die URL Ihres Repositorys.
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
Fügen Sie die Änderungen hinzu, übernehmen Sie sie und übertragen Sie sie per Push.
git add .
git commit -m "lab changes"
git push -u origin main
10. Glückwunsch!
Sie haben das Lab abgeschlossen.
Behandelte Themen:
- Informationen zum Bereitstellen von Cloud Run-Anwendungen zur Einbindung in Gemini APIs
- Informationen zum Erstellen und Bereitstellen einer Atlassian Forge-App für JIRA.
- Informationen zur Verwendung von LangChain ReAct-Agents für die Automatisierung von GitLab-Aufgaben.
- LLM-Traces in LangSmith überprüfen
Nächste Schritte:
- Weitere praktische Übungen folgen!
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie entweder das Projekt löschen, das die Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.