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 Konsole 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 Konsole 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 festlegen: Zur Laufzeit können der Dialogflow CX-Dienst, Ihr Dienst, der die API aufruft, und Ihr Webhook-Dienst Parameterwerte festlegen. Der Dialogflow CX-Dienst legt beispielsweise den Wert eines Intent-Parameters fest, wenn eine Endnutzereingabe mit dem Intent übereinstimmt 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 die Groß-/Kleinschreibung nicht berücksichtigt. Dialogflow CX behandelt
Appleundapplealso als denselben Parameter. Webhook- und API-Clientcode sollten Parameternamen ebenfalls als nicht zwischen Groß- und Kleinschreibung unterscheidend behandeln, da für von Dialogflow CX zurückgegebene Parameternamen keine Groß- und Kleinschreibung garantiert wird. - Wenn Sie Parameter mit derselben ID oder demselben Anzeigenamen in verschiedenen Intents oder Formularen erstellen, achten Sie darauf, dass der Entitätstyp und andere Einstellungen für alle Definitionen gleich sind. Wenn sich der Entitätstyp oder andere Parametereinstellungen unterscheiden, verwenden Sie für jede Definition eine eindeutige Parameter-ID oder einen eindeutigen Anzeigenamen.
Parameterwerttypen
Parameterwerte unterstützen mehrere Werttypen. Im folgenden Abschnitt zu Sitzungen wird beschrieben, wie Sie auf die einzelnen Parameterwerttypen verweisen. Die folgenden Typen werden unterstützt:
| Typ | Beschreibung |
|---|---|
| Skalar | Ein einzelner numerischer Wert oder Stringwert. |
| Zusammengesetzt | Ein JSON-Objekt, das durch Abgleich einer zusammengesetzten Entität oder durch Ausfüllen eines Intents-Parameters ausgefüllt wird und die Felder original und resolved enthält. |
| Liste | Eine Liste von Skalar- oder zusammengesetzten Werten, die für einen als Liste konfigurierten Parameter ausgefüllt werden. Hier finden Sie die Optionen für Ist Liste. |
Leere Strings und Nullwerte für Parameter
Sie können Stringparameterwerte auf "" festlegen, wodurch der Parameter auf den leeren String gesetzt wird.
Sie können jeden Parameterwert auf null setzen, was bedeutet, dass der Parameter nicht festgelegt wurde.
Ursprüngliche Parameterwerte
Wenn Text zur Laufzeit mit einer bestimmten Entität abgeglichen wird, wird er häufig in einen Wert aufgelöst, der für die Verarbeitung besser geeignet ist. Beispielsweise kann das Wort „Äpfel“ in der Eingabe des Endnutzers für eine Fruchtentität als „Apfel“ aufgelöst werden.
Alle Werttypen für Intent-Parameterreferenzen können entweder auf den ursprünglichen oder den aufgelösten Wert verweisen.
Nur zusammengesetzte Werttypen für Sitzungsparameterreferenzen 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 auf den aufgelösten Wert verweisen.
Verwenden Sie eines der folgenden Formate, um auf einen Parameter für den aktuellen übereinstimmenden Intent 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 mit einem Intent übereinstimmt, wird jeder Parameter, der von einer Annotation für die zugehörige Trainingsformulierung verwendet wird, von Dialogflow CX 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 des Gesprächs, in dem ein Intent zugeordnet wird, kann Ihr Code auf die Intent-Parameterwerte 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 |
| 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.
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 im Abschnitt Formularparameter festlegen. |
| Standardwert (nur sichtbar, wenn Erforderlich deaktiviert ist) | Page.form.parameters[].defaultValue |
Der Standardwert eines optionalen Parameters. Weitere Informationen finden Sie 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 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 die Nachfrage definiert sind, fragt der Agent nach einem fehlgeschlagenen Versuch mit den ursprünglichen Prompts nach. |
| DTMF | Nicht verfügbar | Weitere Informationen finden Sie im Abschnitt DTMF. |
Formularparameter definieren und verwalten
Formularparameter werden bei der Erstellung einer Seite zur Entwurfszeit definiert.
Wenn Sie die Reihenfolge der Formularparameter in der Console ändern möchten, klicken Sie auf der Seite auf den Abschnittstitel Parameter und ziehen Sie dann die Parameterzeilen in der Parametertabelle.
Wenn Sie einen Formularparameter löschen möchten, klicken Sie auf der Seite auf den Abschnittstitel Parameter, halten Sie den Mauszeiger über einen Parameter und klicken Sie dann auf die Schaltfläche „Löschen“ delete.
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 Weise festgelegt werden. In den folgenden Abschnitten 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 durch einige der folgenden Mechanismen initialisiert oder überschrieben werden.
Wenn ein Parameter erforderlich ist, wird sein Standardwert ignoriert.
Formular ausfüllen
Dialogflow CX legt automatisch Parameterwerte fest, die vom Endnutzer beim Ausfüllen des Formulars angegeben werden. 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 Prompts 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 zum ersten Mal aktiviert wird und während ihrer aktiven Zeit, wird jeder Formularparameter mit demselben Namen wie ein Sitzungsparameter automatisch auf den Wert des Sitzungsparameters gesetzt.
Dies kann mit einem zugeordneten Intent-Parameter in einer Intent-Route oder Parameterverteilung auftreten.
Die Weitergabe von Intent- und Sitzungsparametern ist der einzige Mechanismus, um optionale Formularparameter auf Werte aus der Eingabe des Endnutzers festzulegen. Mit diesem Mechanismus können aber auch erforderliche Formularparameterwerte festgelegt oder überschrieben werden.
Voreinstellungen für Auftragsausführungsparameter
Für das Fulfillment einer Route, eines Event Handlers oder einer Formular-Nachfrage kann eine Fulfillment-Parametervoreinstellung verwendet werden, 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
Bei Interaktionen mit der API werden die Werte der Formularparameter zurückgegeben.
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 |
| 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 |
Webhooks erhalten Formularparameterwerte.
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, um eine Nachricht für die Nachfrage an den Endnutzer und eine Parametervoreinstellung bereitzustellen.
- 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 Referenzen können auch in folgenden Bereichen verwendet werden:
- Webhook-Headerwerte für die Authentifizierung.
- Flexible Webhook-Anfragen, um Parameterwerte an einen Webhook zu senden.
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.
Composite
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 denzip-code-Mitgliedswert als$session.params.location.zip-codeverweisen.So greifen Sie auf den Originalwert eines Parameters mit einem zusammengesetzten Entitätstyp zu:
$session.params.parameter-id.original
Wenn Sie auf das vollständige Objekt eines Parameters mit einem zusammengesetzten Entitätstyp zugreifen möchten, verwenden Sie die Systemfunktion IDENTITY.
Liste
So greifen Sie auf eine vollständige Liste der Elemente zu:
$session.params.parameter-id
Beispiel: Wenn die Listenparameter-ID
colorslautet und die aus einer Nutzerabfrage extrahierten Werte["red", "blue", "yellow"]sind, können Sie mit$session.params.colorsauf alle Werte verweisen.So greifen Sie auf das x-te Element eines Listenparameters zu:
$session.params.parameter-id[i]
Beispiel: Wenn die Listenparameter-ID
colorslautet, verweist$session.params.colors[0]auf den ersten Wert.
Sitzungsparameter festlegen
Wenn das Formular ausgefüllt ist, werden die ausgefüllten Parameter von Dialogflow CX in die Sitzung geschrieben.
Für das Fulfillment einer Route, eines Ereignis-Handlers oder einer Formularnachfrage kann eine Fulfillment-Parametervoreinstellung verwendet werden, um einen Sitzungsparameterwert zur Laufzeit festzulegen.
Ihr Webhook kann Sitzungsparameterwerte zur Laufzeit festlegen.
Weitere Informationen finden Sie im Feld sessionInfo.parameters in der Standard-Webhook-Antwort oder unter Flexible Webhook-Antwort.
Durch Interaktionen 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 |
| 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
Bei Interaktionen mit der API werden die Werte der Sitzungsparameter zurückgegeben.
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 |
| 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 |
Webhooks erhalten Sitzungsparameterwerte.
Weitere Informationen finden Sie in der Webhook-Anfrage im Feld sessionInfo.parameters.
Spracherkennung für Telefonie deaktivieren
In einer lauten Umgebung kann die Spracherkennung Hintergrundgeräusche als Eingabe des Endnutzers transkribieren. Bei einer Telefonie-Integration können diese falschen Transkripte Ereignisse ohne Übereinstimmung auslösen oder einen Endnutzer unterbrechen, der DTMF-Ziffern über die Tastatur eingibt.
Wenn Sie nur DTMF-Eingaben akzeptieren möchten, setzen Sie den Sitzungsparameter telephony_disable_voice_processing auf true. Ab dem nächsten Gesprächsabschnitt ignoriert Dialogflow CX Spracheingaben und verarbeitet nur DTMF-Eingaben. Diese Einstellung bleibt für den Rest der Sitzung wirksam. Wenn Sie die Spracherkennung wieder aktivieren möchten, setzen Sie den Parameter auf false.
Wir empfehlen, diesen Parameter als Fallback zu verwenden, nicht zu Beginn einer Unterhaltung. Wenn der Endnutzer beispielsweise zwei aufeinanderfolgende No-Match- oder No-Input-Ereignisse auslöst, verwenden Sie eine Parameter-Voreinstellung für die Auftragsausführung, um den Parameter auf true zu setzen, und fordern Sie den Endnutzer dann auf, das Tastenfeld zu verwenden.
Achten Sie darauf, dass DTMF für die Parameter aktiviert ist, die der Endnutzer angeben muss.
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. Wenn diese Option aktiviert ist, kann ein Endnutzer eines KI-Agenten mit einer Telefonie-Integration das Tastenfeld des Telefons verwenden, um Parameterwerte anzugeben.
Zur Vermeidung von Mehrdeutigkeit kann die DTMF-Eingabe sowohl in normalen als auch in DTMF-spezifischen Formen (empfohlen) interpretiert werden:
- Die Normalform sind die Werte, die der Endnutzer über das Tastenfeld eingegeben hat.
Beispiel:
123#. - Die DTMF-spezifische Form konvertiert die Eingabe in
dtmf_digits_[digits], wobei[digits]die ursprünglichen DTMF-Ziffern sind, wobei*durchstarund#durchpoundersetzt wird. Beispiel:123#wird alsdtmf_digits_123poundinterpretiert.
Beim Abgleich von Entitätstypen für einen Parameter versucht Dialogflow CX, 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 die Beendigungsbedingung nicht erfüllt (entweder wurde die maximale Ziffernlänge nicht erreicht oder sie wurde nicht durch die Endziffer beendet), wartet der Dialogflow CX-Agent auf weitere Eingaben. 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
- Aktivieren Sie Erweiterte Einstellungen in den Agent-Sprach- und IVR-Einstellungen, falls Sie diese noch nicht aktiviert haben.
- Erstellen Sie einen Seitenparameter.
- Wählen Sie im Parameterbereich die Option DTMF aktivieren aus.
- Legen Sie für Maximale Ziffern die maximale Anzahl von Ziffern fest, die der Endnutzer für diesen Parameter angeben kann.
- 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 Endziffer wird der Dialogflow CX-Abfrage für den Agenten nicht hinzugefügt. Wenn die Endziffer also „#“ und die Eingabe „123#“ ist, lautet die tatsächliche Abfrageeingabe „123“.
Beim Erstellen des KI-Agenten können Sie DTMF-Eingaben im Simulator testen.
Parameter auf Ablaufebene
Parameter auf Ablaufebene können als Voreinstellungen für Ausführungsparameter oder Formularparameter definiert werden. Diese Parameter können nur referenziert werden, wenn der Ablauf, in dem sie definiert sind, aktiv ist. Sie werden nicht in den Sitzungsparametern beibehalten.
Verwenden Sie die folgende Syntax, um einen Parameter mit Ablaufbereich 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, die $ nicht für Parameterdefinitionen verwenden.
Beispiel für eine Parameterdefinition im Ablaufbereich:

Lebensdauer von Parameterwerten im Ablaufbereich
Es ist selten, aber in bestimmten komplexen Fällen müssen Sie möglicherweise wissen, wie Parameterwerte mit Ablaufbereich beibehalten (oder verworfen) werden, wenn ein Ablauf inaktiv und dann wieder aktiv wird.
Ob Parameterwerte mit Ablaufbereich beibehalten werden, wenn ein Ablauf inaktiv und dann wieder aktiv wird, hängt vom Ablaufstack und den Ablaufinstanzen im Stack ab.
- Wenn Ablauf A mit einem bestimmten Übergangsziel zu Ablauf B wechselt, 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 über ein symbolisches Übergangsziel (z. B. END_FLOW) zu einem übergeordneten Ablauf zurückkehrt, wird der untergeordnete Ablauf aus dem Stack entfernt, alle Parameterwerte im Bereich des untergeordneten Ablaufs werden verworfen und alle Parameterwerte im Bereich des übergeordneten Ablaufs werden beibehalten.
- Mithilfe einer Reihe von Übergängen mit bestimmten Übergangszielen kann der Ablauf-Stack mehrere Instanzen eines Ablauftyps enthalten. Jede Instanz des Ablauftyps hat eindeutige Parameterwerte im Ablaufbereich. Beispiel: A1 -> B1 -> C1 -> B2, wobei A, B und C Ablauftypen sind und die Zahlen Instanzen dieser Ablauftypen bezeichnen. In diesem Beispiel sind B1 und B2 verschiedene Instanzen von Ablauf B und haben eindeutige ablaufbezogene Parameter.
Beispiele:
| Übergänge | Ergebnis |
|---|---|
| Ablauf A (A1) wird aktiviert. Ablauf B (B1) wird mit einem bestimmten Übergangsziel aktiv. Flow B wechselt über ein symbolisches Übergangsziel zurück zu Flow A (A1), von dem er initiiert wurde. |
In Ablauf A werden die Parameterwerte beibehalten. |
| Ablauf A (A1) wird aktiviert. Ablauf B (B1) wird mit einem bestimmten Übergangsziel aktiv. Ablauf B wechselt über ein bestimmtes Übergangsziel zu einer neuen Instanz von Ablauf A (A2). |
Die neue Instanz von Ablauf A (A2) oben im Stack hat keinen Zugriff auf die Parameterwerte von Ablauf A (A1) unten im Stack. |
| Ablauf A (A1) wird aktiviert. Ablauf B (B1) wird mit einem bestimmten Übergangsziel aktiv. Flow A (A1) wird mit einem symbolischen Übergangsziel aktiv. Ablauf B (B2) wird über ein bestimmtes Übergangsziel aktiv. |
In Ablauf B (B2) werden Parameterwerte, die während seiner Aktivität festgelegt wurden, nach dem zweiten Übergang (B1) nicht beibehalten. |
Anfragebezogene Parameter
Anfragebezogene Parameter sind kurzlebige Parameter, die von Dialogflow CX erstellt werden. Sie können nur während des Lebenszyklus der aktuellen Anfrage referenziert werden und werden nicht in den Sitzungsparametern beibehalten.
Anfragebezogene Parameter werden von Dialogflow CX für die folgenden Features generiert.
Integrierte Parameter
Sie können auf die verschiedenen mit der Anfrage verknüpften Daten zugreifen, indem Sie Folgendes verwenden:
| Referenz | Beschreibung |
|---|---|
| $request.agent-id | Die Kennung des Agenten. |
| $request.session-id | Die ID der Sitzung. |
| $request.project-id | Die Kennung des Projekts. |
| $request.location-id | Die Kennung des Standorts des KI-Agenten. |
| $request.language | In QueryInput.language_code angegebener Sprachcode. |
| $request.resolved-language | Der tatsächliche Sprachcode, der vom Agenten während 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, die in der Anfrage angegebene Sprache jedoch „en-US“ ist, wird die Sprache „en“ verwendet. |
| $request.user-utterance | Die aktuelle Nutzeräußerung, die in der Anfrage angegeben ist. |
| $request.last-agent-utterance | Die letzte vom KI-Agenten gesendete Äußerung. |
| $request.nlu-confidence-score | Der aktuelle Konfidenzwert für die NLU-Klassifizierung. |
| $request.end-user-metadata | Die in der Anfrage angegebenen Endnutzer-Metadaten. |
| $request.webhook_status_code | Der HTTP-Statuscode des Webhook-Aufrufs. |
Benutzerdefinierte Nutzlast
Wenn QueryParameters.payload festgelegt ist, können Sie mit $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 | Zahl | Stimmungswert zwischen -1,0 (negative Stimmung) und 1,0 (positive Stimmung). |
| $request.sentiment.magnitude | Zahl | Gibt die allgemeine Stärke der (sowohl positiven als auch negativen) Stimmung zwischen 0,0 und +inf an. Im Gegensatz zum Score wird die Magnitude nicht normalisiert. Jede Äußerung von Emotionen in der Eingabe des Endnutzers (sowohl positiv als auch negativ) trägt zur Magnitude der Eingabe bei. Längere Eingaben können größere Magnituden haben. |
| $request.sentiment.succeeded | Boolesch | „True“, wenn die Sentimentanalyse erfolgreich war, andernfalls „false“. |
Entfernen von Parametern
Für alle Intents oder Formularparameter können Sie die Parameter-Bearbeitung aktivieren. Dadurch werden die Laufzeitparameterdaten von Endnutzern aus Logs und dem internen Dialogflow CX-Speicher entfernt.
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 |
| 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 | Seitenoberfläche | Seitenoberfläche |
| C++ | PagesClient | Nicht verfügbar |
| C# | PagesClient | Nicht verfügbar |
| 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.