Esta página foi traduzida pela API Cloud Translation.
Switch to English

Regionalização e residência de dados

O Dialogflow fornece residência de dados para manter o dados em repouso fisicamente em uma região geográfica ou local. Quando uma região é especificada, os dados em repouso não são replicados fora da região. O preço é o mesmo para todas as regiões.

As regiões são usadas pelos seguintes motivos:

  • Seu sistema pode ter requisitos regulatórios ou de políticas que regem o local dos dados.
  • Suas latências de rede podem ser melhoradas quando os dados estão na mesma região que seus clientes. Por exemplo, se os clientes do Reino Unido usarem europe-west2, eles poderão esperar uma latência melhor.

Dados em repouso

Todos os dados do usuário e do usuário final do Dialogflow estão incluídos nos dados em repouso (em inglês). Exemplo:

  • Todos os recursos do agente definidos com console ou API (intents, entidades etc.)
  • Todas as configurações do agente definidas com o console ou a API
  • Histórico de consultas
  • Resultados da validação
  • Tarefas de criação de modelos
  • Tarefas de treinamento
  • Tarefas de operação de longa duração

Regiões disponíveis

O Dialogflow oferece as seguintes regiões:

Américas Europa Ásia-Pacífico Multirregional
Usar a multirregião us europe-west2 (Londres) asia-northeast1 (Tóquio)
australia-southeast1 (Sydney)
us (padrão)

Selecione uma região com o console

A área superior esquerda do Console do Dialogflow ES tem uma lista suspensa para a seleção de região. Cada agente tem uma região imutável especificada na criação. Ao selecionar uma região no console, é possível listar ou criar agentes somente para a região selecionada. A região padrão é us.

Selecionar uma região com a API

Se o agente foi criado em uma região não padrão, é preciso especificá-la ao chamar a API para solicitações de tempo de design ou tempo de execução.

Para fornecer uma região, ofereça um parâmetro location às solicitações de API. Para chamadas REST, siga estas orientações:

  • Forneça o parâmetro de caminho do URL location.
  • Use o nome do host específico da região no formato REGION_ID-dialogflow.googleapis.com. Por exemplo, asia-northeast1-dialogflow.googleapis.com. Se a região especificada no nome do host não corresponder à região especificada no caminho do URL, a solicitação será rejeitada.

Para bibliotecas de cliente, consulte a documentação da biblioteca de cliente. Você precisa fazer o seguinte:

  • Defina o endpoint do serviço do Dialogflow para:

    REGION_ID-dialogflow.googleapis.com:443
    
  • Defina o nome da sessão como:

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

Exemplo:

REST e LINHA DE CMD

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto do GCP
  • REGION_ID: um ID de região. Exemplo: europe-west2
  • SESSION_ID: um código da sessão.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

 

Java


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.getFulfillmentText());

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

Limitações

Quando uma região não padrão é selecionada no Console do Dialogflow, os seguintes recursos não estão disponíveis: