پیاده سازی داستان های کاربر JIRA با GenAI

1. بررسی اجمالی

در این آزمایشگاه، شما راه حلی برای خودکارسازی اجرای داستان های کاربر JIRA با GenAI خواهید ساخت.

a4ba5d8788dc40.png

آنچه خواهید آموخت

چندین بخش اصلی در آزمایشگاه وجود دارد:

  • برنامه Cloud Run را برای ادغام با API های Gemini اجرا کنید
  • برنامه Atlassian Forge را برای JIRA ایجاد و اجرا کنید
  • از LangChain ReAct Agents برای اتوماسیون وظایف GitLab استفاده کنید

پیش نیازها

  • این آزمایشگاه آشنایی با محیط های Cloud Console و Cloud Shell را فرض می کند.

2. راه اندازی و الزامات

راه اندازی پروژه ابری

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

راه اندازی محیط

چت Gemini را باز کنید.

bc3c899ac8bcf488.png

یا «Ask Gemini» را در نوار جستجو تایپ کنید.

e1e9ad314691368a.png

فعال کردن Gemini برای Google Cloud API:

990a0ceea7d05531.png

روی " Start chatting " کلیک کنید و یکی از نمونه سوالات را دنبال کنید یا درخواست خود را تایپ کنید تا آن را امتحان کنید.

ed120d672468b412.png

درخواست برای امتحان کردن:

  • Cloud Run را در 5 نکته کلیدی توضیح دهید.
  • شما مدیر محصول Google Cloud Run هستید، Cloud Run را در 5 نکته کلیدی کوتاه برای دانش آموز توضیح دهید.
  • شما مدیر محصول Google Cloud Run هستید، در 5 نکته کلیدی کوتاه، Cloud Run را به یک توسعه دهنده معتبر Kubernetes توضیح دهید.
  • شما مدیر محصول Google Cloud Run هستید، توضیح دهید که چه زمانی از Cloud Run در مقابل GKE برای یک برنامه نویس ارشد در 5 نکته کلیدی کوتاه استفاده می کنید.

برای کسب اطلاعات بیشتر در مورد نوشتن دستورات بهتر، راهنمای درخواست را بررسی کنید.

Gemini for Google Cloud چگونه از داده های شما استفاده می کند

تعهد حریم خصوصی Google

Google یکی از اولین شرکت‌هایی در این صنعت بود که تعهد حفظ حریم خصوصی AI/ML را منتشر کرد، که این اعتقاد ما را نشان می‌دهد که مشتریان باید بالاترین سطح امنیت و کنترل را بر داده‌های ذخیره‌شده در ابر داشته باشند.

داده هایی که ارسال و دریافت می کنید

به سؤالاتی که از Gemini می‌پرسید، از جمله اطلاعات ورودی یا کدی که برای تجزیه و تحلیل یا تکمیل به Gemini ارسال می‌کنید، درخواست‌ها گفته می‌شود. پاسخ ها یا تکمیل کدهایی که از جمینی دریافت می کنید، پاسخ نامیده می شوند. Gemini از دستورات یا پاسخ های شما به عنوان داده برای آموزش مدل های خود استفاده نمی کند .

رمزگذاری دستورات

هنگامی که درخواست‌هایی را به Gemini ارسال می‌کنید، داده‌های شما در حین انتقال به عنوان ورودی مدل اصلی در Gemini رمزگذاری می‌شوند .

داده های برنامه تولید شده از Gemini

Gemini روی کدهای Google Cloud شخص اول و همچنین کدهای شخص ثالث منتخب آموزش دیده است. شما مسئول امنیت، آزمایش و اثربخشی کد خود هستید ، از جمله هر گونه تکمیل، تولید یا تجزیه و تحلیل کدی که Gemini به شما ارائه می دهد.

بیشتر بیاموزید که چگونه Google با درخواست‌های شما برخورد می‌کند.

3. گزینه هایی برای آزمایش فرمان ها

شما چندین گزینه برای آزمایش دستورات دارید.

Vertex AI Studio بخشی از پلتفرم Vertex AI Google Cloud است که به طور خاص برای ساده سازی و تسریع توسعه و استفاده از مدل های هوش مصنوعی مولد طراحی شده است.

Google AI Studio یک ابزار مبتنی بر وب برای نمونه سازی و آزمایش با مهندسی سریع و Gemini API است.

برنامه وب Google Gemini (gemini.google.com) یک ابزار مبتنی بر وب است که برای کمک به شما در کشف و استفاده از قدرت مدل‌های هوش مصنوعی Gemini Google طراحی شده است.

4. برنامه را بررسی کنید

ایجاد حساب سرویس

به Google Cloud Console برگردید و Cloud Shell را با کلیک بر روی نماد سمت راست نوار جستجو فعال کنید.

3e0c761ca41f315e.png

در ترمینال باز شده، دستورات زیر را برای ایجاد یک حساب سرویس و کلیدهای جدید اجرا کنید.

از این حساب سرویس برای برقراری تماس های 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"

اگر از شما خواسته شد که مجوز دهید، برای ادامه روی "مجوز" کلیک کنید.

6356559df3eccdda.png

برای استفاده از Vertex AI API و Gemini، سرویس های مورد نیاز را فعال کنید.

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

برای استفاده از Vertex AI API و 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

ویرایشگر پوسته ابری را باز کنید

7e71f46b6c7b67ca.png

با استفاده از آیتم منوی " File / Open Folder "، " genai-for-developers " را باز کنید.

فایل " devai-api/app/routes.py " را باز کنید و سپس در هر نقطه از فایل کلیک راست کرده و " Gemini > Explain this" از منوی زمینه انتخاب کنید.

34054e1fad005ff8.png

توضیحات Gemini را برای فایل انتخابی مرور کنید.

f73af988a723142.png

5. مخزن GitLab و پیکربندی Toolkit

در این آزمایشگاه، از GitLabToolkit برای خودکارسازی درخواست‌های ادغام GitLab استفاده خواهید کرد.

بررسی اجمالی جعبه ابزار LangChain

LangChain Toolkits مجموعه‌ای از ابزارها هستند که برای ساده‌سازی و بهبود توسعه برنامه‌ها با LangChain طراحی شده‌اند. آنها بسته به جعبه ابزار خاص عملکردهای مختلفی را ارائه می دهند، اما به طور کلی در موارد زیر کمک می کنند:

  • اتصال به منابع داده خارجی : به اطلاعات APIها، پایگاه‌های داده و سایر منابع خارجی دسترسی پیدا کرده و در برنامه‌های LangChain خود قرار دهید.
  • تکنیک‌های پیشنهادی پیشرفته : از دستورات از پیش ساخته شده استفاده کنید یا موارد سفارشی را برای بهینه‌سازی تعامل با مدل‌های زبان ایجاد کنید.
  • ایجاد و مدیریت زنجیره : زنجیره های پیچیده را به راحتی بسازید و آنها را به طور موثر مدیریت کنید.
  • ارزیابی و نظارت : عملکرد برنامه ها و زنجیره های LangChain خود را تجزیه و تحلیل کنید.

برخی از ابزارهای محبوب LangChain عبارتند از:

  • Agent Executor Toolkits : ابزارهایی برای توسعه عواملی که می توانند از طریق اقداماتی مانند مرور وب یا اجرای کد با دنیای واقعی تعامل داشته باشند.
  • جعبه ابزار مهندسی سریع : مجموعه ای از منابع برای ایجاد اعلان های مؤثر.

نمای کلی جعبه ابزار GitLab

جعبه ابزار Gitlab شامل ابزارهایی است که یک عامل LLM را قادر می سازد با یک مخزن gitlab تعامل داشته باشد. این ابزار یک پوشش برای کتابخانه python-gitlab است.

جعبه ابزار GitLab می تواند وظایف زیر را انجام دهد:

  • ایجاد فایل - یک فایل جدید در مخزن ایجاد می کند.
  • Read File - فایلی را از مخزن می خواند.
  • به روز رسانی فایل - یک فایل را در مخزن به روز می کند.
  • ایجاد درخواست کشش - یک درخواست کشش از شاخه کاری ربات به شاخه پایه ایجاد می کند.
  • دریافت Issue s - مسائل را از مخزن واکشی می کند.
  • دریافت مشکل - جزئیات مربوط به یک مشکل خاص را واکشی می کند.
  • نظر در مورد مسئله - نظری را در مورد یک موضوع خاص ارسال می کند.
  • حذف فایل - یک فایل را از مخزن حذف می کند.

راه اندازی پروژه GitLab

GitLab را باز کنید، یک پروژه جدید ایجاد کنید و Token Access Token را در قسمت " Settings / Access Tokens " راه اندازی کنید.

از جزئیات زیر استفاده کنید:

  • نام رمز: devai-api-qwiklabs
  • نقش: Maintainer
  • دامنه ها را انتخاب کنید: api

c205fd7524c456dc.png

مقدار Access Token را در یک فایل موقت روی لپ‌تاپ خود کپی و جای‌گذاری کنید، در مراحل بعدی استفاده می‌شود.

6. برای استقرار برنامه در Cloud Run آماده شوید

به ویرایشگر پوسته ابری بازگردید و از ترمینال موجود یا باز کردن یک ترمینال جدید استفاده کنید.

941f0c1692037664.png

جزئیات پروژه را با استفاده از جزئیات پروژه 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 است، این روشی امن برای تنظیم متغیرهای محیطی بدون نمایش مقدار در تاریخچه فرمان کنسول است. پس از اجرای آن باید مقدار را Paste کرده و اینتر را بزنید. شما باید متغیر محیطی را نیز صادر کنید: export GITLAB_PERSONAL_ACCESS_TOKEN

این دستور از شما می خواهد که نام کاربری و نام مخزن GitLab خود را به روز کنید.

مثال: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

119489def27115c8.png

export GITLAB_REPOSITORY="USERID/REPOSITORY"

بقیه متغیرهای محیط را تنظیم کنید:

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

پیکربندی ردیابی LangSmith LLM

اگر می‌خواهید اطلاعات ردیابی عامل را در LangSmith مشاهده کنید، حساب را راه‌اندازی کنید، در غیر این صورت دستورات را همانطور که هست اجرا کنید.

یک حساب LangSmith ایجاد کنید و یک کلید Service 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 ایجاد کنید.

این کلید برای احراز هویت تماس‌های JIRA API به برنامه Cloud Run استفاده می‌شود.

برای محیط تولید، می‌توانید محدودیت‌های برنامه و API را برای کلید API ایجاد شده پیکربندی کنید. محدودیت‌های برنامه، استفاده از کلید API را به وب‌سایت‌های خاصی محدود می‌کند (مثلاً نمونه JIRA شما).

متغیرهای محیطی مورد نیاز برای استقرار سرویس Cloud Run را تنظیم کنید.

export DEVAI_API_KEY=your-api-key

ایجاد اسرار در Secret Manager

برای این آزمایشگاه، ما بهترین شیوه‌ها را دنبال می‌کنیم و از Secret Manager برای ذخیره و ارجاع به مقادیر Access Token، API Key و LangChain API Key در 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

برای ایجاد مخزن Artifact Registry Docker به Y پاسخ دهید.

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=. جریان زیر بیشتر بدانید .

5c122a89dd11822e.png

در پشت صحنه، این دستور از buildpacks Google Cloud و Cloud Build برای ساخت خودکار تصاویر کانتینر از کد منبع شما بدون نیاز به نصب Docker بر روی دستگاه یا تنظیم buildpacks یا Cloud Build استفاده می کند. یعنی فرمان واحدی که در بالا توضیح داده شد، کاری را انجام می دهد که در غیر این صورت gcloud builds submit و دستورات gcloud run deploy نیاز دارد.

اگر Dockerfile را ارائه کرده‌اید (که ما در این مخزن انجام دادیم)، Cloud Build از آن برای ساخت تصاویر کانتینر در مقابل تکیه بر بسته‌های ساخت برای شناسایی و ساخت خودکار تصاویر کانتینر استفاده می‌کند. برای کسب اطلاعات بیشتر در مورد buildpack ها، مستندات را بررسی کنید.

گزارش‌های Cloud Build را در کنسول مرور کنید.

تصویر داکر ایجاد شده را در آرتیفکت رجیستری بررسی کنید.

جزئیات نمونه Cloud Run را در Cloud Console مرور کنید.

نرم افزار تست

نقطه پایانی را با اجرای دستور curl تست کنید.

قبل از اجرای دستور، آدرس اینترنتی سرویس 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 یکپارچه شوند.

eda6f59ff15df25e.png

Forge CLI را نصب کنید

Forge CLI را با اجرای:

npm install -g @forge/cli

برای این آزمایشگاه، از متغیرهای محیطی برای ورود استفاده خواهیم کرد.

e4e4e59cf8622e3f.png

راه اندازی پروژه JIRA

از حساب شخصی خود برای ایجاد/مشاهده پروژه های JIRA استفاده کنید.

پروژه های JIRA موجود خود را مرور کنید: https://admin.atlassian.com/

با استفاده از حساب شخصی خود یک پروژه جدید JIRA ایجاد کنید.

به https://team.atlassian.com/your-work بروید و کلیک کنید 8654143154cb8665.png و سپس انتخاب کنید 47b253090a08932.png . پس از آن، "JIRA Software" - "Try it now" را انتخاب کنید. برای تکمیل ساخت پروژه/سایت، دستورات را دنبال کنید.

5bab2a96e3b81383.png

نرم افزار JIRA را انتخاب کنید.

785bc4d8bf920403.png

یک پروژه جدید ایجاد کنید.

8a6e7cdc8224ffa0.png

توکن Atlassian API ایجاد کنید

یک نشانه Atlassian API برای ورود به CLI ایجاد یا استفاده کنید.

CLI هنگام اجرای دستورات از رمز شما استفاده می کند.

  1. به https://id.atlassian.com/manage/api-tokens بروید.
  2. روی ایجاد نشانه API کلیک کنید.
  3. یک برچسب برای توصیف نشانه API خود وارد کنید. مثلا forge-api-token.
  4. روی ایجاد کلیک کنید.
  5. روی Copy to clipboard کلیک کنید و کادر گفتگو را ببندید.

تنظیمات محیط Forge را پیکربندی کنید

به Cloud Console برگردید و دستورات زیر را در ترمینال اجرا کنید.

برای شروع استفاده از دستورات Forge وارد Forge CLI شوید.

آدرس ایمیل JIRA/FORGE خود را تنظیم کنید. با آدرس ایمیل خود جایگزین کنید.

export FORGE_EMAIL=your-email

رمز Forge API را تنظیم کنید. با توکن JIRA API خود جایگزین کنید.

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

bc94e2da059f15cf.png

به پوشه برنامه تغییر دهید.

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
  • آدرس سایت را وارد کنید: 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 " را خواهید دید.

روی دکمه کلیک کنید و تغییرات را در UI بررسی کنید.

a64378e775125654.png

مشاهده سیاهههای مربوط به جعل باطن.

forge logs

کنسول توسعه دهنده Atlassian

همچنین می‌توانید برنامه‌های مستقر شده را در Atlassian Developer Console مشاهده و مدیریت کنید.

10281496d8181597.png

بررسی گزارش‌ها - تغییر به محیط Development ،

d5c3b1a18dee166e.png

مانیفست برنامه Forge و کد منبع را مرور کنید

فایل " devai-jira-ui-qwiklabs/manifest.yml " را باز کنید و از Gemini Code Assist برای توضیح پیکربندی استفاده کنید.

8710dc7cd343a6a4.png

توضیح بررسی

e4c9052a0337527d.png

فایل های زیر را باز کنید و از Gemini Code Assist بخواهید که آنها را توضیح دهد:

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

3283420f190cda21.png

برنامه Forge را با DevAI API Cloud Run به‌روزرسانی کنید

بررسی کنید که آیا GCP PROJECT ID تنظیم شده است:

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

خروجی نمونه

f63a751f0d6211ff.png

مانیفست و کد برنامه 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

باز کردن فایل Resolvers/index در ویرایشگر: 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;
});

فایل frontend/index را در ویرایشگر باز کنید: 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>
);

Redeploy برنامه 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

ef17c7da9b2962d8.png

خروجی نمونه:

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 خود ایجاد کنید.

اگر پنل قبلی اضافه شده باشد، باید آن را حذف کنید.

روی « ... » کلیک کنید و از منوی حذف را انتخاب کنید. پس از آن، می توانید دوباره بر روی دکمه کلیک کنید.

460503e8b2014b52.png

نظرات جیرا را بررسی کنید

پس از دریافت پاسخ از DEVAI API، یک نظر در مورد مشکل JIRA اضافه خواهد شد.

  • پیوند درخواست ادغام GitLab

برای تازه کردن نما، بین برگه‌های « History » و « Comments » جابه‌جا شوید.

9539d2bd3cbdad28.png

درخواست ادغام GitLab را تأیید کنید

GitLab را باز کنید و درخواست های ادغام جدید را در پروژه خود بررسی کنید.

4c2345a89bfe71ee.png

fa3a552923cd70f1.png

ردیابی لانگ اسمیت LLM

اگر ردیابی LLM را پیکربندی کرده اید، پورتال LangSmith را باز کنید و ردیابی LLM را برای تماس ایجاد درخواست ادغام GitLab بررسی کنید.

نمونه ردیابی LangSmith LLM.

1ae0f88ab885f69.png

9. تغییرات خود را به مخزن GitHub فشار دهید

(بخش اختیاری)

به وب سایت GitHub بروید و یک مخزن جدید ایجاد کنید تا تغییرات مربوط به این آزمایشگاه را در مخزن شخصی خود اعمال کنید.

به Cloud Console برگردید و نام کاربری و ایمیل Git را در ترمینال تنظیم کنید.

قبل از اجرای دستورات، مقادیر را به روز کنید.

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

کلید SSH را تولید کنید و آن را در مخزن GitHub اضافه کنید.

قبل از اجرای دستورات ایمیل خود را به روز کنید.

عبارت عبور را وارد نکنید و چندین بار اینتر را بزنید تا تولید کلید کامل شود.

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 Agents برای اتوماسیون وظایف GitLab.
  • نحوه بررسی ردیابی های LLM در LangSmith.

بعدش چیه:

  • جلسات عملی بیشتری در راه است!

پاک کن

برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش، یا پروژه حاوی منابع را حذف کنید یا پروژه را نگه دارید و منابع فردی را حذف کنید.

حذف پروژه

ساده ترین راه برای حذف صورتحساب، حذف پروژه ای است که برای آموزش ایجاد کرده اید.

©2024 Google LLC همه حقوق محفوظ است. Google و لوگوی Google علائم تجاری Google LLC هستند. همه نام‌های شرکت و محصولات دیگر ممکن است علائم تجاری شرکت‌های مربوطه باشند که با آنها مرتبط هستند.