Parameter

Parameter werden zum Erfassen und Referenzieren von Werten verwendet, die der Endnutzer während einer Sitzung bereitgestellt hat. Jeder Parameter hat einen Namen und einen Entitätstyp. Im Unterschied zu unstrukturierten Endnutzereingaben sind Parameter strukturierte Daten, mit denen auf einfache Weise ein bestimmter Ablauf ausgeführt werden kann oder Antworten erzeugt werden können.

CX-Parameter ähneln ES-Parametern. Allerdings wurden das Dienstprogramm und der Bereich erweitert und die Syntax zum Verweisen auf Parameter hat sich geändert.

Parameter definieren, referenzieren, festlegen und abrufen

Es gibt vier allgemeine Arten der Verwendung von Parametern:

  • Während der Entwicklung definieren: Während der Entwicklung verwenden Sie die Console oder die API, um Parameter zu definieren. Sie können beispielsweise einen Intent-Parameter definieren und in einer Trainingsformulierung verwenden, um die Endnutzereingabe zu bestimmen, die extrahiert werden soll.
  • Bei der Entwicklung referenzieren: Parameterverweise sind Variablen, die zur Laufzeit extrahierte Parameterwerte enthalten. Während der Entwicklung verwenden Sie die Console oder die API, um auf Parameter in verschiedenen Datentypen zu verweisen. Sie können beispielsweise auf einen Sitzungsparameter in einer statischen Auftragserfüllungsantwort für eine Route verweisen.
  • Zur Laufzeit festgelegt: Zur Laufzeit können der Dialogflow-Dienst, der die API aufruft, und Ihr Webhook-Dienst alle Parameterwerte festlegen. Beispiel: Der Dialogflow-Dienst legt den Wert eines Intent-Parameters fest, wenn eine Endnutzereingabe dem Intent entspricht und die Eingabe Parameterdaten enthält.
  • Zur Laufzeit abrufen: Zur Laufzeit verweist Ihr Parameter auf die festgelegten Parameterwerte. Sie können die Parameterwerte mit der API oder einem Webhook abrufen. Wenn beispielsweise ein Intent zugeordnet und Ihr Webhook aufgerufen wird, empfängt Ihr Webhook-Dienst die Parameterwerte für den Intent.

Parameter benennen

Für die Benennung von Parametern gelten die folgenden Regeln:

  • Verwenden Sie die folgenden Zeichen: [A-Z], [a-z], [0-9], ., -, _
  • Bei Parameternamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Daher behandelt Dialogflow Apple und apple als denselben Parameter. Der Webhook und der API-Clientcode sollten auch Parameternamen als nicht Groß- und Kleinschreibung behandeln, da es für Dialogflow-Namen keine Garantie gibt.

Parameterwerttypen

Parameterwerte unterstützen mehrere Werttypen. Im Abschnitt „Sitzungen“ unten wird beschrieben, wie Sie auf die einzelnen Parameterwerttypen verweisen. Die folgenden Typen werden unterstützt:

Typ Beschreibung
Skalar Ein einzelner numerischer oder String-Wert.
Zusammengesetzt Ein JSON-Objekt, das durch Abgleich einer zusammengesetzten Entität oder durch Ausfüllen eines Intent-Parameters mit den Feldern original und resolved ausgefüllt wird.
Liste Eine Liste mit skalaren oder zusammengesetzten Werten, die für einen als Liste konfigurierten Parameter ausgefüllt werden. Weitere Informationen finden Sie unten im Abschnitt Is List (Ist Liste).

Leerer String und Nullwerte des Parameters

Sie können Stringparameterwerte auf "" festlegen. Dadurch wird der Parameter auf einen leeren String gesetzt.

Sie können jeden Parameterwert auf null setzen. Das bedeutet, dass der Parameter nicht festgelegt wurde.

Ursprüngliche Werte des Parameters

Wenn Text einer bestimmten Entität zur Laufzeit zugeordnet wird, wird er häufig in einen Wert aufgelöst, der für die Verarbeitung einfacher zu verarbeiten ist. Beispielsweise kann das Wort „Äpfel“ in der Endnutzereingabe für eine Obstentität als „Apfel“ aufgelöst werden.

Alle Werttypen für Verweise auf Intent-Parameter können entweder auf den ursprünglichen oder den aufgelösten Wert verweisen.

Nur zusammengesetzte Werttypen für Verweise auf Sitzungsparameter können auf den ursprünglichen Wert verweisen.

Intent-Parameter

Intents verwenden Parameter, um beim Abgleich von Intents von Endnutzern angegebene Daten zu extrahieren. Zum Definieren von Intent-Parametern werden folgende Daten verwendet:

  • Name (auch als ID oder Anzeigename bezeichnet): Ein Name zur Bezeichnung des Parameters.
  • Entitätstyp: der Entitätstyp, der dem Parameter zugeordnet ist
  • Ist-Liste: Wenn "true", wird der Parameter als Liste von Werten behandelt.
  • Im Log entfernen: Wenn der Wert "true" ist, werden vom Endnutzer bereitgestellte Parameterdaten entfernt.

Intent-Parameter definieren

Intent-Parameter werden während der Erstellung definiert, wenn Intent-Daten erstellt oder Trainingsformulierungen annotiert werden.

Intent-Parameter referenzieren

Intent-Parameterverweise können in statischen Antwortnachrichten der Auftragsausführung von Intent-Routen verwendet werden.

Sie können entweder auf den ursprünglichen Wert oder den aufgelösten Wert verweisen.

Verwenden Sie eines der folgenden Formate, um für den aktuell zugeordneten Intent auf einen Parameter zu verweisen:

$intent.params.parameter-id.original
$intent.params.parameter-id.resolved

Wenn die Parameter-ID beispielsweise date lautet, können Sie auf den aufgelösten Wert als $intent.params.date.resolved verweisen.

Intent-Parameter festlegen

Wenn eine Endnutzereingabe zur Laufzeit einem Intent zugeordnet wird, wird jeder von einer Annotation verwendete Parameter für die zugehörige Trainingsformulierung von Dialogflow festgelegt.

Die Auftragsausführung für eine Intent-Route kann mit einer Voreinstellung für den Auftragsausführungsparameter einen Intent-Parameterwert zur Laufzeit festlegen.

Intent-Parameter abrufen

Während der Unterhaltungsrunde, in der ein Intent zugeordnet wird, kann Ihr Code auf die Werte des Intent-Parameters zugreifen.

Interaktionen mit der API geben Intent-Parameterwerte zurück. Weitere Informationen finden Sie im Feld queryResult.parameters der Methode detectIntent für den Typ Session.

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++ SessionsClient Nicht verfügbar
C# SessionsClient Nicht verfügbar
Einfach loslegen (Go) SessionsClient 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

Die empfangenden Intent-Parameterwerte von Webhook. Weitere Informationen finden Sie in der Webhook-Anfrage im Feld intentInfo.parameters.

Formularparameter

Für jede Seite können Sie ein Formular definieren. Dies ist eine Liste von Parametern, die vom Endnutzer für die Seite erfasst werden sollen. Der Agent interagiert mit dem Endnutzer mehrere Unterhaltungsrunden lang, bis er alle erforderlichen Formularparameter, auch Seitenparameter genannt, erfasst hat. Der Agent erfasst diese Parameter in der auf der Seite definierten Reihenfolge. Für jeden Formularparameter geben Sie auch Aufforderungen an, mit denen der Agent diese Informationen vom Endnutzer anfordert. Dieser Vorgang wird als Ausfüllen von Formularen bezeichnet.

Sie können beispielsweise ein Formular erstellen, in dem der Name und die Telefonnummer des Endnutzers für eine Collect Customer Info-Seite erfasst werden.

Das Ausfüllen von CX-Formularen ähnelt dem Ausfüllen von ES-Slots.

Folgende Daten werden verwendet, um Formularparameter zu definieren:

Name der Konsolenoption API-Feldkette Beschreibung
Anzeigename Page.form.parameters[].displayName Ein Name zur Identifizierung des Parameters.
Entitätstyp Page.form.parameters[].entityType Entity (Entität): Der Entitätstyp für den Parameter.
Erforderlich Page.form.parameters[].required Gibt an, ob der Parameter erforderlich ist. Erforderliche Parameter müssen ausgefüllt werden, bevor das Ausfüllen des Formulars abgeschlossen ist. Der Agent fordert den Endnutzer auf, Werte einzugeben. Weitere Informationen finden Sie unten im Abschnitt Formularparameter festlegen.
Standardwert (nur sichtbar, wenn Erforderlich deaktiviert ist) Page.form.parameters[].defaultValue Der Standardwert eines optionalen Parameters. Weitere Informationen finden Sie unten im Abschnitt Formularparameter festlegen.
Is list Page.form.parameters[].isList Wenn "true", wird der Parameter als Liste von Werten behandelt.
Im Log entfernen Page.form.parameters[].redact Bei Einstellung auf "true" werden vom Endnutzer bereitgestellte Parameterdaten entfernt.
Erstauftragsausführung Page.form.parameters[].fillBehavior.initialPromptFulfillment Erste Aufforderungen in Form von Auftragsausführung, um einen erforderlichen Parameterwert vom Endnutzer anzufordern. Weitere Informationen finden Sie unten im Abschnitt Formularparameter festlegen.
Event-Handler für erneute Eingabeaufforderungen Page.form.parameters[].fillBehavior.repromptEventHandlers Handler für erneute Eingabeaufforderungen: Diese werden verwendet, wenn der Agent den Endnutzer nach einem fehlgeschlagenen Versuch zur erneuten Eingabe zum Ausfüllen des Parameters hinweisen muss. Weitere Informationen finden Sie unter Handler für die erneute Eingabeaufforderung zum Ausfüllen von Formularen. Wenn keine Event-Handler für automatische Aufforderungen definiert sind, gibt der Agent nach einem fehlgeschlagenen Versuch eine Abfrage mit den ersten Eingabeaufforderungen aus.
DTMF Nicht verfügbar Weitere Informationen finden Sie im Abschnitt DTMF weiter unten.

Formularparameter definieren und verwalten

Formularparameter werden bei der Erstellung einer Seite zur Entwurfszeit definiert.

Wenn Sie die Reihenfolge der Formularparameter über die Console ändern möchten, klicken Sie auf der Seite auf den Abschnittstitel Parameters und ziehen Sie die Parameterzeilen in die Parametertabelle.

Um einen Formularparameter zu löschen, klicken Sie auf der Seite auf den Abschnittstitel Parameters, bewegen Sie den Mauszeiger auf einen Parameter und klicken Sie auf die Schaltfläche zum Löschen.

Formularparameter referenzieren

Formularparameterreferenzen werden nicht direkt verwendet. Sie können nur den Ausfüllstatus einzelner Formularparameter oder des gesamten Formulars prüfen. Sie können diese Formularstatusreferenzen in einer Bedingungsanforderung einer Bedingungsroute verwenden.

Verwenden Sie die folgende Bedingung, um zu prüfen, ob das vollständige Formular der aktuellen Seite ausgefüllt ist:

$page.params.status = "FINAL"

Mit der folgenden Bedingung können Sie prüfen, ob ein bestimmter Formularparameter in der letzten Runde ausgefüllt wurde:

$page.params.parameter-id.status = "UPDATED"

Formularparameter festlegen

Formularparameterwerte können auf verschiedene Arten festgelegt werden. In den folgenden Unterabschnitten werden die einzelnen Mechanismen zum Festlegen von Formularparameterwerten beschrieben.

Standardparameterwerte

Sie können Standardwerte für optionale Formularparameter angeben. Wenn das Ausfüllen des Formulars beginnt, werden alle nicht festgelegten optionalen Formularparameter auf ihre Standardwerte gesetzt. Diese Werte können mit einigen der folgenden Mechanismen initialisiert oder überschrieben werden.

Wenn ein Parameter erforderlich ist, wird sein Standardwert ignoriert.

Formular ausfüllen

Dialogflow legt automatisch Parameterwerte fest, die der Endnutzer während des Ausfüllens eines Formulars angegeben hat. Der Agent erfasst die erforderlichen Parameter in der auf der Seite definierten Reihenfolge. Der Agent fordert den Endnutzer auf, die erforderlichen Werte mithilfe der anfänglichen Eingabeauftragsausführung für jeden erforderlichen Parameter einzugeben. Optionale Parameter lösen keine Aufforderungen aus.

Wenn ein erforderlicher Parameterwert nicht vom Endnutzer nach einer Agent-Eingabeaufforderung bereitgestellt wird, wird die erste Eingabeaufforderung wiederholt, es sei denn, in den Handlern für erneute Eingabeaufforderungen ist ein anderes Verhalten definiert. Wenn mehrere anfängliche Texteingaben definiert sind, entspricht das Agent-Verhalten dem Verhalten von Antworttexten der Auftragsausführung.

Weitergabe von Intent- und Sitzungsparametern

Wenn ein Parameter eines beliebigen Typs zur Laufzeit festgelegt wird, wird er in die Sitzung geschrieben und wird zu einem Sitzungsparameter.

Wenn eine Seite erstmalig aktiv wird und während ihres aktiven Zeitraums, wird jeder Formularparameter mit demselben Namen wie ein Sitzungsparameter automatisch auf den Sitzungsparameterwert gesetzt.

Dies kann mit einem zugeordneten Intent-Parameter in einer Intent-Route oder Parameterverteilung auftreten.

Die Intent- und Sitzungsparameterverteilung ist der einzige Mechanismus, um optionale Formularparameter auf Werte aus der Endnutzereingabe festzulegen. Dieser Mechanismus kann jedoch auch die erforderlichen Formularparameterwerte festlegen oder überschreiben.

Voreinstellungen für Auftragsausführungsparameter

Die Auftragsausführung für eine Route, einen Event-Handler oder eine erneute Aufforderung zur Formulareingabe kann eine Voreinstellung für einen Auftragsausführungsparameter verwenden, um einen Formularparameterwert zur Laufzeit festzulegen. Eine Voreinstellung für einen Auftragsausführungsparameter überschreibt einen Parameterwert, einschließlich der Standardwerte von Parametern.

Webhook-Parametereinstellung

Ihr Webhook kann Formularparameterwerte zur Laufzeit festlegen. Weitere Informationen finden Sie in der Webhook-Antwort im Feld pageInfo.formInfo.parameterInfo.

Formularparameter abrufen

Interaktionen mit der API geben Formularparameterwerte zurück. Weitere Informationen finden Sie im Feld queryResult.parameters der Methode detectIntent für den Typ Session.

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++ SessionsClient Nicht verfügbar
C# SessionsClient Nicht verfügbar
Einfach loslegen (Go) SessionsClient 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

Die empfangenden Formularparameterwerte von Webhook. Weitere Informationen finden Sie in der Webhook-Anfrage im Feld pageInfo.formInfo.parameterInfo.

Handler für die erneute Eingabeaufforderung zum Ausfüllen von Formularen

Handler für erneute Eingabeaufforderungen, auch als Event-Handler auf Parameterebene bezeichnet, werden verwendet, um das Verhalten von komplexen Parametern für erforderliche Parameter zu definieren. Handler für die erneute Eingabeaufforderung können beispielsweise verwendet werden, um die Eingabeaufforderung zu ändern, wenn der Endnutzer nach der ersten Eingabeaufforderung keinen Wert angibt, und um nach einer fehlgeschlagenen N-Eingabe zu einer anderen Seite zu wechseln.

Wenn keine Handler für die erneute Eingabeaufforderung definiert sind, wird die erste Eingabeaufforderung verwendet, um den Endnutzer nach Bedarf noch einmal aufzufordern.

Macht der Endnutzer unerwartete Eingaben, wird ein Ereignis vom Typ sys.no-match-* oder sys.no-input-* aufgerufen und alle für diese Ereignisse definierten Handler für die erneute Eingabeaufforderung werden aufgerufen.

Wie andere Ereignis-Handler ist ein Reprompt-Handler ein Zustands-Handler, der mit einer oder beiden der folgenden Optionen konfiguriert werden kann:

  • Eine Auftragsausführung zur Bereitstellung einer Nachricht an den Nutzer mit einer erneuten Eingabeaufforderung und/oder einer Parametervoreinstellung.
  • Ein Umstellungsziel zum Ändern der aktuellen Seite.

Sitzungsparameter

Wenn ein Parameter eines beliebigen Typs zur Laufzeit festgelegt wird, wird er in die Sitzung geschrieben und wird zu einem Sitzungsparameter. Diese Parameter werden nicht explizit bei der Entwicklung definiert. Sie können während einer Sitzung jederzeit auf diese Sitzungsparameter verweisen.

Sitzungsparameter referenzieren

Sitzungsparameterverweise können in den statischen Antwortnachrichten für die folgenden Arten von Auftragsausführungen verwendet werden:

  • Auftragsausführung für Seiteneingaben
  • Auftragsausführung für Routen
  • Auftragsausführung für Event-Handler
  • Auftragsausführung für Eingabeaufforderungen für Formulare
  • Auftragsausführungen für erneute Eingabeaufforderungen für Formulare

Die Verweise können auch verwendet werden in:

Verwenden Sie folgende Formate, um auf einen Sitzungsparameter zu verweisen:

Skalar

So greifen Sie auf einen Parameter mit dem Entitätstyp "Skalar" zu:

$session.params.parameter-id

Wenn die Parameter-ID beispielsweise date lautet, können Sie auf den Wert als $session.params.date verweisen.

Zusammengesetzt

  • So greifen Sie auf ein Mitglied eines Parameters mit dem Entitätstyp "Composite" zu:

    $session.params.parameter-id.member-name

    Beispiel: Lautet die Parameter-ID location, können Sie auf den zip-code-Mitgliedswert als $session.params.location.zip-code verweisen.

  • So greifen Sie auf den ursprünglichen Wert eines Parameters mit einem zusammengesetzten Entitätstyp zu:

    $session.params.parameter-id.original
  • Für den Zugriff auf das vollständige Objekt eines Parameters mit einem zusammengesetzten Entitätstyp verwenden Sie die IDENTITY-Systemfunktion.

Liste

  • So greifen Sie auf eine vollständige Liste der Elemente zu:

    $session.params.parameter-id

    Beispiel: Wenn die Listenparameter-ID colors lautet und die aus einer Nutzerabfrage extrahierten Werte ["red", "blue", "yellow"] sind, können Sie mit $session.params.colors auf alle Werte verweisen.

  • So greifen Sie auf das x-te Element eines Listenparameters zu:

    $session.params.parameter-id[i]

    Beispiel: Wenn die Listenparameter-ID colors lautet, verweist $session.params.colors[0] auf den ersten Wert.

Sitzungsparameter festlegen

Wenn das Ausfüllen des Formulars abgeschlossen ist, werden die ausgefüllten Parameter von Dialogflow in die Sitzung geschrieben.

Die Auftragsausführung für eine Route, einen Event-Handler oder eine erneute Eingabeaufforderung für Formulare kann mit einer Voreinstellung für Auftragsausführungsparameter einen Sitzungsparameterwert zur Laufzeit festlegen.

Ihr Webhook kann Sitzungsparameterwerte zur Laufzeit festlegen. Weitere Informationen finden Sie im Feld sessionInfo.parameters in der Standard-Webhook-Antwort oder unter Antwort des flexiblen Webhooks.

Durch Interaktion mit der API können Sitzungsparameterwerte festgelegt werden. Weitere Informationen finden Sie im Feld queryParams.parameters der Anfragemethode detectIntent für den Typ Session.

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++ SessionsClient Nicht verfügbar
C# SessionsClient Nicht verfügbar
Einfach loslegen (Go) SessionsClient 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

Sitzungsparameter abrufen

Interaktionen mit der API geben Sitzungsparameterwerte zurück Weitere Informationen finden Sie im Feld queryResult.parameters der Methode detectIntent für den Typ Session.

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++ SessionsClient Nicht verfügbar
C# SessionsClient Nicht verfügbar
Einfach loslegen (Go) SessionsClient 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

Die empfangenden Sitzungsparameterwerte von Webhook. Weitere Informationen finden Sie in der Webhook-Anfrage im Feld sessionInfo.parameters.

Parameterverteilung

Wenn eine Endnutzereingabe einen Parameterwert bereitstellt, kann der Parameter an andere Ebenen weitergegeben werden:

  • Wenn ein Intent-Parameter durch eine Intent-Übereinstimmung festgelegt wird, werden ähnliche Formularparameter für die aktive Seite auf denselben Wert gesetzt. Der Entitätstyp des Parameters wird durch die Intent-Parameterdefinition festgelegt.
  • Wenn ein Intent-Parameter durch einen Intent-Abgleich festgelegt wird oder ein Formularparameter beim Ausfüllen eines Formulars festgelegt wird, wird der Parameter zu einem Sitzungsparameter.

DTMF für Telefonieintegrationen

Sie können DTMF (Dual-Tone-Multifrequenzsignalisierung) für einen Parameter aktivieren und konfigurieren. Nach der Aktivierung kann ein Endnutzer für einen Agent, der eine Telefonieintegration verwendet, die Telefontastatur verwenden, um Parameterwerte bereitzustellen.

Zur Vermeidung von Mehrdeutigkeit kann die DTMF-Eingabe sowohl in normalen als auch in DTMF-spezifischen Formen (empfohlen) interpretiert werden:

  • Die normale Form ist einfach die Keypad-Werte, die vom Endnutzer eingegeben werden. Beispiel: 123#.
  • Die DTMF-spezifische Form konvertiert die Eingabe in dtmf_digits_[digits], wobei [digits] die ursprünglichen DTMF-Ziffern sind, wobei * durch star und # durch pound ersetzt wird. Beispiel: 123# wird als dtmf_digits_123pound interpretiert.

Beim Abgleich von Entitätstypen für einen Parameter versucht Dialogflow, sowohl die normalen als auch die DTMF-spezifischen Formen abzugleichen. Wenn ein Entitätstyp für die DTMF-Eingabe verwendet wird, sollten Sie Synonyme wie dtmf_digits_123 definieren, um den NLU-Abgleich zu verbessern.

Wenn die DTMF-Eingabe nicht die Beendigungsbedingung erfüllt (entweder hat sie die maximale Ziffernlänge nicht erreicht oder wurde sie nicht durch die Ziffer beendet wurde), wartet der Dialogflow-Agent auf weitere Eingabe. Wenn in diesem Zeitraum das Zeitlimit ohne Sprache ausgelöst wird, ruft der Agent stattdessen ein Ereignis ohne Eingabe auf. Wenn nur eine Sprachäußerung erkannt wird, stimmt der Agent mit der Spracheingabe überein. Wenn sowohl die Sprach- als auch die DTMF-Eingabe erkannt werden, wird die Spracheingabe verworfen und nur die DTMF-Eingabe berücksichtigt.

So aktivieren und passen Sie DTMF für einen Parameter an:

Console

  1. Aktivieren Sie Erweiterte Einstellungen in den Agent-Sprach- und IVR-Einstellungen, falls Sie diese noch nicht aktiviert haben.
  2. Erstellen Sie einen Seitenparameter.
  3. Wählen Sie im Parameterbereich die Option DTMF aktivieren aus.
  4. Legen Sie für Maximale Ziffern die maximale Anzahl von Ziffern fest, die der Endnutzer für diesen Parameter angeben kann.
  5. Setzen Sie Ziffer beenden auf den Keypad-Wert, der die DTMF-Eingabe für den Parameter beendet. Für diese Einstellung ist die Verwendung von # üblich. Die Ziffer wird nicht zur Dialogflow-Abfrage im Agent hinzugefügt. Wenn die Ziffer also # ist und die Eingabe 123# ist, lautet die tatsächliche Abfrageeingabe "123".

Beim Erstellen des Agents können Sie DTMF-Eingaben im Simulator testen.

Intelligente Endpunkte

Wenn für den Agent intelligente Endpunkte aktiviert ist, können Sie das Verhalten der intelligenten Endpunkte für einen numerischen Parameter anpassen.

  1. Legen Sie Mindestanzahl der Ziffern fest, um den intelligenten Endpunkt zu signalisieren, dass er wartet, bis alle Ziffern erfasst wurden.
  2. Legen Sie Transkripte korrigieren fest, um die Spracherkennung von Ziffern zu verbessern, indem Sie häufige Fehler bei der Zifferntranskription beheben. Dies wird nur für Anfragen unterstützt, bei denen der Sprachcode „en“ oder „en-*“ angegeben ist.
  3. Legen Sie Zeitüberschreitung abwarten fest, um die zusätzliche Zeit anzugeben, die Dialogflow auf weitere Eingaben durch den Nutzer wartet.

Parameter auf Ablaufebene

Ablaufbezogene Parameter können als Voreinstellungen für Auftragsausführungsparameter oder als Formularparameter definiert werden. Auf diese Parameter kann nur verwiesen werden, während der Ablauf, in dem sie definiert sind, aktiv ist. Sie werden nicht in den Sitzungsparametern beibehalten.

Verwenden Sie die folgende Syntax, um einen flussbezogenen Parameter zu definieren oder darauf zu verweisen:

$flow.parameter-name

Wenn der Parametername beispielsweise date lautet, können Sie den Parameter als $flow.date definieren oder darauf verweisen.

Beachten Sie, dass sich die Verwendung des Präfixes $ beim Definieren von Parametern von anderen Parametertypen unterscheidet, bei denen $ nicht für Parameterdefinitionen verwendet wird.

Beispiel für eine ablaufbezogene Parameterdefinition: Screenshot eines flussbezogenen Parameters.

Lifetime-Wert von Parameterwerten auf Flussebene

Es ist selten, aber in bestimmten fortgeschrittenen Fällen müssen Sie möglicherweise verstehen, wie ablaufbezogene Parameterwerte beibehalten (oder verworfen) werden, wenn ein Ablauf inaktiv und dann wieder aktiv wird.

Ob ablaufbezogene Parameterwerte beibehalten werden, wenn ein Ablauf inaktiv wird und dann wieder aktiv wird, hängt vom Ablaufstapel und den Flussinstanzen im Stack ab.

  • Wenn Ablauf A mit einem bestimmten Übergangsziel zu Ablauf B übergeht, bleibt Ablauf A (übergeordneter Ablauf) im Stack, Ablauf A behält seine ablaufbezogenen Parameterwerte bei und eine neue Instanz von Ablauf B (untergeordneter Ablauf) wird dem Stack hinzugefügt.
  • Wenn ein untergeordneter Ablauf mithilfe eines symbolischen Übergangsziels (z. B. END_FLOW) zurück zu einem übergeordneten Ablauf wechselt, wird der untergeordnete Ablauf aus dem Stack entfernt, alle Parameterwerte auf Ebene des untergeordneten Ablaufs verworfen und alle Parameterwerte auf dem übergeordneten Ablauf beibehalten.
  • Wenn eine Reihe von Übergängen mit spezifischen Übergangszielen verwendet wird, kann der Ablaufstack mehrere Instanzen eines Ablauftyps enthalten. Jede Instanz des Ablauftyps hat eindeutige Parameterwerte auf Ablaufebene. Beispiel: A1 -> B1 -> C1 -> B2, wobei A, B und C Ablauftypen sind und die Zahlen Instanzen dieser Ablauftypen angeben. In diesem Beispiel sind B1 und B2 unterschiedliche Instanzen von Ablauf B und haben eindeutige flussbezogene Parameter.

Beispiele:

Übergänge Ergebnis
Ablauf A (A1) wird aktiviert.
Ablauf B (B1) wird mit einem bestimmten Übergangsziel aktiviert.
Ablauf B geht mithilfe eines symbolischen Übergangsziels zurück zu Ablauf A (A1), der ihn initiiert hat.
Ablauf A behält die Parameterwerte bei.
Ablauf A (A1) wird aktiviert.
Ablauf B (B1) wird mit einem bestimmten Übergangsziel aktiviert.
Ablauf B geht mit einem bestimmten Übergangsziel zu einer neuen Instanz von Ablauf A (A2) über.
Die neue Instanz von Ablauf A (A2) oben im Stack hat keinen Zugriff auf die Parameterwerte von Ablauf A (A1) am unteren Rand des Stacks.
Ablauf A (A1) wird aktiviert.
Ablauf B (B1) wird mit einem bestimmten Übergangsziel aktiviert.
Ablauf A (A1) wird mit einem symbolischen Übergangsziel aktiviert.
Ablauf B (B2) wird mit einem bestimmten Übergangsziel aktiviert.
Ablauf B (B2) behält keine Parameterwerte bei, die festgelegt wurden, während er nach dem zweiten Übergang (B1) aktiv war.

Parameter auf Anfrageebene

Parameter auf Anfrageebene sind kurzlebige Parameter, die von Dialogflow erstellt werden und nur während des Lebenszyklus der aktuellen Anfrage referenziert werden können. Sie werden nicht in den Sitzungsparametern beibehalten.

Anfragebezogene Parameter werden von Dialogflow für die folgenden Funktionen generiert.

Sprache und Nutzereingabe

So können Sie auf den Sprachcode und die Nutzereingaben für die Anfrage zugreifen:

Referenz Beschreibung
$request.language Sprachcode in QueryInput.language_code angegeben.
$request.resolved-language Der tatsächliche Sprachcode, der vom Agent bei der Verarbeitung verwendet wird. Die aufgelöste Sprache kann sich von der in der Anfrage angegebenen Sprache unterscheiden. Wenn der Agent beispielsweise nur „en“ unterstützt, während die in der Anfrage angegebene Sprache „en-US“ ist, lautet die aufgelöste Sprache „en“.
$request.user-utterance Die aktuelle Nutzeräußerung, die in der Anfrage angegeben ist.

Benutzerdefinierte Nutzlast

Wenn QueryParameters.payload festgelegt ist, können Sie über $request.payload.param-id auf den entsprechenden Parameter zugreifen.

Sentimentanalyse

Die folgenden Sentimentreferenzen sind verfügbar, wenn die Sentimentanalyse aktiviert ist:

Referenz Typ Beschreibung
$request.Sentiment.score Nummer Stimmungswert zwischen -1,0 (negative Stimmung) und 1,0 (positive Stimmung).
$request.sentiment.magnitude Nummer Zeigt die allgemeine Stärke der (sowohl positiven als auch negativen) Emotion zwischen 0,0 und +inf an. Im Gegensatz zum Wert ist die Größe nicht normalisiert. Jeder Ausdruck von Emotionen in der Endnutzereingabe (sowohl positive als auch negative) trägt zur Größe der Eingabe bei. Längere Eingaben können größere Größen haben.
$request.Sentiment.succeeded Boolesch "True", wenn die Sentimentanalyse erfolgreich war, andernfalls "false".

Entfernen von Parametern

Für jeden Intent- oder Formularparameter können Sie die Parameterentfernung aktivieren, um Endnutzer-Laufzeitparameterdaten aus Logs und dem internen Dialogflow-Speicher zu entfernen. Entfernende Parameter werden in Logs als $parameter-name_redacted angezeigt.

Beispiel: Der Endnutzer gibt "My address is 1600 Amphitheatre Parkway" ein. Dies führt dazu, dass ein Address-Parameter an "1600 Amphitheatre Parkway" gesendet wird. Der protokollierte Text lautet "My address is $address_redacted".

So aktivieren Sie die Parameterentfernung:

Console

Klicken Sie beim Erstellen oder Aktualisieren eines Parameters das Kästchen Redlog im Log entfernen an.

API

Setzen Sie das Feld parameters[].redact für den Typ Intent auf "true".

Wählen Sie ein Protokoll und eine Version für die Intent-Referenz aus:

Protokoll V3 V3beta1
REST Intent-Ressource Intent-Ressource
RPC Intent-Schnittstelle Intent-Schnittstelle
C++ IntentsClient Nicht verfügbar
C# IntentsClient Nicht verfügbar
Einfach loslegen (Go) IntentsClient Nicht verfügbar
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP Nicht verfügbar Nicht verfügbar
Python IntentsClient IntentsClient
Ruby Nicht verfügbar Nicht verfügbar

Setzen Sie das Feld form.parameters[].redact für den Typ Page auf "true".

Wählen Sie ein Protokoll und eine Version für die Seitenreferenz aus:

Protokoll V3 V3beta1
REST Seitenressource Seitenressource
RPC Benutzeroberfläche der Seite Benutzeroberfläche der Seite
C++ PagesClient Nicht verfügbar
C# PagesClient Nicht verfügbar
Einfach loslegen (Go) PagesClient Nicht verfügbar
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP Nicht verfügbar Nicht verfügbar
Python PagesClient PagesClient
Ruby Nicht verfügbar Nicht verfügbar

Alternativ können Sie alle Parameter eines bestimmten Entitätstyps entfernen.