Разверните агент LangChain в Cloud Run.

1. Обзор

Агент — это автономная программа, которая взаимодействует с моделью искусственного интеллекта для выполнения целенаправленной операции, используя имеющиеся у неё инструменты и контекст, и способна принимать автономные решения, основанные на истине!

Для создания агентов используются такие фреймворки, как Agent Development Kit (ADK), LangChain и smolagents. Агентские приложения, созданные с помощью таких фреймворков, могут быть развернуты в Cloud Run и предоставлены пользователям в качестве бессерверных приложений.

В этом практическом занятии мы создадим агента с использованием LangChain и развернем его в Cloud Run.

Что вы построите

Готовы перейти от прототипирования PROMPT к созданию агента??? Мы создадим агента с использованием LangChain для получения информации об исторических личностях в структурированном формате. В рамках этой лабораторной работы вы:

  1. Создайте простого агента для генерации информации об исторической личности в структурированном формате с использованием LangChain.
  2. Запустите агент локально и убедитесь, что он работает должным образом.
  3. Разверните агент в Cloud Run и запустите его, используя URL-адрес Cloud Run.

Требования

  • Браузер, например Chrome или Firefox.
  • Проект Google Cloud с включенной функцией выставления счетов.

2. Прежде чем начать

Создать проект

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
  3. Активируйте Cloud Shell, перейдя по этой ссылке . Вы можете переключаться между терминалом Cloud Shell (для выполнения облачных команд) и редактором (для сборки проектов), нажав соответствующую кнопку в Cloud Shell.
  4. После подключения к Cloud Shell необходимо проверить, прошли ли вы аутентификацию и установлен ли идентификатор вашего проекта, используя следующую команду:
gcloud auth list
  1. Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
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 и извлекает информацию об исторической личности. После получения информации он форматирует её в структурированный формат в соответствии с указаниями.

В данной реализации используется современный синтаксис LCEL (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. Создайте ключ API Gemini в AI Studio .
  2. Экспортируйте ключ API Gemini следующим образом:
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 на ваш фактический ключ API Gemini.

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 перейдите на страницу «Управление ресурсами» .
  2. В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить» .
  3. В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.

8. Поздравляем!

Поздравляем! Вы успешно создали агента LangChain, развернутого в Cloud Run, и взаимодействовали с ним!