Cloud Run पर LangChain एजेंट डिप्लॉय करना

1. खास जानकारी

एजेंट एक ऐसा प्रोग्राम होता है जो एआई मॉडल से बातचीत करता है. यह अपने पास मौजूद टूल और कॉन्टेक्स्ट का इस्तेमाल करके, किसी लक्ष्य को पूरा करने के लिए काम करता है. साथ ही, यह तथ्यों के आधार पर अपने-आप फ़ैसले ले सकता है!

एजेंट बनाने के लिए, Agent Development Kit(ADK), LangChain, और smolagents जैसे एजेंट फ़्रेमवर्क का इस्तेमाल किया जाता है. ऐसे फ़्रेमवर्क की मदद से बनाए गए एजेंट ऐप्लिकेशन को Cloud Run पर डिप्लॉय किया जा सकता है. साथ ही, इन्हें बिना सर्वर के काम करने वाले ऐप्लिकेशन के तौर पर उपयोगकर्ताओं के लिए उपलब्ध कराया जा सकता है.

इस कोडलैब में, हम LangChain का इस्तेमाल करके एक एजेंट बनाएंगे और उसे Cloud Run पर डिप्लॉय करेंगे.

आपको क्या बनाना है

क्या आप प्रोटोटाइप प्रॉम्प्ट से एजेंट बनाने की प्रोसेस पर जाने के लिए तैयार हैं??? हम LangChain का इस्तेमाल करके एक एजेंट बनाएंगे, ताकि किसी ऐतिहासिक व्यक्ति के बारे में जानकारी को स्ट्रक्चर्ड फ़ॉर्मैट में हासिल किया जा सके. इस लैब में, आपको ये काम करने होंगे:

  1. LangChain का इस्तेमाल करके, किसी ऐतिहासिक व्यक्ति के बारे में स्ट्रक्चर्ड फ़ॉर्मैट में जानकारी जनरेट करने के लिए, एक आसान एजेंट बनाओ
  2. एजेंट को अपने डिवाइस पर चलाएं और पक्का करें कि वह उम्मीद के मुताबिक काम कर रहा हो
  3. एजेंट को Cloud Run पर डिप्लॉय करें और Cloud Run यूआरएल का इस्तेमाल करके इसे चालू करें

ज़रूरी शर्तें

  • कोई ब्राउज़र, जैसे कि Chrome या Firefox
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट.

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

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

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.
  3. इस लिंक पर क्लिक करके, Cloud Shell चालू करें. Cloud Shell में मौजूद बटन पर क्लिक करके, Cloud Shell टर्मिनल (क्लाउड कमांड चलाने के लिए) और एडिटर (प्रोजेक्ट बनाने के लिए) के बीच टॉगल किया जा सकता है.
  4. Cloud Shell से कनेक्ट होने के बाद, यह देखने के लिए कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट किया गया है, इस कमांड का इस्तेमाल करें:
gcloud auth list
  1. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. पक्का करें कि आपके पास Python 3.13 या इसके बाद का वर्शन हो

अन्य gcloud कमांड और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

3. LangChain एजेंट बनाना

प्रोजेक्ट का स्ट्रक्चर

Cloud Shell में, langchain-app नाम का फ़ोल्डर बनाएं. इसके बाद, इसमें ये फ़ाइलें जोड़ें:

langchain-gemini-fastapi-app/
├── main.py
├── requirements.txt

ऐप्लिकेशन कोड

यहां दी गई डिपेंडेंसी को requirements.txt में जोड़ें:

fastapi
uvicorn
langchain
langchain-google-genai
python-dotenv

main.py में, हम एजेंट कोड लिखेंगे. यह कोड, Gemini मॉडल का इस्तेमाल करेगा और ऐतिहासिक व्यक्ति के बारे में जानकारी देगा. डेटा मिलने के बाद, उसे दिए गए निर्देशों के मुताबिक स्ट्रक्चर्ड फ़ॉर्मैट में व्यवस्थित करता है.

इस सुविधा को लागू करने के लिए, मॉडर्न एलसीईएल (LangChain Expression Language) सिंटैक्स का इस्तेमाल किया जाता है.

import os
import uvicorn
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import JsonOutputParser

# Initialize FastAPI
app = FastAPI(title="LangChain App for Historical Figures")

# 1. Setup Gemini Model
# We expect GOOGLE_API_KEY to be set in the environment variables
llm = ChatGoogleGenerativeAI(
    model="gemini-2.5-flash",
    temperature=0.7
)

# 2. Define the Prompt
prompt = ChatPromptTemplate.from_template("You are an expert Historian. For the historical personality {name}, you are able to accurately tell their birth date and birth country. Return the output in the JSON format containing name, birthDate, birthCountry. In case you are unable to retrieve birthDate or birthCountry, just have the unknown values as null. ensure the response is a valid json object only.")
output_parser = JsonOutputParser()

# Chain: Prompt -> Model -> Json Output Parser
chain = prompt | llm | output_parser

# 3. Define Request Model
class QueryRequest(BaseModel):
    name: str

# 4. Define Endpoint
@app.post("/chat")
async def chat(request: QueryRequest):
    try:
        response = await chain.ainvoke({"name": request.name})
        return response
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

@app.get("/")
def health_check():
    return {"status": "ok", "service": "LangChain-Gemini-FastAPI"}

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

इसे डिप्लॉय करने से पहले, इसे स्थानीय तौर पर टेस्ट किया जा सकता है.

  1. AI Studio में Gemini API पासकोड बनाएं.
  2. Gemini API पासकोड को इस तरह एक्सपोर्ट करें:
export GOOGLE_API_KEY="AIzaSy..."
  1. सर्वर चलाएं.
uvicorn main:app --port 8080 --host 0.0.0.0
  1. नीचे दी गई curl कमांड का इस्तेमाल करके, एजेंट को टेस्ट करें:
curl -X POST http://localhost:8080/chat \
     -H "Content-Type: application/json" \
     -d '{"name": "Abraham Lincoln"}'

देखें कि आपको नाम, जन्म की तारीख, और जन्म के देश की जानकारी वाला JSON स्ट्रक्चर्ड आउटपुट मिल रहा हो.

5. Cloud Run पर डिप्लॉय करें

हम एजेंट ऐप्लिकेशन को Cloud Run पर डिप्लॉय करने के लिए, gcloud run deploy कमांड का इस्तेमाल करेंगे. नीचे दी गई कमांड, Cloud Build का इस्तेमाल करके कंटेनर बनाती है और उसे एक ही चरण में Cloud Run पर डिप्लॉय करती है.

YOUR_API_KEY की जगह अपना Gemini API पासकोड डालें.

gcloud run deploy gemini-fastapi-service \
  --source . \
  --platform managed \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars GOOGLE_API_KEY=<YOUR_API_KEY>

डिप्लॉय होने के बाद, आपको टर्मिनल में अपना एंडपॉइंट दिखेगा. इसका इस्तेमाल किया जा सकता है.

6. डिप्लॉयमेंट की जांच करना

Cloud Run एंडपॉइंट का इस्तेमाल करें और curl करें, ताकि आपको उम्मीद के मुताबिक नतीजे मिलें.

curl -X POST <CLOUD_RUN_ENDPOINT> \
     -H "Content-Type: application/json" \
     -d '{"name": "Abraham Lincoln"}'

आपको वही नतीजा मिलेगा जो आपको स्थानीय तौर पर चल रहे ऐप्लिकेशन पर मिला था.

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

इस कोडलैब में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, यह तरीका अपनाएं:

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

8. बधाई हो

बधाई हो! आपने Cloud Run पर डिप्लॉय किए गए LangChain एजेंट को बना लिया है और उससे इंटरैक्ट कर लिया है!