1. Обзор
В ходе этой лабораторной работы вы создадите решение для автоматизации реализации пользовательских историй JIRA с помощью GenAI.
Что вы узнаете
Лаборатория состоит из нескольких основных частей:
- Разверните приложение Cloud Run для интеграции с API Gemini.
- Создайте и разверните приложение Atlassian Forge для JIRA.
- Используйте агенты LangChain ReAct для автоматизации задач GitLab.
Предварительные условия
- Эта лабораторная работа предполагает знакомство со средами Cloud Console и Cloud Shell.
2. Настройка и требования
Настройка облачного проекта
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы всегда можете обновить его.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (невозможно изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно идентифицируемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Альтернативно, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага и он сохраняется на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , которое используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой кодовой лаборатории не будет стоить много, если вообще что-то стоить. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Настройка среды
Откройте чат Близнецов.
Или введите «Спросить Близнецов» в строке поиска.
Включите Gemini для Google Cloud API:
Нажмите « Start chatting
» и ответьте на один из примеров вопросов или введите собственное приглашение, чтобы попробовать его.
Предлагает попробовать:
- Объясните Cloud Run в 5 ключевых моментах.
- Вы являетесь менеджером по продукту Google Cloud Run и объясните студенту Cloud Run в 5 коротких ключевых моментах.
- Вы являетесь менеджером по продукту Google Cloud Run и объясните Cloud Run сертифицированному разработчику Kubernetes в 5 коротких ключевых моментах.
- Вы являетесь менеджером по продукту Google Cloud Run и объясните старшему разработчику, когда вы будете использовать Cloud Run, а не GKE, в пяти кратких ключевых моментах.
Ознакомьтесь с Руководством по подсказкам, чтобы узнать больше о написании более эффективных подсказок.
Как Gemini для Google Cloud использует ваши данные
Обязательства Google по конфиденциальности
Google был одним из первых в отрасли, кто опубликовал обязательство по обеспечению конфиденциальности в области искусственного интеллекта и машинного обучения , в котором отражено наше убеждение в том, что клиенты должны иметь высочайший уровень безопасности и контроля над своими данными , хранящимися в облаке.
Данные, которые вы отправляете и получаете
Вопросы, которые вы задаете Gemini, включая любую входную информацию или код, который вы отправляете Gemini для анализа или завершения, называются подсказками. Ответы или дополнения кода, которые вы получаете от Gemini, называются откликами. Gemini не использует ваши подсказки или ответы в качестве данных для обучения своих моделей .
Шифрование подсказок
Когда вы отправляете запросы в Gemini, ваши данные при передаче шифруются и становятся входными данными для базовой модели в Gemini.
Данные программы, генерируемые Gemini
Gemini обучается на собственном коде Google Cloud, а также на выбранном стороннем коде. Вы несете ответственность за безопасность, тестирование и эффективность вашего кода , включая любое завершение, генерацию или анализ кода, которые предлагает вам Gemini.
Узнайте больше , как Google обрабатывает ваши запросы.
3. Варианты проверки подсказок
У вас есть несколько вариантов проверки подсказок.
Vertex AI Studio — это часть платформы Vertex AI от Google Cloud, специально разработанная для упрощения и ускорения разработки и использования генеративных моделей искусственного интеллекта.
Google AI Studio — это веб-инструмент для создания прототипов и экспериментов с быстрым проектированием и API Gemini.
- Веб-приложение Gemini (gemini.google.com)
Веб-приложение Google Gemini (gemini.google.com) — это веб-инструмент, призванный помочь вам изучить и использовать возможности моделей искусственного интеллекта Gemini от Google.
- Мобильное приложение Google Gemini для Android и приложение Google для iOS
4. Рассмотрите заявку
Создать учетную запись службы
Вернитесь в Google Cloud Console и активируйте Cloud Shell, щелкнув значок справа от панели поиска.
В открывшемся терминале выполните следующие команды, чтобы создать новую учетную запись службы и ключи.
Вы будете использовать эту учетную запись службы для вызовов API Vertex AI Gemini API из приложения Cloud Run.
Настройте детали проекта, используя сведения о проекте Qwiklabs.
Пример: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Создайте учетную запись службы.
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"
Предоставляйте роли.
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"
Если будет предложено авторизоваться, нажмите «Авторизовать», чтобы продолжить.
Включите необходимые службы для использования API-интерфейсов Vertex AI и чата Gemini.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Включите необходимые службы для использования API-интерфейсов Vertex AI и чата 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
Клонировать репозиторий GitHub
Клонируйте репозиторий GitHub.
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Открыть редактор Cloud Shell
С помощью пункта меню « File / Open Folder
» откройте « genai-for-developers
».
Откройте файл « devai-api/app/routes.py
», затем щелкните правой кнопкой мыши в любом месте файла и выберите « Gemini > Explain
this"
в контекстном меню.
Просмотрите объяснение Gemini для выбранного файла.
5. Конфигурация репозитория GitLab и набора инструментов.
В этой лабораторной работе вы будете использовать GitLabToolkit для автоматизации создания мерж-реквестов GitLab.
Обзор наборов инструментов LangChain
Наборы инструментов LangChain — это наборы инструментов, предназначенные для оптимизации и улучшения разработки приложений с помощью LangChain. Они предлагают различные функциональные возможности в зависимости от конкретного набора инструментов, но в целом они помогают:
- Подключение к внешним источникам данных : доступ и включение информации из API, баз данных и других внешних источников в ваши приложения LangChain.
- Расширенные методы подсказок . Используйте готовые подсказки или создавайте собственные для оптимизации взаимодействия с языковыми моделями.
- Создание цепочек и управление ими . Легко создавайте сложные цепочки и эффективно управляйте ими.
- Оценка и мониторинг : анализируйте производительность ваших приложений и цепочек LangChain.
Некоторые популярные наборы инструментов LangChain включают:
- Наборы инструментов Agent Executor : инструменты для разработки агентов, которые могут взаимодействовать с реальным миром посредством таких действий, как просмотр веб-страниц или выполнение кода.
- Набор инструментов для разработки подсказок : набор ресурсов для создания эффективных подсказок.
Обзор инструментария GitLab
Набор инструментов Gitlab содержит инструменты, которые позволяют агенту LLM взаимодействовать с репозиторием gitlab. Этот инструмент представляет собой оболочку библиотеки python-gitlab
.
Инструментарий GitLab может выполнять следующие задачи:
- Создать файл – создает новый файл в репозитории.
- Read File – читает файл из репозитория.
- Обновить файл — обновляет файл в репозитории.
- Создать запрос на включение — создает запрос на включение из рабочей ветки бота в базовую ветку.
- Get Issue s — извлекает задачи из репозитория.
- Получить проблему — получает подробную информацию о конкретной проблеме.
- Комментарий к проблеме — публикует комментарий по конкретной проблеме.
- Удалить файл – удаляет файл из репозитория.
Настройка проекта GitLab
Откройте GitLab , создайте новый проект и настройте токен доступа к проекту в разделе « Settings / Access Tokens
».
Используйте следующие данные:
- Имя токена:
devai-api-qwiklabs
- Роль:
Maintainer
- Выберите области:
api
Скопируйте и вставьте значение токена доступа во временный файл на вашем ноутбуке, оно будет использоваться на следующих шагах.
6. Подготовьтесь к развертыванию приложения в Cloud Run.
Вернитесь в редактор Cloud Shell и используйте существующий или откройте новый терминал.
Настройте детали проекта, используя сведения о проекте Qwiklabs.
Пример: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
Установите остальные переменные среды:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
Установите переменные среды, необходимые для интеграции с GitLab.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
Чтобы избежать раскрытия конфиденциальной информации в терминале, лучше всего использовать read -s GITLAB_PERSONAL_ACCESS_TOKEN
Это безопасный способ установить переменные среды без отображения значений в истории команд консоли. После запуска вам нужно вставить значение и нажать Enter. Вам также потребуется экспортировать переменную среды: export GITLAB_PERSONAL_ACCESS_TOKEN
Эта команда требует от вас обновить идентификатор пользователя GitLab и имя репозитория.
Пример: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"
export GITLAB_REPOSITORY="USERID/REPOSITORY"
Установите остальные переменные среды:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
Конфигурация трассировки LangSmith LLM
Настройте учетную запись, если вы хотите просматривать информацию об отслеживании агентов в LangSmith, в противном случае выполните команды как есть.
Создайте учетную запись LangSmith и сгенерируйте ключ API службы в разделе «Настройки». https://smith.langchain.com/settings
Установите переменные среды, необходимые для интеграции LangSmith.
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
Конфигурация JIRA
Эти значения не используются в этой лабораторной работе, поэтому вам не нужно обновлять их до значений вашего конкретного проекта JIRA перед выполнением команд.
Установите переменные среды, необходимые для развертывания службы 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
Создать ключ API
Создайте новый ключ API в разделе Cloud Console /API & Services/Credentials.
Этот ключ будет использоваться для аутентификации вызовов API JIRA к приложению Cloud Run.
В производственной среде вам необходимо настроить ограничения приложений и API для созданного ключа API. Ограничения приложений ограничивают использование ключа API конкретными веб-сайтами (например, вашим экземпляром JIRA).
Установите переменные среды, необходимые для развертывания службы Cloud Run.
export DEVAI_API_KEY=your-api-key
Создавайте секреты в Secret Manager
В этой лабораторной работе мы следуем передовым практикам и используем Secret Manager для хранения и ссылки на токены доступа, ключ API и значения ключа API LangChain в Cloud Run.
Создайте и сохраните необходимые секреты в 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 в Cloud Run
Убедитесь, что вы находитесь в правильной папке.
cd ~/genai-for-developers/devai-api
Разверните приложение в 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
Ответьте Y
, чтобы создать репозиторий Docker Artifact Registry.
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in
region [us-central1] will be created.
Do you want to continue (Y/n)? y
Просмотрите gcloud run deploy SERVICE_NAME --source=.
поток ниже. Узнать больше .
За кулисами эта команда использует buildpacks
Google Cloud и Cloud Build
для автоматического создания образов контейнеров из вашего исходного кода без необходимости устанавливать Docker на ваш компьютер или настраивать пакеты сборки или Cloud Build. То есть одна описанная выше команда делает то, что в противном случае потребовало бы команд gcloud builds submit
и команд gcloud run deploy
.
Если вы предоставили Dockerfile (что мы и сделали в этом репозитории), Cloud Build будет использовать его для создания образов контейнеров, а не полагаться на пакеты сборки для автоматического обнаружения и создания образов контейнеров. Чтобы узнать больше о сборочных пакетах, ознакомьтесь с документацией .
Просмотрите журналы Cloud Build в консоли .
Просмотрите созданный образ Docker в реестре артефактов .
Просмотрите сведения об экземпляре Cloud Run в Cloud Console .
Тестовое приложение
Проверьте конечную точку, выполнив команду Curl.
Перед запуском команды обновите URL-адрес службы Cloud Run.
Пример:
curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test
8. Автоматизируйте реализацию истории
Forge — это платформа, которая позволяет разработчикам создавать приложения, интегрируемые с продуктами Atlassian, такими как Jira, Confluence, Compass и Bitbucket.
Установите Forge CLI
Установите Forge CLI глобально, выполнив:
npm install -g @forge/cli
В этой лабораторной работе мы будем использовать переменные среды для входа в систему.
Настройка проекта JIRA
Используйте свою личную учетную запись для создания/просмотра проектов JIRA.
Просмотрите существующие проекты JIRA: https://admin.atlassian.com/
Создайте новый проект JIRA, используя свою личную учетную запись.
Перейдите на https://team.atlassian.com/your-work и нажмите а затем выберите
. После этого выберите «Программное обеспечение JIRA» — «Попробовать сейчас». Следуйте инструкциям для завершения создания проекта/сайта.
Выберите Программное обеспечение JIRA.
Создайте новый проект.
Создать токен Atlassian API
Создайте или используйте существующий токен Atlassian API для входа в CLI.
CLI использует ваш токен при выполнении команд.
- Перейдите на https://id.atlassian.com/manage/api-tokens .
- Нажмите Создать токен API .
- Введите метку, описывающую ваш токен API. Например, forge-api-token.
- Нажмите Создать .
- Нажмите «Копировать в буфер обмена» и закройте диалоговое окно.
Настройка параметров среды Forge
Вернитесь в Cloud Console и выполните приведенные ниже команды в терминале.
Войдите в интерфейс командной строки Forge, чтобы начать использовать команды Forge.
Установите свой адрес электронной почты JIRA/FORGE. Замените на свой адрес электронной почты.
export FORGE_EMAIL=your-email
Установите токен Forge API. Замените своим токеном API JIRA.
export FORGE_API_TOKEN=your-jira-api-token
Проверьте forge cli, выполнив команду ниже. На вопрос о сборе аналитики отвечайте « No
».
forge settings set usage-analytics false
Проверьте, вошли ли вы в систему.
forge whoami
Пример вывода.
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Создать приложение Forge
Убедитесь, что вы находитесь в папке « ~/genai-for-developers
».
Запустите команду для создания приложения Forge.
forge create
При появлении запроса используйте следующие значения:
- Имя приложения:
devai-jira-ui-qwiklabs
- Выберите категорию:
UI Kit
- Выберите продукт:
Jira
- Выберите шаблон:
jira-issue-panel
Перейдите в папку приложения.
cd devai-jira-ui-qwiklabs/
Запустите команду для установки зависимостей.
npm install
Запустите команду развертывания.
forge deploy
Пример вывода:
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.
Установите приложение.
forge install
При появлении запроса используйте следующие значения:
- Выберите продукт:
Jira
- Введите URL сайта:
your-domain.atlassian.net
Пример вывода:
Select the product your app uses. ? Select a product: Jira Enter your site. For example, your-domain.atlassian.net ? Enter the site URL: genai-for-developers.atlassian.net Installing your app onto an Atlassian site. Press Ctrl+C to cancel. ? Do you want to continue? Yes ✔ Install complete! Your app in the development environment is now installed in Jira on genai-for-developers.atlassian.net
Откройте свой сайт JIRA и создайте новую задачу JIRA со следующим описанием:
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.
Открыв задачу, вы увидите кнопку « devai-jira-ui-qwiklabs
».
Нажмите кнопку и просмотрите изменения в пользовательском интерфейсе.
Просмотр журналов серверной части Forge.
forge logs
Консоль разработчика Atlassian
Вы также можете просматривать и управлять развернутыми приложениями в Atlassian Developer Console .
Просмотрите журналы — переключитесь в среду Development
,
Просмотрите манифест и исходный код приложения Forge.
Откройте файл « devai-jira-ui-qwiklabs/manifest.yml
» и воспользуйтесь Gemini Code Assist, чтобы объяснить настройку.
Просмотрите объяснение.
Откройте следующие файлы и попросите Gemini Code Assist объяснить их:
-
devai-jira-ui-qwiklabs/src/frontend/index.jsx
-
devai-jira-ui-qwiklabs/src/resolvers/index.js
Обновите приложение Forge с помощью конечной точки DevAI API Cloud Run
Проверьте, установлен ли идентификатор проекта GCP:
gcloud config get project
Если нет, установите свой проект GCP, используя идентификатор проекта со страницы лаборатории Qwiklabs:
Пример: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Установите URL-адрес службы 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
Установите ключ API DEVAI:
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
Подтвердите, выполнив команду ниже:
forge variables list
Пример вывода
Обновите манифест и код приложения Forge.
Эти фрагменты кода можно найти в репозитории в папке sample-devai-jira-ui
.
Откройте файл манифеста в редакторе: devai-jira-ui-qwiklabs/manifest.yml
Добавьте строки ниже в конец файла — замените конечную точку Cloud Run той, которую вы развернули.
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
Откройте файл резольверов/индекса в редакторе: devai-jira-ui-qwiklabs/src/resolvers/index.js
Добавьте строки ниже после существующей функции getText
.
resolver.define('getApiKey', (req) => {
return process.env.DEVAI_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
Откройте файл интерфейса/индекса в редакторе: devai-jira-ui-qwiklabs/src/frontend/index.jsx
Замените index.jsx
содержимым ниже. Обновите ссылку на свой идентификатор пользователя/репозиторий GitLab.
Есть два места, где вам нужно обновить YOUR-GIT-USERID и YOUR-GIT-REPO.
Найдите эту строку в файле и внесите изменения:
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
Добавьте зависимости в файл package.json
:
"@forge/api": "4.0.0",
Запустите команду для установки зависимостей:
npm install
Разверните обновленное приложение:
forge deploy
Пример вывода:
ℹ 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.
Установите обновленное приложение:
forge install --upgrade
Пример вывода:
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
Откройте существующую или создайте новую задачу JIRA в своем проекте JIRA.
Вам нужно будет удалить предыдущую панель, если она уже была добавлена.
Нажмите « ...
» и в меню выберите «Удалить». После этого вы можете нажать на кнопку еще раз.
Проверьте комментарии Jira
Как только вы получите ответ от DEVAI API, к проблеме JIRA будет добавлен комментарий.
- Ссылка на мерж-реквест GitLab
Переключайтесь между вкладками « History
» и « Comments
», чтобы обновить представление.
Проверьте мерж-реквест GitLab
Откройте GitLab и проверьте наличие новых мерж-реквестов в вашем проекте.
LangSmith LLM следы
Если вы настроили трассировку LLM, откройте портал LangSmith и просмотрите трассировку LLM для вызова создания мерж-реквеста GitLab.
Пример трассировки LangSmith LLM.
9. Отправьте изменения в репозиторий GitHub.
(ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ)
Перейдите на веб-сайт GitHub и создайте новый репозиторий, чтобы перенести изменения для этой лабораторной работы в ваш личный репозиторий.
Вернитесь в Cloud Console и укажите имя пользователя и адрес электронной почты Git в терминале.
Обновите значения перед запуском команд.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
Сгенерируйте ключ SSH и добавьте его в репозиторий GitHub.
Обновите свою электронную почту перед запуском команд.
Не вводите парольную фразу и нажмите Enter несколько раз, чтобы завершить генерацию ключа.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Добавьте сгенерированный открытый ключ в свою учетную запись GitHub.
Откройте https://github.com/settings/keys и нажмите « New SSH key
».
В качестве имени ключа используйте « qwiklabs-key
» и скопируйте/вставьте вывод последней команды.
Вернитесь в терминал, зафиксируйте и отправьте изменения.
cd ~/genai-for-developers
git remote rm origin
Установите удаленное происхождение, используя репозиторий, созданный выше.
Замените URL-адресом вашего репозитория.
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
Добавьте, зафиксируйте и отправьте изменения.
git add .
git commit -m "lab changes"
git push -u origin main
10. Поздравляем!
Поздравляем, вы закончили лабораторную работу!
Что мы рассмотрели:
- Как развернуть приложения Cloud Run для интеграции с API Gemini.
- Как создать и развернуть приложение Atlassian Forge для JIRA.
- Как использовать агенты LangChain ReAct для автоматизации задач GitLab.
- Как просмотреть трассировки LLM в LangSmith.
Что дальше:
- Впереди еще больше практических занятий!
Очистить
Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом руководстве, либо удалите проект, содержащий ресурсы, либо сохраните проект и удалите отдельные ресурсы.
Удаление проекта
Самый простой способ избавиться от выставления счетов — удалить проект, созданный вами для этого руководства.
© Google LLC, 2024. Все права защищены. Google и логотип Google являются товарными знаками Google LLC. Все остальные названия компаний и продуктов могут быть товарными знаками соответствующих компаний, с которыми они связаны.