Developer Connect की मदद से, GitHub को Google Cloud से कनेक्ट करना

1. परिचय

इस कोडलैब में, Developer Connect का इस्तेमाल करके, GitHub डेटाबेस से सुरक्षित कनेक्शन बनाया जाएगा. साथ ही, उस कनेक्शन का इस्तेमाल करके, Gemini Enterprise Agent Platform पर एजेंट रनटाइम का इस्तेमाल करके, सीधे तौर पर एजेंट को डिप्लॉय किया जाएगा.

Developer Connect, Google के डेवलपर टूल के अलावा अन्य डेवलपर टूल से कनेक्टिविटी सेट अप करता है. इसके लिए, यह आपको अनुमतियों, पुष्टि करने, और नेटवर्क कॉन्फ़िगरेशन के बारे में जानकारी देता है. इससे, Google Cloud की सेवाओं में सीधे तौर पर अपने ऐप्लिकेशन कोड को पुल करने का नेटिव तरीका मिलता है.

इस कोडलैब के लिए, हम Developer Connect Git Repository Connection का इस्तेमाल करेंगे. इससे Gemini Enterprise Agent Platform पर एजेंट रनटाइम का इस्तेमाल करके, सीधे तौर पर एजेंट को डिप्लॉय किया जा सकेगा. Developer Connect, GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, Gitlab, और GitLab Enterprise के साथ काम करता है. इस कोडलैब में, हम GitHub से कनेक्ट करने का तरीका जानेंगे.

आपको क्या करना होगा

  • Agent Runtime पर एक बुनियादी एजेंट बनाएं और उसे GitHub पर पुश करें
  • अपनी GitHub रिपॉज़िटरी को Google Cloud से लिंक करने के लिए, Developer Connect का इस्तेमाल करें
  • कनेक्ट की गई रिपॉज़िटरी का इस्तेमाल करके, एजेंट को Agent Runtime पर डिप्लॉय करें
  • डिप्लॉय किए गए रिमोट एजेंट को चालू करना और उसकी जांच करना

आपको किन चीज़ों की ज़रूरत होगी

  • कोई वेब ब्राउज़र, जैसे कि Chrome
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट
  • GitHub खाता और रिपॉज़िटरी का ऐक्सेस रखने वाला निजी ऐक्सेस टोकन (क्लासिक)

यह कोडलैब, सभी लेवल के डेवलपर के लिए है. इसमें शुरुआती डेवलपर भी शामिल हैं. इस कोडलैब में मैनेज किए गए ज़्यादातर रिसॉर्स, सर्वरलेस एपीआई हैं. इनका शुल्क 1 डॉलर से कम होना चाहिए.

2. शुरू करने से पहले

Google Cloud प्रोजेक्ट बनाना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.

Cloud Shell शुरू करना

  1. Google Cloud कंसोल में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें.
  2. Cloud Shell से कनेक्ट होने के बाद, अपने क्रेडेंशियल की पुष्टि करें:
    gcloud auth list
    
  3. पुष्टि करें कि आपका प्रोजेक्ट कॉन्फ़िगर किया गया है:
    export PROJECT_ID=$(gcloud config get-value project)
    
  4. अगर आपका प्रोजेक्ट उम्मीद के मुताबिक सेट नहीं है, तो इसे सेट करें:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

एपीआई चालू करें

Developer Connect और Vertex AI के लिए, सभी ज़रूरी एपीआई चालू करने के लिए यह निर्देश चलाएं:

gcloud services enable \
  developerconnect.googleapis.com \
  aiplatform.googleapis.com

3. एजेंट का सोर्स कोड तैयार करना

सबसे पहले, आपको अपने एजेंट के सोर्स कोड को सेव करने के लिए एक नई GitHub रिपॉज़िटरी बनानी होगी. इसके बाद, उसमें एक सामान्य Python रीज़निंग एजेंट जोड़ना होगा.

  1. अपने GitHub खाते में लॉग इन करें.
  2. devconnect-agent नाम की एक नई, निजी रिपॉज़िटरी बनाएं.
  3. इसे README या .gitignore से शुरू न करें.

एजेंट की फ़ाइलों को स्थानीय तौर पर बनाएं

Cloud Shell टर्मिनल में वापस जाकर, अपने एजेंट के लिए एक डायरेक्ट्री बनाएं और उसकी डिपेंडेंसी तय करें:

mkdir -p devconnect-agent/test
cd devconnect-agent

test डायरेक्ट्री में requirements.txt फ़ाइल बनाएं. इसमें एजेंट रनटाइम लाइब्रेरी के बारे में जानकारी दें:

cat <<EOF > test/requirements.txt
google-cloud-aiplatform[agent_engines]
EOF

test डायरेक्ट्री में my_agent.py फ़ाइल बनाएं. इस स्क्रिप्ट में, सूची से जुड़ी क्वेरी के जवाब देने वाले एक सामान्य एजेंट के बारे में बताया गया है:

cat <<EOF > test/my_agent.py
class MyAgent:

  def query_none(self):
    return None

  def query_list(self):
    return [1, 2, 3]

  def register_operations(self):
    return {
        "": ["query_none", "query_list"],
    }

agent = MyAgent()
EOF

कोड को GitHub पर पुश करना

Git रिपॉज़िटरी शुरू करें और अपने कोड को नई GitHub रिपॉज़िटरी में पुश करें.

`<YOUR_GITHUB_USERNAME>` को अपने GitHub उपयोगकर्ता नाम से और `<YOUR_GITHUB_TOKEN>` को अपने निजी ऐक्सेस टोकन से बदलें.

git init
git branch -M main
git add .
git commit -m "Initial commit of agent source"
git remote add origin https://<YOUR_GITHUB_TOKEN>@github.com/<YOUR_GITHUB_USERNAME>/devconnect-agent.git
git push -u origin main

4. Developer Connect को कॉन्फ़िगर करना

अब आपकी रिपॉज़िटरी GitHub पर है. Developer Connect, आपके Google Cloud प्रोजेक्ट को इससे सुरक्षित तरीके से लिंक करेगा.

आईएएम अनुमतियां सेट अप करना

सेवा की पहचान जनरेट करके, Developer Connect को अपने Google Cloud प्रोजेक्ट को ऐक्सेस करने की अनुमति दें.

gcloud beta services identity create \
    --service=developerconnect.googleapis.com \
    --project=$PROJECT_ID

Google Cloud Console या gcloud CLI का इस्तेमाल करके, कनेक्शन बनाया जा सकता है और उसे लिंक किया जा सकता है.

पहला विकल्प: Google Cloud Console का इस्तेमाल करके

  1. Google Cloud Console में, Developer Connect पर जाएं.
  2. GitHub में जाकर, कनेक्ट करें पर क्लिक करें
  3. अपने कनेक्शन को नाम दें my-github-connection और उसे us-central1 में चुनें
  4. Developer Connect GitHub ऐप्लिकेशन को अनुमति देने के लिए, दिए गए निर्देशों का पालन करें.
  5. अपने प्रोजेक्ट से लिंक करने के लिए, devconnect-agent रिपॉज़िटरी चुनें.

दूसरा विकल्प: gcloud सीएलआई का इस्तेमाल करना

अपनी GitHub रिपॉज़िटरी को लिंक करने के लिए, Cloud Shell में यहां दी गई कमांड चलाएं.

सबसे पहले, आपको Developer Connect सेवा खाते को Secret Manager का ऐक्सेस देना होगा.

# Get the service account
SERVICE_ACCOUNT=$(gcloud beta services identity create \
    --service=developerconnect.googleapis.com \
    --project=$PROJECT_ID \
    --format="value(email)")

# Grant access to Secret Manager
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT" \
    --role="roles/secretmanager.admin"
# 1. Create the general Developer Connect connection to GitHub
gcloud developer-connect connections create my-github-connection \
    --location=us-central1 \
    --github-config-app=developer-connect
# 2. Link your specific agent repository to the connection
# Replace <YOUR_GITHUB_USERNAME> with your actual GitHub username
gcloud developer-connect connections git-repository-links create devconnect-agent \
    --connection=my-github-connection \
    --location=us-central1 \
    --clone-uri=https://github.com/<YOUR_GITHUB_USERNAME>/devconnect-agent.git

5. Developer Connect से एजेंट को डिप्लॉय करना

अपनी रिपॉज़िटरी को सुरक्षित तरीके से कनेक्ट करने के बाद, सीधे तौर पर एजेंट रनटाइम एजेंट को डिप्लॉय किया जा सकता है. इसके लिए, डेवलपर कनेक्ट लिंक का इस्तेमाल किया जा सकता है.

एजेंट रनटाइम को डिप्लॉय करना

Vertex AI SDK का इस्तेमाल करके, अपने एजेंट को डिप्लॉय करने के लिए, Cloud Shell में Python स्क्रिप्ट बनाएं और उसे स्थानीय तौर पर चलाएं.

cd ~
cat <<EOF > deploy.py
import vertexai

PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"

vertexai.init(project=PROJECT_ID, location=LOCATION)
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)

# Define the full URI string for the Developer Connect repository link
repo_link = f"projects/{PROJECT_ID}/locations/{LOCATION}/connections/my-github-connection/gitRepositoryLinks/devconnect-agent"

print("Deploying to Agent Runtime from Developer Connect...")

remote_agent = client.agent_engines.create(
    config={
        "developer_connect_source": {
            "git_repository_link": repo_link,
            "revision": "main",
            "dir": "test",
        },
        "entrypoint_module": "my_agent",
        "entrypoint_object": "agent",
        "requirements_file": "requirements.txt",
        "class_methods": [
            {"name": "query_list", "api_mode": ""}
        ],
        "display_name": "DevConnect Agent",
    },
)

print(f"Agent Runtime deployed successfully: {remote_agent.api_resource.name}")
EOF

gcloud में डिफ़ॉल्ट ऐप्लिकेशन क्रेडेंशियल कॉन्फ़िगर करें.

gcloud auth application-default login

डिप्लॉयमेंट स्क्रिप्ट चलाएं. ध्यान दें कि इस आर्किटेक्चर की मदद से, Vertex AI लोकल एक्ज़ीक्यूशन स्कोप को पूरी तरह से बायपास कर सकता है. साथ ही, सोर्स से रिमोट एजेंट इमेज बना सकता है.

python3 deploy.py

एजेंट को टेस्ट करना

डिप्लॉयमेंट पूरा होने के बाद, अपने एजेंट एंडपॉइंट से क्वेरी करने के लिए स्क्रिप्ट चलाएं.

cat <<EOF > invoke.py
import vertexai

PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"

client = vertexai.Client(project=PROJECT_ID, location=LOCATION)

# Retrieve the latest reasoning engine
engines = list(client.agent_engines.list())
if engines:
    agent = client.agent_engines.get(name=engines[0].api_resource.name)
    print("Invoking remote agent via endpoint...")
    # NOTE: Invoking remote agent
    response = agent.query_list()
    print(f"Agent response: {response}")
else:
    print("No deployment found.")
EOF

python3 invoke.py

आपको इससे मिलता-जुलता आउटपुट दिखेगा:

Invoking remote agent via endpoint...
Agent response: [1, 2, 3]

6. व्यवस्थित करें

अपने Google Cloud खाते से लगातार शुल्क लिए जाने से बचने के लिए, इस कोडलैब के दौरान बनाई गई संसाधन मिटाएं.

Developer Connect और एजेंट रनटाइम के संसाधनों को हटाएं:

cat <<EOF > cleanup.py
import vertexai

PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"

client = vertexai.Client(project=PROJECT_ID, location=LOCATION)

for engine in client.agent_engines.list():
    print(f"Deleting {engine.api_resource.name}")
    engine.delete()
EOF

python3 cleanup.py

Developer Connect के संसाधनों को हटाएं:

gcloud developer-connect connections git-repository-links delete devconnect-agent \
    --connection=my-github-connection \
    --location=us-central1 \
    --quiet

gcloud developer-connect connections delete my-github-connection \
    --location=us-central1 \
    --quiet

7. बधाई हो

बधाई हो! आपने Developer Connect का इस्तेमाल करके, GitHub रिपॉज़िटरी इंटिग्रेशन को सुरक्षित तरीके से सेट अप किया है. साथ ही, एआई एजेंट को सीधे अपने सोर्स ट्री से डिप्लॉय किया है.

आपको क्या सीखने को मिला

  • Developer Connect और Vertex AI के साथ Google Cloud प्रोजेक्ट कॉन्फ़िगर किया गया हो
  • निजी ऐक्सेस टोकन को Secret Manager में सुरक्षित तरीके से सेव किया गया हो
  • gcloud CLI के ज़रिए, डेवलपर कनेक्ट कनेक्शन जनरेट किए गए हों
  • developer_connect_source ऑब्जेक्ट मैपिंग का इस्तेमाल करके, प्रोग्राम के हिसाब से Vertex AI Agent Runtime इंस्टेंस बनाया गया.

अगले चरण

  • Developer Connect के कोडबेस इंटिग्रेशन का इस्तेमाल करके, Gemini Code Assist की मदद से और एक्सप्लोर करें.
  • एजेंट रनटाइम एजेंट बनाने के लिए एक्सपेरिमेंट करें.

रेफ़रंस दस्तावेज़