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

۱. مرور کلی

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

a4ba5d8788dc40.png

آنچه یاد خواهید گرفت

آزمایشگاه شامل چندین بخش اصلی است:

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

پیش‌نیازها

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

۲. تنظیمات و الزامات

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

تنظیمات محیط

چت جمینی را باز کنید.

bc3c899ac8bcf488.png

یا در نوار جستجو عبارت «از جمینی بپرسید» را تایپ کنید.

e1e9ad314691368a.png

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

990a0ceea7d05531.png

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

ed120d672468b412.png

نکاتی برای امتحان کردن:

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

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

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

تعهد گوگل به حفظ حریم خصوصی

گوگل یکی از اولین شرکت‌هایی بود که در این صنعت، تعهدنامه‌ای در مورد حریم خصوصی هوش مصنوعی/یادگیری ماشین منتشر کرد که در آن، باور ما مبنی بر اینکه مشتریان باید بالاترین سطح امنیت و کنترل را بر داده‌های ذخیره شده در فضای ابری خود داشته باشند، تشریح شده است.

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

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

رمزگذاری پیام‌های تبلیغاتی

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

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

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

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

۳. گزینه‌هایی برای آزمایش دستورالعمل‌ها

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

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

گوگل هوش مصنوعی استودیو (Google AI Studio) ابزاری مبتنی بر وب برای نمونه‌سازی اولیه و آزمایش با مهندسی سریع و رابط برنامه‌نویسی کاربردی (API) جمینی (Gemini) است.

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

۴. بررسی درخواست

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

به کنسول ابری گوگل برگردید و با کلیک روی آیکون سمت راست نوار جستجو، 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

سرویس‌های مورد نیاز برای استفاده از APIهای هوش مصنوعی Vertex و چت Gemini را فعال کنید.

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

سرویس‌های مورد نیاز برای استفاده از APIهای هوش مصنوعی Vertex و چت 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

مخزن گیت‌هاب را کلون کنید

مخزن گیت‌هاب را کلون کنید.

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

ویرایشگر Cloud Shell را باز کنید

7e71f46b6c7b67ca.png

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

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

۳۴۰۵۴e1fad005ff8.png

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

f73af988a723142.png

۵. پیکربندی مخزن و جعبه ابزار GitLab

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

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

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

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

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

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

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

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

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

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

راه‌اندازی پروژه گیت‌لب

گیت‌لب را باز کنید، یک پروژه جدید ایجاد کنید و توکن دسترسی پروژه را در قسمت « Settings / Access Tokens » تنظیم کنید.

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

  • نام رمز: devai-api-qwiklabs
  • نقش: Maintainer
  • انتخاب محدوده‌ها: api

c205fd7524c456dc.png

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

۶. آماده‌سازی برای استقرار برنامه در Cloud Run

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

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

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

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

۱۱۹۴۸۹def27115c8.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 ایجاد کنید و در بخش تنظیمات، یک کلید 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 خود به‌روزرسانی کنید.

متغیرهای محیطی مورد نیاز برای استقرار سرویس 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 Tokens، 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=-

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

برای ایجاد مخزن Docker مربوط به Artifact Registry، به 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 و Cloud Build گوگل کلود برای ساخت خودکار تصاویر کانتینر از کد منبع شما استفاده می‌کند، بدون اینکه نیازی به نصب داکر روی دستگاه شما یا تنظیم buildpacks یا Cloud Build باشد. یعنی، دستور واحدی که در بالا توضیح داده شد، کاری را انجام می‌دهد که در غیر این صورت نیاز به gcloud builds submit و gcloud run deploy .

اگر Dockerfile را ارائه داده باشید (که ما در این مخزن انجام دادیم)، Cloud Build از آن برای ساخت تصاویر کانتینر استفاده می‌کند، در حالی که برای شناسایی و ساخت خودکار تصاویر کانتینر به buildpackها متکی است. برای کسب اطلاعات بیشتر در مورد 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

۸. پیاده‌سازی خودکار داستان

فورج پلتفرمی است که به توسعه‌دهندگان اجازه می‌دهد برنامه‌هایی بسازند که با محصولات Atlassian مانند Jira، Confluence، Compass و Bitbucket ادغام شوند.

eda6f59ff15df25e.png

نصب Forge CLI

با اجرای دستور زیر، Forge CLI را به صورت سراسری نصب کنید:

npm install -g @forge/cli

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

e4e4e59cf8622e3f.png

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

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

پروژه‌های فعلی JIRA خود را بررسی کنید: https://admin.atlassian.com/

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

به آدرس https://team.atlassian.com/your-work بروید و کلیک کنید ۸۶۵۴۱۴۳۱۵۴cb۸۶۶۵.png و سپس انتخاب کنید 47b253090a08932.png پس از آن، «نرم‌افزار جیرا» را انتخاب کنید - «همین حالا امتحانش کن». برای تکمیل ایجاد پروژه/سایت، دستورالعمل‌ها را دنبال کنید.

5bab2a96e3b81383.png

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

785bc4d8bf920403.png

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

8a6e7cdc8224ffa0.png

ایجاد توکن API اطلسیان

برای ورود به رابط خط فرمان (CLI)، یک توکن API از Atlassian ایجاد یا استفاده کنید.

رابط خط فرمان (CLI) هنگام اجرای دستورات از توکن شما استفاده می‌کند.

  1. به آدرس https://id.atlassian.com/manage/api-tokens بروید.
  2. روی ایجاد توکن API کلیک کنید.
  3. یک برچسب برای توصیف توکن API خود وارد کنید. برای مثال، forge-api-token.
  4. روی ایجاد کلیک کنید.
  5. روی کپی در کلیپ‌بورد کلیک کنید و کادر محاوره‌ای را ببندید.

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

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

برای شروع استفاده از دستورات Forge، وارد رابط خط فرمان Forge شوید.

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

export FORGE_EMAIL=your-email

توکن API مربوط به Forge را تنظیم کنید. آن را با توکن 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

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 » را خواهید دید.

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

a64378e775125654.png

مشاهده لاگ‌های backend در forge.

forge logs

کنسول توسعه‌دهندگان اطلسیان

همچنین می‌توانید برنامه‌های مستقر شده را در کنسول توسعه‌دهندگان Atlassian مشاهده و مدیریت کنید.

۱۰۲۸۱۴۹۶d۸۱۸۱۵۹۷.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

۳۲۸۳۴۲۰f۱۹۰cda۲۱.png

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

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

gcloud config get project

اگر اینطور نیست، پروژه GCP خود را با استفاده از شناسه پروژه از صفحه آزمایشگاه Qwiklabs تنظیم کنید:

مثال: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

آدرس سرویس 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

این قطعه کدها را می‌توانید در مخزن (repo) و در پوشه sample-devai-jira-ui پیدا کنید.

فایل مانیفست را در ویرایشگر باز کنید: devai-jira-ui-qwiklabs/manifest.yml

خطوط زیر را به انتهای فایل اضافه کنید - Cloud Run endpoint را با نقطه پایانی که مستقر کرده‌اید جایگزین کنید.

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 با محتوای زیر جایگزین کنید. لینک مربوط به شناسه کاربری/مخزن گیت‌لب خود را به‌روزرسانی کنید.

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

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.

اپلیکیشن تست فورج

یک وظیفه JIRA موجود را باز کنید یا یک وظیفه JIRA جدید در پروژه JIRA خود ایجاد کنید.

اگر پنل قبلی اضافه شده است، باید آن را بردارید.

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

460503e8b2014b52.png

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

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

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

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

۹۵۳۹d2bd3cbdad28.png

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

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

4c2345a89bfe71ee.png

fa3a552923cd70f1.png

ردپای LangSmith LLM

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

نمونه‌ای از مدرک کارشناسی ارشد حقوق از دانشگاه لانگ اسمیت.

۱ae0f88ab885f69.png

۹. تغییرات خود را به مخزن گیت‌هاب ارسال کنید

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

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

به 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

با استفاده از مخزنی که در بالا ایجاد شد، remote origin را تنظیم کنید.

با آدرس مخزن خود جایگزین کنید.

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

۱۰. تبریک می‌گویم!

تبریک می‌گویم، آزمایشگاه را تمام کردید!

آنچه ما پوشش داده‌ایم:

  • نحوه استقرار برنامه‌های Cloud Run برای ادغام با APIهای Gemini.
  • نحوه ایجاد و استقرار برنامه Atlassian Forge برای JIRA.
  • نحوه استفاده از LangChain ReAct Agents برای خودکارسازی وظایف GitLab.
  • چگونه می‌توان ردپاهای LLM را در LangSmith مرور کرد.

قدم بعدی چیست؟

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

تمیز کردن

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

حذف پروژه

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

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