1. Tổng quan
Tác nhân là một chương trình tự động trò chuyện với mô hình AI để thực hiện một thao tác dựa trên mục tiêu bằng các công cụ và ngữ cảnh mà tác nhân có, đồng thời có khả năng tự đưa ra quyết định dựa trên sự thật!
Các khung tác nhân như Bộ công cụ phát triển tác nhân(ADK), LangChain, smolagents được dùng để tạo tác nhân. Các ứng dụng tác nhân được tạo thông qua các khung như vậy có thể được triển khai lên Cloud Run và có thể được cung cấp cho người dùng dưới dạng ứng dụng phi máy chủ.
Trong lớp học lập trình này, chúng ta sẽ tạo một tác nhân bằng LangChain và triển khai tác nhân đó lên Cloud Run.
Sản phẩm bạn sẽ tạo ra
Bạn đã sẵn sàng chuyển từ nguyên mẫu PROMPT sang Tạo tác nhân chưa??? Chúng ta sẽ tạo một tác nhân bằng LangChain để lấy thông tin về nhân vật lịch sử ở định dạng có cấu trúc. Trong lớp học lập trình này, bạn sẽ:
- Tạo một tác nhân đơn giản để tạo thông tin về nhân vật lịch sử ở định dạng có cấu trúc bằng LangChain
- Chạy tác nhân cục bộ và đảm bảo tác nhân hoạt động như dự kiến
- Triển khai tác nhân lên Cloud Run và gọi tác nhân đó bằng URL Cloud Run
Yêu cầu
2. Trước khi bắt đầu
Tạo dự án
- Trong Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
- Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán đã được bật trên một dự án hay chưa.
- Kích hoạt Cloud Shell bằng cách nhấp vào đường liên kết này. Bạn có thể chuyển đổi giữa Cloud Shell Terminal (Thiết bị đầu cuối Cloud Shell) (để chạy các lệnh trên đám mây) và Trình chỉnh sửa (để tạo dự án) bằng cách nhấp vào nút tương ứng trong Cloud Shell.
- Sau khi kết nối với Cloud Shell, bạn có thể kiểm tra xem mình đã được xác thực hay chưa và dự án đã được đặt thành mã dự án của bạn hay chưa bằng lệnh sau:
gcloud auth list
- Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn.
gcloud config list project
- Nếu dự án của bạn chưa được đặt, hãy dùng lệnh sau để đặt dự án:
gcloud config set project <YOUR_PROJECT_ID>
- Đảm bảo bạn có Python 3.13 trở lên
Tham khảo tài liệu để biết các lệnh gcloud khác và cách sử dụng.
3. Tạo tác nhân LangChain
Cấu trúc dự án
Trong Cloud Shell, hãy tạo một thư mục có tên là langchain-app và thêm các tệp sau vào thư mục đó:
langchain-gemini-fastapi-app/
├── main.py
├── requirements.txt
Mã ứng dụng
Sau đây là các phần phụ thuộc mà bạn nên thêm vào requirements.txt:
fastapi
uvicorn
langchain
langchain-google-genai
python-dotenv
Trong main.py, chúng ta sẽ viết mã tác nhân sử dụng mô hình Gemini và truy xuất thông tin về nhân vật lịch sử. Sau khi truy xuất, hãy định dạng thông tin đó thành định dạng có cấu trúc theo hướng dẫn.
Cách triển khai này sử dụng cú pháp LCEL (Ngôn ngữ biểu thức LangChain) hiện đại.
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. Kiểm thử tác nhân
Trước khi triển khai, bạn có thể kiểm thử tác nhân cục bộ.
- Tạo khoá Gemini API trong AI Studio.
- Xuất khoá Gemini API dưới dạng:
export GOOGLE_API_KEY="AIzaSy..."
- Chạy máy chủ.
uvicorn main:app --port 8080 --host 0.0.0.0
- Kiểm thử tác nhân bằng lệnh
curlsau:
curl -X POST http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"name": "Abraham Lincoln"}'
Kiểm tra xem bạn có nhận được đầu ra có cấu trúc JSON chứa tên, ngày sinh và quốc gia sinh hay không.
5. Triển khai lên Cloud Run
Chúng ta sẽ sử dụng lệnh gcloud run deploy để triển khai ứng dụng tác nhân lên Cloud Run. Lệnh sau sẽ tạo vùng chứa bằng Cloud Build và triển khai vùng chứa đó lên Cloud Run trong một bước.
Thay thế YOUR_API_KEY bằng khoá Gemini API thực tế của bạn.
gcloud run deploy gemini-fastapi-service \
--source . \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars GOOGLE_API_KEY=<YOUR_API_KEY>
Sau khi triển khai, bạn sẽ thấy điểm cuối của mình trong thiết bị đầu cuối. Điểm cuối này sẽ sẵn sàng để bạn sử dụng.
6. Kiểm thử quá trình triển khai
Sử dụng điểm cuối Cloud Run và thực hiện curl để đảm bảo bạn nhận được kết quả như mong đợi.
curl -X POST <CLOUD_RUN_ENDPOINT> \
-H "Content-Type: application/json" \
-d '{"name": "Abraham Lincoln"}'
Bạn sẽ nhận được kết quả tương tự như kết quả bạn nhận được trên ứng dụng đang chạy cục bộ.
7. Dọn dẹp
Để tránh bị tính phí cho tài khoản Google Cloud đối với các tài nguyên được sử dụng trong lớp học lập trình này, hãy làm theo các bước sau:
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Quản lý tài nguyên.
- Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, rồi nhấp vào Xoá.
- Trong hộp thoại, hãy nhập mã dự án, rồi nhấp vào Tắt để xoá dự án.
8. Xin chúc mừng
Xin chúc mừng! Bạn đã tạo và tương tác thành công với tác nhân LangChain được triển khai trên Cloud Run!