Kontexte verwalten

In den meisten Fällen konfigurieren Sie Kontexte bei der Entwicklung, wenn Sie einen Agent erstellen. Nehmen wir an, Sie haben eine Trainingsformulierung wie: "Ich möchte meinem Einkaufswagen Pizza hinzufügen."

In einigen erweiterten Szenarien können Sie auch Code schreiben, der während eines laufenden Gesprächs Kontexte abruft und festlegt. Ein Beispiel dafür ist, dass Sie einen Gerätestandort ermittelt haben und diesen dem Kontext hinzugefügt haben, sodass Sie später jederzeit darauf zugreifen können.

In diesem Dokument wird beschrieben, wie Sie Kontexte während der Entwicklung und der Laufzeit mithilfe der Dialogflow-Konsole, der API oder der Auftragsausführung abrufen und festlegen.

Kontextbenennung

Bei der Benennung von Kontexten gelten die folgenden Regeln:

Regel Beispiele
Verwenden Sie alphanumerische Namen. mycontext1
Verwenden Sie - oder _ anstelle von Leerzeichen. my-context-1
Bei Namen wird die Groß- und Kleinschreibung nicht berücksichtigt. Abc123 und abc123 werden als gleichwertig betrachtet
Alle Kontextnamen werden bei Verwendung der API in Kleinbuchstaben geschrieben. abc123

Kontexte während der Entwicklung festlegen

Console

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. Wählen Sie einen Agent aus.
  3. Wählen Sie im Menü der linken Seitenleiste Intents aus.
  4. Maximieren Sie den Bereich Kontexte der Intent-Daten.
  5. Klicken Sie in den Intent-Daten auf das Feld Ausgabekontext hinzufügen oder Eingabekontext hinzufügen.
  6. Geben Sie einen Namen für den Kontext ein und drücken Sie die Eingabetaste.
  7. Bei Ausgabekontexten können Sie optional auf den Kreis für die Lebensdauer klicken und die Lebensdauer ändern. Snapshot der UI für Lebensdauer
  8. Fügen Sie nach Bedarf weitere Kontexte hinzu.
  9. Klicken Sie auf Speichern.

API

Lesen Sie die Referenz zu Intents.

Kontexte während der Laufzeit festlegen

Auftragsausführung

Wenn ein Webhook-Dienst eine WebhookResponse sendet, setzen Sie das Feld outputContexts auf die gewünschten aktiven Kontexte.

API

Die Anfrage für einen detectIntent-Aufruf des Sessions-Typs enthält das Feld queryParameters.contexts, mit dem aktive Kontexte festgelegt werden.

Das folgende Beispiel zeigt ein REST JSON-Beispiel für eine detectIntent-Anfrage:

POST https://dialogflow.googleapis.com/v2/{session=projects/*/agent/sessions/*}:detectIntent

{
  "queryInput": {
    "text": {
      "languageCode": "en-US",
      "text": "I would like to add pizza to my shopping cart."
    }
  },
  "queryParams": {
    "contexts": [{
        "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen",
        "lifespanCount": 5,
        "parameters": {
          "product": "Pizza",
          "device-location" "@52.3377871,4.8698096,17z"
        }
      }]
  }
}

Sie können auch jederzeit die Methoden "create", "delete" und "update" auf den Contexts-Typ anwenden.

Kontexte während der Laufzeit abrufen

Auftragsausführung

Wenn ein Webhook-Dienst eine WebhookRequest empfängt, enthält das Feld queryResult.outputContexts die aktiven Kontexte.

API

Die Antwort auf einen detectIntent-Aufruf des Sessions-Typs enthält das Feld queryResult.outputContexts, das die Liste der aktiven Kontexte enthält.

Das folgende Beispiel zeigt ein REST JSON-Beispiel für eine detectIntent-Antwort:

{
  "responseId": "response-id",
  "queryResult": {
    "queryText": "I would like to add pizza to my shopping cart.",
    "parameters": {
      "product": "pizza"
    },
    "allRequiredParamsPresent": true,
    "fulfillmentText": "The product has been added.",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "The product has been added."
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen",
        "lifespanCount": 5,
        "parameters": {
          "product": "Pizza",
          "device-location" "@52.3377871,4.8698096,17z"
        }
      }
    ],
    "intent": {
      "name": "projects/project-id/agent/intents/intent-id",
      "displayName": "buy-product"
    },
    "intentDetectionConfidence": 0.8057143,
    "languageCode": "en",
  }
}

Für den Contexts-Typ können Sie auch die Methoden "get" und "list" jederzeit aufrufen.