Regionalizzazione e localizzazione dei dati

Dialogflow fornisce la residenza dei dati per mantenere fisicamente i tuoi dati at-rest all'interno di una regione o località. Quando viene specificata una regione, i dati at-rest non vengono replicati al di fuori della regione. I prezzi sono gli stessi per tutte le regioni.

Le regioni vengono utilizzate per i seguenti motivi:

  • Il sistema potrebbe prevedere requisiti normativi o normativi che regolano la posizione in cui devono risiedere i dati.
  • Le latenze di rete possono essere migliorate quando i dati si trovano nella stessa regione dei tuoi clienti. Ad esempio, se i clienti nel Regno Unito utilizzano europe-west2, possono aspettarsi una latenza migliore.

Dati at-rest

Tutti i dati utente e degli utenti finali degli sviluppatori Dialogflow sono inclusi in data-at-rest. Ad esempio:

  • Tutte le risorse agente impostate con console o API (intent, entità e così via)
  • Tutte le impostazioni dell'agente impostate con la console o l'API
  • Cronologia query
  • Risultati della convalida
  • Attività di creazione di modelli
  • Attività di addestramento
  • Attività operative a lunga esecuzione

Aree geografiche disponibili

Dialogflow fornisce le seguenti regioni:

Raggruppamento di paesi Posizione geografica ID regione
Europa Belgio europe-west1
Europa Londra europe-west2
Asia Pacifico Sydney australia-southeast1
Asia Pacifico Tokyo asia-northeast1
Globale La gestione di Dialogflow è globale, i dati at-rest negli Stati Uniti global (preferito) o nessuna regione (impostazione predefinita)

Seleziona una regione con la console

Nell'area in alto a sinistra della console Dialogflow ES è presente un menu a discesa per la selezione della regione. Ogni agente ha una regione immutabile specificata al momento della creazione. Quando selezioni una regione dalla console, puoi elencare o creare agenti solo per la regione selezionata. La regione predefinita è global.

Seleziona una regione con l'API

Se l'agente è stato creato in una regione non predefinita, devi specificare quella regione quando chiami l'API per le richieste in fase di progettazione o di runtime.

Per fornire una regione, devi fornire un parametro location alle richieste API. Per le chiamate REST, esegui entrambe le seguenti operazioni:

  • Fornisci il parametro del percorso dell'URL location.
  • Utilizza il nome host specifico per la regione nel modulo REGION_ID-dialogflow.googleapis.com. Ad esempio: asia-northeast1-dialogflow.googleapis.com. Se la regione specificata nel nome host non corrisponde a quella specificata nel percorso dell'URL, la richiesta verrà rifiutata.

Per le librerie client, consulta la documentazione relativa alle librerie client. Procedi come segue:

  • Imposta l'endpoint di servizio Dialogflow su:

    REGION_ID-dialogflow.googleapis.com:443
    
  • Imposta il nome della sessione su:

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

Ad esempio:

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • REGION_ID: un ID regione, ad esempio europe-west2
  • SESSION_ID: un ID sessione

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

 

Java

Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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")

Linguaggi aggiuntivi

C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di Dialogflow per .NET.

PHP: segui le istruzioni per la configurazione dei file PHP nella pagina delle librerie client e consulta la documentazione di riferimento di Dialogflow per PHP.

Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e visita la documentazione di riferimento di Dialogflow per Ruby.

Cloud Logging

Consulta la guida a Cloud Logging per controllare la regione in cui sono archiviati i log.

Limitazioni

Quando nella console di Dialogflow viene selezionata una regione non predefinita, le seguenti funzionalità non sono disponibili:

Explorer API, disponibile in molti documenti di riferimento REST, supporta solo la regione global per le chiamate API.