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

آنچه یاد خواهید گرفت
آزمایشگاه شامل چندین بخش اصلی است:
- استقرار برنامه Cloud Run برای ادغام با API های Gemini
- ایجاد و استقرار برنامه Atlassian Forge برای JIRA
- استفاده از LangChain ReAct Agents برای خودکارسازی وظایف GitLab
پیشنیازها
- این آزمایشگاه آشنایی با محیطهای Cloud Console و Cloud Shell را پیشفرض قرار میدهد.
۲. تنظیمات و الزامات
راهاندازی پروژه ابری
- وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .



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

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

فعال کردن 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 برای یک توسعهدهنده ارشد در 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)
برنامه وب گوگل جمینی (gemini.google.com) ابزاری مبتنی بر وب است که برای کمک به شما در کشف و استفاده از قدرت مدلهای هوش مصنوعی گوگل جمینی طراحی شده است.
- اپلیکیشن موبایل گوگل جمینی برای اندروید و اپلیکیشن گوگل برای iOS
۴. بررسی درخواست
ایجاد حساب کاربری سرویس
به کنسول ابری گوگل برگردید و با کلیک روی آیکون سمت راست نوار جستجو، 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 و چت 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 را باز کنید

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

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

۵. پیکربندی مخزن و جعبه ابزار 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

مقدار Access Token را کپی کرده و در یک فایل موقت روی لپتاپ خود قرار دهید، در مراحل بعدی از آن استفاده خواهد شد.
۶. آمادهسازی برای استقرار برنامه در 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 کنید: 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 خود بهروزرسانی کنید.
متغیرهای محیطی مورد نیاز برای استقرار سرویس 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=. بررسی کنید. اطلاعات بیشتر .

در پشت صحنه، این دستور از 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 ادغام شوند.

نصب Forge CLI
با اجرای دستور زیر، Forge CLI را به صورت سراسری نصب کنید:
npm install -g @forge/cli
برای این آزمایش، ما از متغیرهای محیطی برای ورود به سیستم استفاده خواهیم کرد.

راه اندازی پروژه جیرا
از حساب شخصی خود برای ایجاد/مشاهده پروژههای JIRA استفاده کنید.
پروژههای فعلی JIRA خود را بررسی کنید: https://admin.atlassian.com/
با استفاده از حساب شخصی خود، یک پروژه جدید JIRA ایجاد کنید.
به آدرس https://team.atlassian.com/your-work بروید و کلیک کنید
و سپس انتخاب کنید
پس از آن، «نرمافزار جیرا» را انتخاب کنید - «همین حالا امتحانش کن». برای تکمیل ایجاد پروژه/سایت، دستورالعملها را دنبال کنید.

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

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

ایجاد توکن API اطلسیان
برای ورود به رابط خط فرمان (CLI)، یک توکن API از Atlassian ایجاد یا استفاده کنید.
رابط خط فرمان (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
توکن 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

به پوشه برنامه تغییر دهید.
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 » را خواهید دید.
روی دکمه کلیک کنید و تغییرات رابط کاربری را بررسی کنید.

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

بررسی لاگها - به محیط 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 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
خروجی نمونه

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

خروجی نمونه:
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 خود ایجاد کنید.
اگر پنل قبلی اضافه شده است، باید آن را بردارید.
روی « ... » کلیک کنید و گزینه حذف را از منو انتخاب کنید. پس از آن، میتوانید دوباره روی دکمه کلیک کنید.

نظرات جیرا را بررسی کنید
به محض دریافت پاسخ از DEVAI API، نظری در مورد مشکل JIRA اضافه خواهد شد.
- لینک درخواست ادغام GitLab
برای بهروزرسانی نما، بین زبانههای « History » و « Comments » جابهجا شوید.

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


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

۹. تغییرات خود را به مخزن گیتهاب ارسال کنید
(بخش اختیاری)
به وبسایت گیتهاب بروید و یک مخزن جدید ایجاد کنید تا تغییرات این آزمایشگاه را به مخزن شخصی خود ارسال کنید.
به 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 هستند. سایر نامهای شرکتها و محصولات ممکن است علائم تجاری شرکتهای مربوطه باشند که با آنها مرتبط هستند.