ডেভেলপার কানেক্টের মাধ্যমে গিটহাবকে গুগল ক্লাউডের সাথে সংযুক্ত করুন

১. ভূমিকা

এই কোডল্যাবে, আপনি ডেভেলপার কানেক্ট ব্যবহার করে একটি গিটহাব রিপোজিটরিতে একটি সুরক্ষিত সংযোগ তৈরি করবেন এবং সেই সংযোগটি ব্যবহার করে জেমিনি এন্টারপ্রাইজ এজেন্ট প্ল্যাটফর্মে এজেন্ট রানটাইমের মাধ্যমে সরাসরি একটি এজেন্ট ডেপ্লয় করবেন।

ডেভেলপার কানেক্ট আপনাকে অনুমতি, অনুমোদন, প্রমাণীকরণ এবং নেটওয়ার্কিং কনফিগারেশনের ধাপগুলো ধাপে ধাপে সম্পন্ন করার মাধ্যমে নন-গুগল ডেভেলপার টুলগুলোর সাথে সংযোগ স্থাপন করে। এটি আপনার অ্যাপ্লিকেশন কোডকে গুগল ক্লাউড পরিষেবাগুলোতে নিয়ে আসার একটি সরাসরি ও নিজস্ব উপায় প্রদান করে।

এই কোডল্যাবের জন্য, আমরা জেমিনি এন্টারপ্রাইজ এজেন্ট প্ল্যাটফর্মে এজেন্ট রানটাইম ব্যবহার করে সরাসরি একটি এজেন্ট ডেপ্লয় করতে ডেভেলপার কানেক্ট গিট রিপোজিটরি কানেকশন ব্যবহার করব। ডেভেলপার কানেক্ট গিটহাব, গিটহাব এন্টারপ্রাইজ, বিটবাকেট ক্লাউড, বিটবাকেট ডেটা সেন্টার, গিটল্যাব এবং গিটল্যাব এন্টারপ্রাইজ সমর্থন করে। এই কোডল্যাবে, আমরা গিটহাবের সাথে একটি সংযোগ স্থাপনের প্রক্রিয়াটি দেখব।

আপনি যা করবেন

  • এজেন্ট রানটাইমে একটি বেসিক এজেন্ট তৈরি করুন এবং সেটি গিটহাবে পুশ করুন।
  • আপনার GitHub রিপোজিটরিকে Google Cloud-এর সাথে লিঙ্ক করতে Developer Connect ব্যবহার করুন।
  • আপনার সংযুক্ত রিপোজিটরি ব্যবহার করে এজেন্ট রানটাইমে এজেন্টটি নেটিভভাবে স্থাপন করুন।
  • আপনার ডেপ্লয় করা রিমোট এজেন্টকে আহ্বান করুন এবং পরীক্ষা করুন।

আপনার যা যা লাগবে

  • ক্রোমের মতো একটি ওয়েব ব্রাউজার
  • বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট
  • রিপোজিটরি অ্যাক্সেস সহ একটি গিটহাব অ্যাকাউন্ট এবং একটি পার্সোনাল অ্যাক্সেস টোকেন (ক্লাসিক)।

এই কোডল্যাবটি নতুনদের সহ সকল স্তরের ডেভেলপারদের জন্য। এই কোডল্যাবে ব্যবহৃত রিসোর্সগুলো মূলত সার্ভারলেস এপিআই এবং এগুলোর দাম ১ ডলারের কম হওয়া উচিত।

২. শুরু করার আগে

একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।

ক্লাউড শেল শুরু করুন

  1. Google Cloud কনসোলের শীর্ষে থাকা Activate Cloud Shell-এ ক্লিক করুন।
  2. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনার প্রমাণীকরণ যাচাই করুন:
    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-এর জন্য প্রয়োজনীয় সমস্ত API সক্রিয় করতে এই কমান্ডটি চালান:

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

৩. এজেন্ট সোর্স কোড প্রস্তুত করুন

প্রথমে, আপনি আপনার এজেন্টের সোর্স কোড রাখার জন্য একটি নতুন গিটহাব রিপোজিটরি তৈরি করবেন এবং তাতে একটি সাধারণ পাইথন রিজনিং এজেন্ট যুক্ত করবেন।

  1. আপনার গিটহাব অ্যাকাউন্টে লগ ইন করুন।
  2. devconnect-agent নামে একটি নতুন ব্যক্তিগত রিপোজিটরি তৈরি করুন।
  3. এটিকে README বা .gitignore দিয়ে শুরু করবেন না

এজেন্ট ফাইলগুলো স্থানীয়ভাবে তৈরি করুন

আপনার ক্লাউড শেল টার্মিনালে ফিরে এসে, আপনার এজেন্টের জন্য একটি ডিরেক্টরি তৈরি করুন এবং এর নির্ভরতাগুলো নির্ধারণ করুন:

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

কোডটি গিটহাবে পুশ করুন।

একটি গিট রিপোজিটরি চালু করুন এবং আপনার নতুন তৈরি করা গিটহাব রিপোজিটরিতে আপনার কোড পুশ করুন।

`<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

৪. ডেভেলপার কানেক্ট কনফিগার করুন

এখন যেহেতু আপনার রিপোজিটরি গিটহাবে রয়েছে, ডেভেলপার কানেক্ট আপনার গুগল ক্লাউড প্রজেক্টটিকে এর সাথে নিরাপদে লিঙ্ক করে দেবে।

IAM অনুমতি সেট আপ করুন

একটি পরিষেবা পরিচয় তৈরি করে ডেভেলপার কানেক্টকে আপনার গুগল ক্লাউড প্রজেক্ট অ্যাক্সেস করার অনুমতি দিন।

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

আপনি গুগল ক্লাউড কনসোল অথবা gcloud CLI ব্যবহার করে সংযোগ ও লিঙ্কটি তৈরি করতে পারেন।

বিকল্প ১: গুগল ক্লাউড কনসোল ব্যবহার করে

  1. Google Cloud কনসোলে , Developer Connect- এ যান।
  2. GitHub-এর অধীনে Connect-এ ক্লিক করুন
  3. আপনার কানেকশনটির নাম my-github-connection দিন এবং us-central1 এ এটি নির্বাচন করুন।
  4. Developer Connect GitHub অ্যাপটিকে অনুমোদন করার জন্য নির্দেশাবলী অনুসরণ করুন।
  5. আপনার প্রোজেক্টের সাথে লিঙ্ক করতে devconnect-agent রিপোজিটরিটি নির্বাচন করুন।

বিকল্প ২: gcloud CLI ব্যবহার করে

আপনার গিটহাব রিপোজিটরি লিঙ্ক করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলি চালান।

প্রথমে, আপনাকে ডেভেলপার কানেক্ট সার্ভিস অ্যাকাউন্টকে সিক্রেট ম্যানেজারে অ্যাক্সেস দিতে হবে।

# 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

৫. ডেভেলপার কানেক্ট থেকে এজেন্টটি স্থাপন করুন

আপনার রিপোজিটরি নিরাপদে সংযুক্ত থাকলে, আপনি ডেভেলপার কানেক্ট লিঙ্কটি ব্যবহার করে সরাসরি একটি এজেন্ট রানটাইম এজেন্ট ডেপ্লয় করতে পারবেন।

এজেন্ট রানটাইম স্থাপন করুন

Vertex AI SDK ব্যবহার করে আপনার এজেন্ট ডেপ্লয় করতে ক্লাউড শেলে স্থানীয়ভাবে একটি পাইথন স্ক্রিপ্ট তৈরি ও রান করুন।

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

ডিপ্লয়মেন্ট স্ক্রিপ্টটি চালান। উল্লেখ্য যে, এই আর্কিটেকচারটি ভার্টেক্স এআই-কে লোকাল এক্সিকিউশন স্কোপ সম্পূর্ণরূপে বাইপাস করে সোর্স থেকে রিমোট এজেন্ট ইমেজ তৈরি করতে সক্ষম করে।

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]

৬. পরিষ্কার করুন

আপনার গুগল ক্লাউড অ্যাকাউন্টে চলমান চার্জ এড়াতে, এই কোডল্যাব চলাকালীন তৈরি করা রিসোর্সগুলো মুছে ফেলুন।

ডেভেলপার কানেক্ট এবং এজেন্ট রানটাইম রিসোর্সগুলো পরিষ্কার করুন:

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

ডেভেলপার কানেক্ট রিসোর্সগুলো পরিষ্করণ করুন:

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

৭. অভিনন্দন

অভিনন্দন! আপনি ডেভেলপার কানেক্ট ব্যবহার করে নিরাপদে একটি গিটহাব রিপোজিটরি ইন্টিগ্রেশন স্থাপন করেছেন এবং সরাসরি আপনার সোর্স ট্রি থেকে একটি এআই এজেন্ট নেটিভভাবে ডেপ্লয় করেছেন।

আপনি যা শিখেছেন

  • ডেভেলপার কানেক্ট এবং ভার্টেক্স এআই ব্যবহার করে একটি গুগল ক্লাউড প্রজেক্ট কনফিগার করা হয়েছে।
  • সিক্রেট ম্যানেজারে একটি ব্যক্তিগত অ্যাক্সেস টোকেন নিরাপদে সংরক্ষণ করা হয়েছে।
  • gcloud CLI-এর মাধ্যমে স্পষ্টভাবে ডেভেলপার কানেক্ট সংযোগগুলি তৈরি করা হয়েছে।
  • developer_connect_source অবজেক্ট ম্যাপিং ব্যবহার করে প্রোগ্রাম্যাটিকভাবে একটি Vertex AI Agent Runtime ইনস্ট্যান্স তৈরি করা হয়েছে।

পরবর্তী পদক্ষেপ

রেফারেন্স নথি