1. Übersicht
Ein Agent ist ein autonomes Programm, das mit einem KI-Modell kommuniziert, um eine zielbasierte Operation mit den ihm zur Verfügung stehenden Tools und dem Kontext auszuführen. Es ist in der Lage, autonome Entscheidungen auf der Grundlage von Fakten zu treffen.
Agenten werden mit Agent-Frameworks wie dem Agent Development Kit(ADK), LangChain und smolagents erstellt. Die mit solchen Frameworks erstellten Agentenanwendungen können in Cloud Run bereitgestellt und Nutzern als serverlose Anwendungen zur Verfügung gestellt werden.
In diesem Codelab erstellen wir einen Agenten mit LangChain und stellen ihn in Cloud Run bereit.
Aufgaben
Sind Sie bereit, vom Prototyp-PROMPT zum Erstellen eines Agents überzugehen? Wir erstellen einen Agenten mit LangChain, um Informationen zu einer historischen Figur in einem strukturierten Format zu erhalten. In diesem Lab haben Sie folgende Aufgaben:
- Einen einfachen Agenten erstellen, der mit LangChain Informationen über die historische Figur in einem strukturierten Format generiert
- Agent lokal ausführen und prüfen, ob er wie erwartet funktioniert
- Agent in Cloud Run bereitstellen und über die Cloud Run-URL aufrufen
Voraussetzungen
2. Hinweis
Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
- Aktivieren Sie Cloud Shell, indem Sie auf diesen Link klicken. Sie können zwischen dem Cloud Shell-Terminal (zum Ausführen von Cloud-Befehlen) und dem Editor (zum Erstellen von Projekten) wechseln, indem Sie in Cloud Shell auf die entsprechende Schaltfläche klicken.
- Sobald die Verbindung mit der Cloud Shell hergestellt ist, prüfen Sie mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und für das Projekt schon Ihre Projekt-ID eingestellt ist:
gcloud auth list
- Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
- Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
- Python 3.13 oder höher muss installiert sein.
Weitere gcloud-Befehle und Informationen zur Verwendung finden Sie in der Dokumentation.
3. LangChain-Agent erstellen
Projektstruktur
Erstellen Sie in Cloud Shell einen Ordner mit dem Namen langchain-app und fügen Sie die folgenden Dateien hinzu:
langchain-gemini-fastapi-app/
├── main.py
├── requirements.txt
Anwendungscode
Fügen Sie die folgenden Abhängigkeiten in requirements.txt hinzu:
fastapi
uvicorn
langchain
langchain-google-genai
python-dotenv
In main.py schreiben wir den Agentencode, der das Gemini-Modell verwendet und die Informationen zur historischen Figur abruft. Nach dem Abrufen werden die Daten wie angewiesen in ein strukturiertes Format gebracht.
Bei dieser Implementierung wird die moderne LCEL-Syntax (LangChain Expression Language) verwendet.
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. Agent testen
Vor der Bereitstellung können Sie sie lokal testen.
- Erstellen Sie einen Gemini API-Schlüssel in AI Studio.
- Exportieren Sie den Gemini API-Schlüssel als:
export GOOGLE_API_KEY="AIzaSy..."
- Server ausführen
uvicorn main:app --port 8080 --host 0.0.0.0
- Testen Sie den Agent mit dem folgenden
curl-Befehl:
curl -X POST http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"name": "Abraham Lincoln"}'
Prüfen Sie, ob Sie eine JSON-strukturierte Ausgabe mit den Feldern „name“, „birthDate“ und „birthCountry“ erhalten.
5. In Cloud Run bereitstellen
Wir verwenden den Befehl gcloud run deploy, um die Agent-Anwendung in Cloud Run bereitzustellen. Mit dem folgenden Befehl wird der Container mit Cloud Build erstellt und in einem Schritt in Cloud Run bereitgestellt.
Ersetzen Sie YOUR_API_KEY durch Ihren tatsächlichen Gemini API-Schlüssel.
gcloud run deploy gemini-fastapi-service \
--source . \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars GOOGLE_API_KEY=<YOUR_API_KEY>
Nach der Bereitstellung sollte der Endpunkt im Terminal angezeigt werden und kann verwendet werden.
6. Deployment testen
Verwenden Sie den Cloud Run-Endpunkt und führen Sie curl aus, um die erwarteten Ergebnisse zu erhalten.
curl -X POST <CLOUD_RUN_ENDPOINT> \
-H "Content-Type: application/json" \
-d '{"name": "Abraham Lincoln"}'
Sie sollten dasselbe Ergebnis erhalten wie bei der lokal ausgeführten Anwendung.
7. Bereinigen
So vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Codelab verwendeten Ressourcen in Rechnung gestellt werden:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.
8. Glückwunsch
Glückwunsch! Sie haben erfolgreich einen LangChain-Agenten erstellt und mit ihm interagiert, der in Cloud Run bereitgestellt wurde.