Regionalisierung und Datenstandort

Dialogflow bietet einen Datenstandort, um Ihre inaktiven Daten physisch in einer geographischen Region oder an einem geographischen Ort aufzubewahren. Wenn eine Region angegeben ist, werden Ihre inaktiven Daten nicht außerhalb der Region repliziert. Die Preise sind für alle Regionen gleich.

Regionen werden aus folgenden Gründen verwendet:

  • Für Ihr System können regulatorische oder Richtlinienanforderungen gelten, die den Standort Ihre Daten bestimmen.
  • Befinden sich die Daten in derselben Region wie Ihre Kunden, kann das die Netzwerklatenzen verbessern. Beispiel: Wenn Kunden im Vereinigten Königreich europe-west2 verwenden, können sie eine niedrigere Latenz erwarten.

Inaktive Daten

Alle Daten von Dialogflow-Entwicklern und -Endnutzern sind Teil der inaktiven Daten. Beispiel:

  • Alle Agent-Ressourcen, die mit der Console oder der API festgelegt werden (Intents, Entitäten usw.)
  • Alle Agent-Einstellungen, mit der Konsole oder der API festgelegt werden
  • Abfrageverlauf
  • Validierungsergebnisse
  • Modellerstellungsaufgaben
  • Trainingsaufgaben
  • Aufgaben für Vorgang mit langer Ausführungszeit

Verfügbare Regionen

Dialogflow stellt die folgenden Regionen bereit:

Ländergruppierung Geografischer Ort Regions-ID
Europa Belgien europe-west1
Europa London europe-west2
Asiatisch-pazifischer Raum Sydney australia-southeast1
Asiatisch-pazifischer Raum Tokio asia-northeast1
Global Dialogflow-Bereitstellung ist global, inaktive Daten innerhalb der USA global (bevorzugt), us (eingestellt) oder keine Region (Standardeinstellung)

Region mit der Konsole auswählen

Der Bereich oben links in der Dialogflow ES-Konsole enthält ein Drop-down-Menü für die Region. Jeder Agent hat eine unveränderliche Region, die bei der Erstellung festgelegt wird. Wenn Sie eine Region in der Konsole auswählen, können Sie nur Agents für die ausgewählte Region auflisten oder erstellen. Die Standardregion ist us.

Region mit der API auswählen

Wurde der Agent in einer Standardregion erstellt, so müssen Sie diese Region beim Aufrufen der API sowohl für Entwicklungs- als auch für Laufzeitanfragen angeben.

Zum Bereitstellen einer Region geben Sie in den API-Anfragen einen location-Parameter an. Führen Sie für REST-Aufrufe folgende zwei Schritte aus:

  • Geben Sie den URL-Pfadparameter location an.
  • Verwenden Sie den standortspezifischen Hostnamen im Format REGION_ID-dialogflow.googleapis.com. Beispiel: asia-northeast1-dialogflow.googleapis.com Stimmt der im Hostnamen angegebene Standort nicht mit dem im URL-Pfad angegebenen Standort überein, so wird die Anfrage abgelehnt.

Informationen zu Clientbibliotheken finden Sie in der Dokumentation zur Clientbibliothek. Gehen Sie wie folgt vor:

  • Legen Sie den Dialogflow-Dienstendpunkt fest:

    REGION_ID-dialogflow.googleapis.com:443
    
  • Setzen Sie den Sitzungsnamen auf:

    projects/PROJECT_ID/locations/REGION_ID/agent/sessions/SESSION_ID
    

Beispiel:

REST

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • REGION_ID ist eine Regions-ID. Beispiel: europe-west2
  • SESSION_ID: eine Sitzungs-ID

HTTP-Methode und URL:

POST https://REGION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/REGION_ID/agent/sessions/SESSION_ID:detectIntent

JSON-Text der Anfrage:

{
  "query_input": {
    "text": {
      "text": "I want a pony.",
      "language_code": "en-US"
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

 

Java

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.api.gax.rpc.ApiException;
import com.google.cloud.dialogflow.v2beta1.DetectIntentResponse;
import com.google.cloud.dialogflow.v2beta1.QueryInput;
import com.google.cloud.dialogflow.v2beta1.QueryResult;
import com.google.cloud.dialogflow.v2beta1.SessionName;
import com.google.cloud.dialogflow.v2beta1.SessionsClient;
import com.google.cloud.dialogflow.v2beta1.SessionsSettings;
import com.google.cloud.dialogflow.v2beta1.TextInput;
import com.google.common.collect.Maps;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public class DetectIntentWithLocation {

  // DialogFlow API Detect Intent sample with text inputs.
  public static Map<String, QueryResult> detectIntentWithLocation(
      String projectId,
      String locationId,
      List<String> texts,
      String sessionId,
      String languageCode)
      throws IOException, ApiException {
    SessionsSettings sessionsSettings =
        SessionsSettings.newBuilder()
            .setEndpoint(locationId + "-dialogflow.googleapis.com:443")
            .build();
    Map<String, QueryResult> queryResults = Maps.newHashMap();
    // Instantiates a client
    try (SessionsClient sessionsClient = SessionsClient.create(sessionsSettings)) {
      // Set the session name using the projectId (my-project-id), locationId and sessionId (UUID)
      SessionName session =
          SessionName.ofProjectLocationSessionName(projectId, locationId, sessionId);
      System.out.println("Session Path: " + session.toString());

      // Detect intents for each text input
      for (String text : texts) {
        // Set the text (hello) and language code (en-US) for the query
        TextInput.Builder textInput =
            TextInput.newBuilder().setText(text).setLanguageCode(languageCode);

        // Build the query with the TextInput
        QueryInput queryInput = QueryInput.newBuilder().setText(textInput).build();

        // Performs the detect intent request
        DetectIntentResponse response = sessionsClient.detectIntent(session, queryInput);

        // Display the query result
        QueryResult queryResult = response.getQueryResult();

        System.out.println("====================");
        System.out.format("Query Text: '%s'\n", queryResult.getQueryText());
        System.out.format(
            "Detected Intent: %s (confidence: %f)\n",
            queryResult.getIntent().getDisplayName(), queryResult.getIntentDetectionConfidence());
        System.out.format(
            "Fulfillment Text: '%s'\n",
            queryResult.getFulfillmentMessagesCount() > 0
                ? queryResult.getFulfillmentMessages(0).getText()
                : "Triggered Default Fallback Intent");

        queryResults.put(text, queryResult);
      }
    }
    return queryResults;
  }
}

Python

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

def detect_intent_texts_with_location(
    project_id, location_id, session_id, texts, language_code
):
    """Returns the result of detect intent with texts as inputs.

    Using the same `session_id` between requests allows continuation
    of the conversation."""
    from google.cloud import dialogflow

    session_client = dialogflow.SessionsClient(
        client_options={"api_endpoint": f"{location_id}-dialogflow.googleapis.com"}
    )

    session = (
        f"projects/{project_id}/locations/{location_id}/agent/sessions/{session_id}"
    )
    print(f"Session path: {session}\n")

    for text in texts:
        text_input = dialogflow.TextInput(text=text, language_code=language_code)

        query_input = dialogflow.QueryInput(text=text_input)

        response = session_client.detect_intent(
            request={"session": session, "query_input": query_input}
        )

        print("=" * 20)
        print(f"Query text: {response.query_result.query_text}")
        print(
            f"Detected intent: {response.query_result.intent.display_name} (confidence: {response.query_result.intent_detection_confidence,})\n"
        )
        print(f"Fulfillment text: {response.query_result.fulfillment_text}\n")

Weitere Sprachen

C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die Dialogflow-Referenzdokumentation für .NET auf.

PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die Dialogflow-Referenzdokumentation für PHP auf.

Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die Dialogflow-Referenzdokumentation für Ruby auf.

Cloud Logging

Informationen zum Steuern der Region, in der Logs gespeichert werden, finden Sie in der Anleitung für Cloud Logging.

Beschränkungen

Ist in der Dialogflow-Konsole eine nicht standardmäßige Region ausgewählt, sind folgende Features nicht verfügbar:

Der APIs Explorer, der in vielen REST-Referenzdokumenten zu finden ist, unterstützt für API-Aufrufe nur die Region global.