Zusätzlich zu den allgemeinen Anweisungen zur Verwendung eines Kundenservicemitarbeiters werden auf dieser Seite Funktionen beschrieben, die speziell für LangchainAgent
gelten.
Hinweis
In dieser Anleitung wird davon ausgegangen, dass Sie die folgenden Anleitungen gelesen und befolgt haben:
- LangChain-Agent entwickeln:
agent
als Instanz vonLangchainAgent
entwickeln. - Nutzerauthentifizierung, um sich als Nutzer zu authentifizieren und den Kundenservicemitarbeiter zu fragen.
Unterstützte Vorgänge
Die folgenden Vorgänge werden für LangchainAgent
unterstützt:
query
: Damit wird eine Antwort auf eine Abfrage synchron abgerufen.stream_query
: zum Streamen einer Antwort auf eine Abfrage.
Sowohl die query
- als auch die stream_query
-Methode unterstützen dieselben Argumenttypen:
input
: die Nachrichten, die an den Kundenservicemitarbeiter gesendet werden sollen.config
: die Konfiguration (falls zutreffend) für den Kontext der Abfrage.
Agenten abfragen
Der Befehl bewirkt Folgendes:
agent.query(input="What is the exchange rate from US dollars to Swedish currency?")
entspricht der folgenden vollständigen Form:
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, bei der Beantwortung zwischen verschiedenen Arten von Nachrichten zu unterscheiden. Wenn role
in der Eingabe weggelassen wird, wird standardmäßig "user"
verwendet.
Rolle | Beschreibung |
---|---|
system |
Hiermit wird dem Chatmodell mitgeteilt, wie es sich verhalten soll, und zusätzlicher Kontext bereitgestellt. 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 anderer interaktiver Eingabe. |
assistant |
Stellt eine Antwort vom Modell dar, die Text oder eine Anfrage zum Aufrufen von Tools enthalten kann. |
tool |
Eine Nachricht, mit der die Ergebnisse einer Toolausführung an das Modell zurückgegeben werden, nachdem externe Daten oder Verarbeitungen abgerufen wurden. |
Die type
der Nachricht bestimmt auch, wie der Rest der Nachricht interpretiert wird (siehe Mehrmodale Inhalte verarbeiten).
Agenten mit multimodalen Inhalten abfragen
Wir verwenden den folgenden Agenten (der die Eingabe an das Modell weiterleitet und keine Tools verwendet), um zu veranschaulichen, wie multimodale Eingaben an einen Agenten übergeben werden:
agent = agent_engines.LangchainAgent(
model="gemini-1.5-pro-preview-0409",
runnable_builder=lambda model, **kwargs: model,
)
Multimodale Nachrichten werden durch Inhaltsblöcke dargestellt, die eine type
und entsprechende Daten angeben. Bei multimodalen Inhalten geben Sie in der Regel 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 unter:
Agent mit einer ausführbaren Konfiguration abfragen
Wenn Sie den Agenten abfragen, können Sie auch eine config
für den Agenten angeben, die dem Schema einer RunnableConfig
folgt. Zwei gängige Szenarien sind:
- Standardkonfigurationsparameter:
run_id
/run_name
: Kennung 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 Speicher-Prüfpunkte).
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)