1. Ringkasan
Agen adalah program otonom yang berkomunikasi dengan model AI untuk melakukan operasi berbasis tujuan menggunakan alat dan konteks yang dimilikinya serta mampu membuat keputusan otonom yang didasarkan pada kebenaran.
Framework agen seperti Agent Development Kit(ADK), LangChain, smolagents digunakan untuk membuat agen. Aplikasi agen yang dibuat melalui framework tersebut dapat di-deploy ke Cloud Run, dan dapat disediakan bagi pengguna sebagai aplikasi serverless.
Dalam codelab ini, kita akan membuat agen menggunakan LangChain dan men-deploy-nya ke Cloud Run.
Yang akan Anda build
Siap beralih dari PROMPT prototipe ke Membangun agen??? Kita akan membuat agen menggunakan LangChain untuk mendapatkan informasi tentang tokoh sejarah dalam format terstruktur. Sebagai bagian dari lab ini, Anda akan:
- Bangun agen sederhana untuk membuat informasi tentang tokoh sejarah dalam format terstruktur menggunakan LangChain
- Jalankan agen secara lokal, dan pastikan agen berfungsi seperti yang diharapkan
- Men-deploy agen ke Cloud Run, dan memanggilnya menggunakan URL Cloud Run
Persyaratan
2. Sebelum memulai
Membuat project
- Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
- Aktifkan Cloud Shell dengan mengklik link ini. Anda dapat beralih antara Cloud Shell Terminal (untuk menjalankan perintah cloud) dan Editor (untuk membangun project) dengan mengklik tombol yang sesuai dari Cloud Shell.
- Setelah terhubung ke Cloud Shell, Anda dapat memeriksa bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda menggunakan perintah berikut:
gcloud auth list
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda.
gcloud config list project
- Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <YOUR_PROJECT_ID>
- Pastikan Anda memiliki Python 3.13+
Lihat dokumentasi untuk mengetahui perintah dan penggunaan gcloud lainnya.
3. Membuat Agen LangChain
Struktur Project
Di Cloud Shell, buat folder bernama langchain-app, lalu tambahkan file berikut di dalamnya:
langchain-gemini-fastapi-app/
├── main.py
├── requirements.txt
Kode Aplikasi
Berikut adalah dependensi yang harus Anda tambahkan di requirements.txt:
fastapi
uvicorn
langchain
langchain-google-genai
python-dotenv
Di main.py, kita akan menulis kode agen yang menggunakan model Gemini, dan mengambil informasi tentang tokoh sejarah. Setelah diambil, format data tersebut menjadi format terstruktur sesuai petunjuk.
Implementasi ini menggunakan sintaksis LCEL (LangChain Expression Language) modern.
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. Menguji Agen
Sebelum men-deploy, Anda dapat mengujinya secara lokal.
- Buat kunci Gemini API di AI Studio.
- Ekspor kunci Gemini API sebagai:
export GOOGLE_API_KEY="AIzaSy..."
- Jalankan server.
uvicorn main:app --port 8080 --host 0.0.0.0
- Uji agen menggunakan perintah
curlberikut:
curl -X POST http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"name": "Abraham Lincoln"}'
Periksa apakah Anda mendapatkan output terstruktur JSON yang berisi nama, birthDate, dan birthCountry.
5. Men-deploy ke Cloud Run
Kita akan menggunakan perintah gcloud run deploy untuk men-deploy aplikasi agen ke Cloud Run. Perintah berikut akan membangun container menggunakan Cloud Build dan men-deploy-nya ke Cloud Run dalam satu langkah.
Ganti YOUR_API_KEY dengan kunci Gemini API Anda yang sebenarnya.
gcloud run deploy gemini-fastapi-service \
--source . \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars GOOGLE_API_KEY=<YOUR_API_KEY>
Setelah di-deploy, Anda akan melihat endpoint di terminal yang siap digunakan.
6. Menguji Deployment
Gunakan endpoint Cloud Run, dan lakukan curl untuk memastikan Anda mendapatkan hasil yang diharapkan.
curl -X POST <CLOUD_RUN_ENDPOINT> \
-H "Content-Type: application/json" \
-d '{"name": "Abraham Lincoln"}'
Anda akan mendapatkan hasil yang sama seperti yang Anda dapatkan di aplikasi yang berjalan secara lokal.
7. Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam codelab ini, ikuti langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Manage resources.
- Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
8. Selamat
Selamat! Anda telah berhasil membuat dan berinteraksi dengan agen LangChain yang di-deploy di Cloud Run.