JIRA-User Story-Implementierung mit GenAI

1. Übersicht

In diesem Lab erstellen Sie eine Lösung, mit der sich die Implementierung von JIRA-Use-Cases mit GenAI automatisieren lässt.

5351e028356cd3ac.png

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-Agenten für die Automatisierung von GitLab-Aufgaben

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 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.
  1. Als Nächstes müssen Sie in der Cloud Console die Abrechnung 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 herunterfahren möchten, um 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.

bc3c899ac8bcf488.png

Sie können auch „Fragen Sie Gemini“ in die Suchleiste eingeben.

e1e9ad314691368a.png

Cloud AI Companion API aktivieren:

66cb6e561e384bbf.png

Klicke auf „Start chatting“ und folge einer der Beispielfragen oder gib einen eigenen Prompt ein, um es auszuprobieren.

5482c153eef23126.png

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 einem Studenten Cloud Run 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 leitenden Entwickler 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 verwendet Gemini for Google Cloud Ihre Daten

Selbstverpflichtung von Google zum Datenschutz

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.

Weitere Informationen zum Umgang von Google mit Prompts

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.

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.

4. (OPTIONAL SECTION) Create Service Account

Diese Schritte wurden während der Lab-Einrichtung ausgeführt und müssen nicht noch einmal ausgeführt werden.

In diesen Schritten wird gezeigt, wie Sie ein Dienstkonto und IAM-Rollen einrichten.

Kehren Sie zur Google Cloud Console zurück und aktivieren Sie Cloud Shell, indem Sie auf das Symbol rechts neben der Suchleiste klicken.

3e0c761ca41f315e.png

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 und gewähren Sie Rollen.

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

Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf „Autorisieren“, um fortzufahren.

6356559df3eccdda.png

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

(END OF OPTIONAL SECTION)

5. Zugriff auf Cloud Workstations gewähren

Öffnen Sie Cloud Workstations in der Cloud Console.

Gewähren Sie dem bereitgestellten Qwiklabs-Studenten Zugriff auf Cloud Workstation.

Kopieren Sie den für dieses Projekt erstellten Qwiklabs-Nutzernamen/-E-Mail-Adresse und fügen Sie damit einen Hauptberechtigten hinzu. Wählen Sie die Workstation aus und klicken Sie auf PERMISSIONS.

Weitere Informationen finden Sie unten.

5cbb861e4f272f7.png

Klicke auf die Schaltfläche „ADD PRINCIPAL“.

Fügen Sie die E-Mail-Adresse des Qwiklabs-Teilnehmers ein und wählen Sie die Rolle „Cloud Workstations User“ aus.

dfe53b74453d80b1.png

Klicken Sie auf „Start“ und dann auf „Launch“, um die Workstation zu öffnen, und fahren Sie mit den folgenden Schritten über das integrierte Terminal fort.

62dccf5c78880ed9.png

GitHub-Repository klonen

Erstellen Sie einen Ordner und klonen Sie das GitHub-Repository.

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

Öffnen Sie über den Menüpunkt „File / Open Folder“ die Seite „github/genai-for-developers“.

6. Gemini Code Assist aktivieren

Klicken Sie auf das Gemini-Symbol und dann rechts unten auf Login to Google Cloud.

4a7f4640f66037f.png

8d31b61e23ebeea2.png

Klicken Sie auf den Link im Terminal, um den Autorisierungsvorgang zu starten.

d8575b4066f67745.png

Klicken Sie auf „Öffnen“, um den Link zu öffnen.

3a7272fcb985ff5.png

Wählen Sie Ihr Qwiklabs-Teilnehmerkonto aus und klicken Sie auf dem nächsten Bildschirm auf „Anmelden“.

79dc63009ce0ed49.png

Bestätigungscode kopieren:

403845a5abc53635.png

Kehren Sie zum Terminal zurück und fügen Sie den Code ein.

5931f639fe69f5cb.png

Warten Sie, bis die Authentifizierung abgeschlossen ist, und klicken Sie dann auf „Google-Projekt auswählen“.

614beb055f7aa5e8.png

Wählen Sie im Pop-up-Fenster Ihr Qwiklabs-Projekt aus.

Beispiel:

70ae6837db397e2a.png

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

32b902134440b7c3.png

Lesen Sie die Erklärung von Gemini für die ausgewählte Datei.

f78bfee770f6be93.png

7. LangChain-Toolkits

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 Websurfen oder Codeausführung mit der realen Welt interagieren können.
  • Prompt Engineering Toolkit: Eine Sammlung von Ressourcen zum Erstellen effektiver Prompts.

GitLab Toolkit

In diesem Lab verwenden Sie das GitLab-Toolkit, um das Erstellen von GitLab-Zusammenführungsanfragen zu automatisieren.

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: Hiermit können Sie einen Kommentar zu einem bestimmten Problem posten.
  • Datei löschen: Hiermit wird eine Datei aus dem Repository gelöscht.

8. Konfiguration des GitLab-Repositories und des Toolkits

Öffnen Sie GitLab, erstellen Sie ein neues öffentliches Projekt und richten Sie unter „Settings / Access Tokens“ ein Projektzugriffstoken ein.

Verwenden Sie die folgenden Details:

  • Token name: devai-api-qwiklabs
  • Rolle: Maintainer
  • Wählen Sie Bereiche aus: api

112008c7894c3a19.png

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.

9. Anwendung für die Bereitstellung in Cloud Run vorbereiten

Kehren Sie zur Cloud Workstations-Instanz zurück und verwenden Sie ein vorhandenes Terminal oder öffnen Sie ein neues.

9f9682d2b7317e66.png

Rufen Sie die Anmeldedaten für Ihr Nutzerkonto über einen webbasierten Autorisierungsvorgang ab.

Klicken Sie auf den Link und folgen Sie der Anleitung, um einen Bestätigungscode zu generieren.

gcloud auth login

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

Für diesen Befehl müssen Sie Ihre GitLab-Nutzer-ID und den Repository-Namen aktualisieren.

Beispiel: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

119489def27115c8.png

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"

10. LangSmith LLM-Tracing-Konfiguration

Erstellen Sie ein LangSmith-Konto und generieren Sie im Bereich „Einstellungen“ einen Service API-Schlüssel. https://docs.smith.langchain.com/

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

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

12. Devai-API in Cloud Run bereitstellen

Prüfen Sie, ob Sie sich im richtigen Ordner befinden.

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

In diesem Lab folgen wir Best Practices und verwenden Secret Manager, um die Werte für das Zugriffstoken und den LangChain API-Schlüssel in Cloud Run zu speichern und zu referenzieren.

Speichern Sie das JIRA-Zugriffstoken im Secret Manager.

echo -n $JIRA_API_TOKEN | \
 gcloud secrets create JIRA_API_TOKEN \
 --data-file=-

Speichern Sie das GitLab-Zugriffstoken in Secret Manager.

echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
 gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
 --data-file=-

Speichern Sie den LangChain API-Schlüssel im Secret Manager.

echo -n $LANGCHAIN_API_KEY | \
 gcloud secrets create LANGCHAIN_API_KEY \
 --data-file=-

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" \
  --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

5c122a89dd11822e.png

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.

Öffnen Sie cloud-run-source-deploy/devai-api und prüfen Sie die automatisch erkannten Sicherheitslücken. Suchen Sie nach Problemen, für die Lösungen verfügbar sind, und lesen Sie die Beschreibung, um zu erfahren, wie Sie das Problem beheben können.

d00c9434b511be44.png

Sehen Sie sich die Cloud Run-Instanzdetails in der Cloud Console an.

Testen Sie den Endpunkt mit dem Befehl „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

(OPTIONALER ABSCHNITT) Cloud Workstation einrichten

Cloud Workstations bietet verwaltete Entwicklungsumgebungen in Google Cloud mit integrierter Sicherheit und vorkonfigurierten, aber anpassbaren Entwicklungsumgebungen. Anstatt Ihre Entwickler Software installieren und Einrichtungsscripts ausführen zu lassen, können Sie eine Workstation-Konfiguration erstellen, die Ihre Umgebung auf reproduzierbare Weise angibt. Alle Updates an einer Workstationkonfiguration werden beim nächsten Start automatisch auf die Workstations angewendet. Entwickler greifen über eine browserbasierte IDE, über mehrere lokale Code-Editoren (z. B. VSCode oder JetBrains-IDEs wie IntelliJ IDEA Ultimate und PyCharm Professional) oder über SSH auf die Workstations zu.

Cloud Workstations verwendet die folgenden Google Cloud-Ressourcen, um Ihre Entwicklungsumgebungen zu verwalten:

  • Workstation-Cluster definieren eine Gruppe von Workstations in einer bestimmten Region und das VPC-Netzwerk, mit dem sie verbunden sind. Workstation-Cluster haben keinen Bezug zu Google Kubernetes Engine-Clustern (GKE).
  • Workstationkonfigurationen dienen als Vorlagen für Workstations. In der Workstation-Konfiguration werden unter anderem Details wie der Typ der VM-Instanz (virtuelle Maschine) der Workstation, der nichtflüchtige Speicher, die Umgebung für die Definition des Container-Images und die zu verwendende IDE oder der zu verwendende Code-Editor festgelegt. Administratoren und Plattformteams können auch IAM-Regeln (Identity and Access Management) verwenden, um Teams oder einzelnen Entwicklern Zugriff zu gewähren.
  • Workstations sind vorkonfigurierte Entwicklungsumgebungen, die unter anderem eine Cloud-IDE, Sprachtools und Bibliotheken bieten. Workstations können bei Bedarf gestartet oder beendet werden und auf Compute Engine-VMs in Ihrem Projekt ausgeführt werden. Dazu ist ein persistentes Laufwerk erforderlich, um Daten zwischen den Sitzungen zu speichern.

Administratoren und Plattformteams erstellen Workstation-Konfigurationen, die sie mit ihrem Entwicklungsteam teilen. Jeder Entwickler erstellt eine Workstation basierend auf einer Workstationkonfiguration.

810ae08acb671f4c.png

In diesem Lab verwenden Sie eine browserbasierte IDE. Cloud Workstations unterstützt aber auch andere gängige Entwicklungsoberflächen:

  • Sie können Ihre eigenen lokalen JetBrains-IDEs über JetBrains Gateway verwenden.
  • Wenn Sie Local VSCode verwenden, können Sie auch über SSH auf Ihre Workstations für die Remote-Entwicklung zugreifen.
  • Sie können auch SSH- und sogar TCP-Tunnel zu Ihrer Workstation von Ihrem lokalen Computer aus einrichten.

fc95816682f1e3b0.png

(OPTIONALER ABSCHNITT) Workstationcluster erstellen

Diese Schritte wurden während der Lab-Einrichtung ausgeführt und müssen nicht noch einmal ausgeführt werden.

In diesen Schritten wird gezeigt, wie Sie einen Cloud Workstations-Cluster, eine Workstations-Konfiguration und eine Workstation einrichten.

Sehen Sie sich diesen Abschnitt an und fahren Sie mit dem Abschnitt zur Forge-Plattform fort.

Workstationcluster erstellen:

gcloud workstations clusters create ws-cluster --region=us-central1

Workstation-Konfiguration erstellen

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

Workstation erstellen

gcloud workstations create devai-workstation \
--cluster=ws-cluster \
--config=devai-config \
--region=us-central1

Verfügbare Workstations in der Cloud Console ansehen Starten Sie „devai-workstation“.

e44784811890cfc8.png

Aktiviere rechts unten „Gemini“, melde dich auf dem neuen Browsertab an und kopiere den generierten Code zurück in die Konsole, um die Anmeldung abzuschließen.

Öffnen Sie im linken Bereich den Gemini-Chat und fragen Sie 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?

8c3af1ad4e612f15.png

(END OF OPTIONAL SECTION)

13. Forge-Plattform

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.

eda6f59ff15df25e.png

Forge CLI installieren

Führen Sie die folgenden Befehle im Terminal aus.

Laden Sie den Node Version Manager ( nvm) herunter und machen Sie ihn im Pfad der aktuellen Terminalsitzung verfügbar.

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

Installieren Sie nvm.

Wählen Sie den neuesten Node.js-LTS-Release aus, indem Sie im Terminal Folgendes ausführen:

nvm install --lts
nvm use --lts

Installieren Sie die Forge CLI global mit dem Befehl:

npm install -g @forge/cli

In diesem Lab verwenden wir Umgebungsvariablen für die Anmeldung.

e4e4e59cf8622e3f.png

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 8654143154cb8665.png und wählen Sie dann 47b253090a08932.png aus. Wählen Sie dann „JIRA Software“ und dann „Jetzt testen“ aus. Folgen Sie der Anleitung, um das Projekt bzw. die Website zu erstellen.

5bab2a96e3b81383.png

Wählen Sie „Jira Software“ aus.

785bc4d8bf920403.png

Erstellen Sie ein neues Projekt.

8a6e7cdc8224ffa0.png

14. Atlassian API-Token

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.

  1. Rufen Sie https://id.atlassian.com/manage/api-tokens auf.
  2. Klicken Sie auf API-Token erstellen.
  3. Geben Sie ein Label ein, um Ihr API-Token zu beschreiben. Beispiel: forge-api-token.
  4. Klicken Sie auf Erstellen.
  5. Klicken Sie auf In die Zwischenablage kopieren und schließen Sie das Dialogfeld.

Führen Sie den folgenden Befehl im Terminal von Cloud Workstations 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 „~/github/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

bc94e2da059f15cf.png

Wechseln Sie in den Ordner der Anwendung.

cd devai-jira-ui-qwiklabs/

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.

88f6dd543827543.png

Forge-Backend-Logs aufrufen

forge logs

Atlassian Developer Console

Sie können bereitgestellte Apps auch in der Atlassian Developer Console ansehen und verwalten.

6a0e6ea177054fe6.png

Protokolle prüfen – zur Development-Umgebung wechseln,

56a7f74de6d2a01d.png

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 sie zu erklären.

4a4377922ab9a927.png

Lesen Sie die Erklärung.

5dd53138212dc686.png

Ö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

c99f48a5bf624501.png

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

Führen Sie den folgenden Befehl aus, um dies zu bestätigen:

forge variables list

Beispielausgabe:

fb337c19c9009ac5.png

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/generate # 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.LLM_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 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>
);

Forge-Anwendung neu bereitstellen

Fügen Sie der Datei package.json Abhängigkeiten hinzu:

"@forge/api": "4.0.0",

Installieren Sie die Abhängigkeiten:

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

ef17c7da9b2962d8.png

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.

1adca6205af0f0c6.png

Jira-Kommentare prüfen

Sobald du eine Antwort von der DEVAI API erhältst, werden dem JIRA-Problem zwei Kommentare hinzugefügt.

  • GitLab-Merge-Request
  • Details zur Implementierung der Gemini-User Story

Wechseln Sie zwischen den Tabs „History“ und „Comments“, um die Ansicht zu aktualisieren.

e3f38114330d504f.png

Erstellung von GitLab-Zusammenführungsanfragen aktivieren

Öffnen Sie die Datei devai-api/app/routes.py und entfernen Sie die Kommentarzeichen in den folgenden Zeilen der Methode 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)

Cloud Run-Anwendung neu bereitstellen

Prüfen Sie, ob Sie sich im richtigen Ordner befinden.

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

Wenn Sie dieselbe Terminalsitzung verwenden, sind möglicherweise noch alle Umgebungsvariablen festgelegt.

Prüfen Sie dies, indem Sie im Terminal „echo $GITLAB_REPOSITORY“ eingeben.

Führen Sie die folgenden Schritte aus, um sie zurückzusetzen, wenn eine neue Terminalsitzung geöffnet wurde.

Setzen Sie die erforderlichen Umgebungsvariablen zurück, bevor Sie die Anwendung neu bereitstellen.

Für diesen Befehl müssen Sie Ihre GitLab-Nutzer-ID und den Repository-Namen aktualisieren.

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"

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

Das GitLab-Toolkit verwendet den Zweig „devai“, um die Änderungen für die Zusammenführungsanfrage zu pushen.

Prüfen Sie, ob Sie diesen Branch bereits erstellt haben.

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" \
  --min-instances=1 \
  --max-instances=3

End-to-End-Integration prüfen

Starten Sie den Prozess über die JIRA-Aufgabe, indem Sie noch einmal auf die Schaltfläche klicken. Prüfen Sie die Ausgabe im GitLab-Repository im Bereich „Merge Request“ und in LangSmith.

Details zur GitLab-Zusammenführungsanfrage

1cd438a10b4ce2b3.png

db6dc6c9a46e8f7b.png

LangSmith-LLM-Traces

Öffnen Sie das LangSmith-Portal und prüfen Sie den LLM-Trace für den Aufruf zum Erstellen eines JIRA-Problems.

Beispiel für einen LangSmith-LLM-Trace

1ae0f88ab885f69.png

(OPTIONALER ABSCHNITT) Änderungen per Push in das GitHub-Repository übertragen

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 Workstations-Instanz 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 ~/github/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

15. Glückwunsch!

Sie haben das Lab erfolgreich 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.