Hinweis
In dieser Anleitung wird davon ausgegangen, dass Sie die Anleitung unter folgenden Links gelesen und befolgt haben:
- LangChain-Agenten erstellen:
agentals Instanz vonLangchainAgenterstellen. - Nutzerauthentifizierung, um sich als Nutzer zu authentifizieren und den Agenten abzufragen.
- Importieren und initialisieren Sie das SDK, um den Client zum Abrufen einer bereitgestellten Instanz zu initialisieren (falls erforderlich).
Instanz eines Agents abrufen
Wenn Sie eine LangchainAgent abfragen möchten, müssen Sie zuerst eine neue Instanz erstellen oder eine vorhandene Instanz abrufen.
So rufen Sie die LangchainAgent ab, die einer bestimmten Ressourcen-ID entspricht:
Agent Platform SDK
Führen Sie den folgenden Code aus:
import agentplatform
client = agentplatform.Client( # For service interactions via client.runtimes
project="PROJECT_ID",
location="LOCATION",
)
agent = client.runtimes.get(name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID")
print(agent)
Dabei gilt:
PROJECT_IDist die Google Cloud Projekt-ID, unter der Sie Agents erstellen und bereitstellen.LOCATIONist eine der unterstützten Regionen.RESOURCE_IDist die ID des bereitgestellten Agenten alsreasoningEngine-Ressource.
Python-Bibliothek „requests“
Führen Sie den folgenden Code aus:
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
response = requests.get(
f"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID",
headers={
"Content-Type": "application/json; charset=utf-8",
"Authorization": f"Bearer {get_identity_token()}",
},
)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_IDWenn Sie das Agent Platform SDK verwenden, entspricht das agent-Objekt einer AgentRuntime-Klasse, die Folgendes enthält:
agent.api_resourcemit Informationen zum bereitgestellten Agent. Sie können auchagent.operation_schemas()aufrufen, um die Liste der Vorgänge zurückzugeben, die vonagentunterstützt werden. Weitere Informationen finden Sie unter Unterstützte Vorgänge.agent.api_client, die synchrone Dienstinteraktionen ermöglichtagent.async_api_client, das asynchrone Dienstinteraktionen ermöglicht
Im weiteren Verlauf dieses Abschnitts wird davon ausgegangen, dass Sie eine AgentRuntime-Instanz mit dem Namen agent haben.
Unterstützte Vorgänge
Die folgenden Vorgänge werden unterstützt:
query: zum synchronen Abrufen einer Antwort auf eine Anfrage.stream_query: zum Streamen einer Antwort auf eine Anfrage.
Sowohl die query- als auch die stream_query-Methode unterstützen dieselben Argumenttypen:
input: die Nachrichten, die an den Agenten gesendet werden sollen.config: Die Konfiguration (falls zutreffend) für den Kontext der Anfrage.
KI-Agenten abfragen
Verwenden Sie die Methode LangchainAgent.query, um den Agenten mit einer Eingabe abzufragen:
agent.query(input="What is the exchange rate from US dollars to SEK today?")
entspricht dem Folgenden (in der Langform):
agent.query(input={
"input": [ # The input is represented as a list of messages (each message as a dict)
{
# The role (e.g. "system", "user", "assistant", "tool")
"role": "user",
# The type (e.g. "text", "tool_use", "image_url", "media")
"type": "text",
# The rest of the message (this varies based on the type)
"text": "What is the exchange rate from US dollars to Swedish currency?",
},
]
})
Rollen helfen dem Modell, beim Antworten zwischen verschiedenen Arten von Nachrichten zu unterscheiden. Wenn role in der Eingabe weggelassen wird, wird standardmäßig "user" verwendet.
| Rolle | Beschreibung |
|---|---|
system |
Damit wird dem Chatmodell mitgeteilt, wie es sich verhalten soll, und es werden zusätzliche Informationen bereitgestellt. Wird nicht von allen Chatmodellanbietern unterstützt. |
user |
Stellt die Eingabe eines Nutzers dar, der mit dem Modell interagiert, in der Regel in Form von Text oder anderen interaktiven Eingaben. |
assistant |
Stellt eine Antwort des Modells dar, die Text oder eine Anfrage zum Aufrufen von Tools enthalten kann. |
tool |
Eine Nachricht, mit der die Ergebnisse eines Tool-Aufrufs an das Modell zurückgegeben werden, nachdem externe Daten oder die Verarbeitung abgerufen wurden. |
Die type der Nachricht bestimmt auch, wie der Rest der Nachricht interpretiert wird (siehe Multimodale Inhalte verarbeiten).
Agent mit multimodalen Inhalten abfragen
Wir verwenden den folgenden Agent (der die Eingabe an das Modell weiterleitet und keine Tools verwendet), um zu veranschaulichen, wie multimodale Eingaben an einen Agent übergeben werden:
agent = agentplatform.frameworks.LangchainAgent(
model="gemini-3.5-flash",
runnable_builder=lambda model, **kwargs: model,
)
Multimodale Nachrichten werden durch Inhaltsblöcke dargestellt, in denen ein type und entsprechende Daten angegeben sind. Im Allgemeinen geben Sie für multimodalen Inhalt type als "media", file_uri als Cloud Storage-URI und mime_type für die Interpretation der Datei an.
Bild
agent.query(input={"input": [
{"type": "text", "text": "Describe the attached media in 5 words!"},
{"type": "media", "mime_type": "image/jpeg", "file_uri": "gs://cloud-samples-data/generative-ai/image/cricket.jpeg"},
]})
Video
agent.query(input={"input": [
{"type": "text", "text": "Describe the attached media in 5 words!"},
{"type": "media", "mime_type": "video/mp4", "file_uri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"},
]})
Audio
agent.query(input={"input": [
{"type": "text", "text": "Describe the attached media in 5 words!"},
{"type": "media", "mime_type": "audio/mp3", "file_uri": "gs://cloud-samples-data/generative-ai/audio/pixel.mp3"},
]})
Eine Liste der von Gemini unterstützten MIME-Typen finden Sie in der Dokumentation zu:
KI‑Agenten mit einer ausführbaren Konfiguration abfragen
Wenn Sie den Agenten abfragen, können Sie auch ein config für den Agenten angeben (das dem Schema eines RunnableConfig entspricht). Zwei häufige Szenarien sind:
- Standardkonfigurationsparameter:
run_id/run_name: Kennzeichnung für den Lauf.tags/metadata: Klassifikator für den Lauf beim Tracing mit OpenTelemetry.
- Benutzerdefinierte Konfigurationsparameter (über
configurable):session_id: Die Sitzung, in der die Ausführung stattfindet (siehe Chatverlauf speichern).thread_id: Der Thread, in dem die Ausführung stattfindet (siehe Prüfpunkte speichern).
Beispiel:
import uuid
run_id = uuid.uuid4() # Generate an ID for tracking the run later.
response = agent.query(
input="What is the exchange rate from US dollars to Swedish currency?",
config={ # Specify the RunnableConfig here.
"run_id": run_id # Optional.
"tags": ["config-tag"], # Optional.
"metadata": {"config-key": "config-value"}, # Optional.
"configurable": {"session_id": "SESSION_ID"} # Optional.
},
)
print(response)