Für jede Unterhaltungsrunde findet eine Interaktion statt. Während einer Interaktion sendet ein Endnutzer eine Eingabe an Dialogflow und Dialogflow sendet eine Antwort. Bei der Implementierung von Systemen zur Verarbeitung von Interaktionen gibt es zwei Möglichkeiten: die API oder eine Integration.
Bei Verwendung der API muss Ihr System Folgendes verarbeiten:
- Agent erstellen
- Stellen Sie den Nutzern eine Benutzeroberfläche zur Verfügung.
- Rufen Sie die Dialogflow API für jede Unterhaltungsrunde auf, um Endnutzereingaben an die API zu senden.
- Wenn die Agent-Antworten nicht nur statisch sind (seltener), müssen Sie einen Webhook-Dienst für die Verarbeitung der Webhook-aktivierten Auftragsausführung hosten.
Bei Verwendung einer Integration muss Ihr System nur Folgendes verarbeiten:
- Agent erstellen
- Implementieren Sie optional einen Webhook-Dienst.
Das folgende Diagramm zeigt die Schritte, die für einen Sprecherwechsel einer Sitzung ausgeführt werden.
- Der Endnutzer gibt etwas ein oder sagt etwas. Dies wird als Endnutzereingabe bezeichnet.
- Die Benutzeroberfläche oder das Integrationssystem empfängt die Eingabe und leitet sie in einer Anfrage zur Intent-Erkennung an die Dialogflow API weiter.
- Die Dialogflow API empfängt die Anfrage zur Intent-Erkennung. Sie ordnet die Eingabe einem Intent- oder Formularparameter zu, legt bei Bedarf Parameter fest und aktualisiert den Sitzungsstatus. Falls eine Webhook-fähige Auftragsausführung aufgerufen werden muss, wird eine Webhook-Anfrage an Ihren Webhook-Dienst gesendet. Fahren Sie andernfalls mit Schritt 6 fort.
- Ihr Webhook-Dienst empfängt die Webhook-Anfrage. Der Dienst führt alle erforderlichen Aktionen aus, z. B. das Aufrufen externer APIs, das Abfragen oder Aktualisieren einer Datenbank usw.
- Ihr Webhook-Dienst erstellt eine Antwort und sendet eine Webhook-Antwort an Dialogflow.
- Dialogflow erstellt eine Antwort für die Intent-Erkennung. Wenn ein Webhook aufgerufen wurde, verwendet es die Webhook-Antwort. Wenn kein Webhook aufgerufen wurde, verwendet es die im Agent definierte statische Antwort. Dialogflow sendet eine Antwort zur Intent-Erkennung an Ihre Benutzeroberfläche oder Ihr Integrationssystem.
- Die Benutzeroberfläche oder das Integrationssystem empfängt die Antwort zur Intent-Erkennung und leitet die Text- oder Audioantwort an den Endnutzer weiter.
- Der Endnutzer sieht oder hört die Antwort.
Anleitung
In dieser Anleitung erfahren Sie, wie Sie die API für eine Unterhaltungsrunde für einen Agent aufrufen, der keine Integration verwendet (Schritt 2 aus dem obigen Diagramm). In diesem Leitfaden erfahren Sie nicht, wie Sie eine Benutzeroberfläche für Ihre Endnutzer implementieren.
IDs erfassen
In den folgenden Beispielen sind mehrere IDs als Eingabe erforderlich. So finden Sie Ihre Projekt-ID, die Regions-ID und die Agent-ID:
- Öffnen Sie die Dialogflow CX Console.
- Wählen Sie das GCP-Projekt aus, um die Agent-Auswahl zu öffnen.
- Klicken Sie für einen Agent in der Liste auf das Dreipunkt-Menü more_vert.
- Klicken Sie auf die Schaltfläche filter_none (Kopieren).
- Damit wird der vollständige Name des Agents kopiert, der Ihre Projekt-ID, Regions-ID und Agent-ID im folgenden Format enthält:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Sie benötigen außerdem eine Sitzungs-ID.
Der Begriff Sitzung steht für eine Unterhaltung zwischen einem Dialogflow-Agent und einem Endnutzer.
Zu Beginn einer Unterhaltung erstellen Sie eine eindeutige Sitzungs-ID und verwenden diese für jede Unterhaltungsrunde.
Zum Testen der API können Sie eine beliebige String-ID verwenden, die maximal 36 Byte beträgt, z. B. test-session-123
.
Intent-Erkennung aufrufen
In den folgenden Beispielen wird die Methode detectIntent
des Typs Sessions
aufgerufen.
Wählen Sie ein Protokoll und eine Version für die Sitzungsreferenz aus:
Protokoll | V3 | V3beta1 |
---|---|---|
REST | Sitzungsressource | Sitzungsressource |
RPC | Sitzungsoberfläche | Sitzungsoberfläche |
C# | Nicht verfügbar | Nicht verfügbar |
Go | Nicht verfügbar | Nicht verfügbar |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Nicht verfügbar | Nicht verfügbar |
Python | SessionsClient | SessionsClient |
Ruby | Nicht verfügbar | Nicht verfügbar |
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte, bevor Sie die Anfragedaten unten verwenden:
- PROJECT_ID: ID Ihres GCP-Projekts
- AGENT_ID: Agent-ID
- REGION_ID: Ihre Regions-ID
- SESSION_ID: Ihre Sitzungs-ID
- END_USER_INPUT: Endnutzereingabe
HTTP-Methode und URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
JSON-Text anfordern:
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669", "queryResult": { "text": "I want to buy a shirt", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Ok, let's start a new order." ] } }, { "text": { "text": [ "I'd like to collect a bit more information from you." ] } }, { "text": { "text": [ "What color would you like?" ] } }, {} ], "currentPage": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc", "displayName": "New Order" }, "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "intentDetectionConfidence": 1, "diagnosticInfo": { ... }, "match": { "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "resolvedInput": "I want to buy a shirt", "matchType": "INTENT", "confidence": 1 } } }
Java
Node.js
Python
Produktion
Bevor Sie Ihren Agent in der Produktion ausführen, müssen Sie die Best Practices für die Produktionsvorbereitung implementieren.