Conectar-se a dados do AlloyDB para PostgreSQL (prévia)

É possível conectar sua instância do AlloyDB ao Gemini Enterprise, permitindo o acesso em tempo real aos seus dados.

Em comparação com a importação do AlloyDB, a conexão tem as seguintes vantagens:

  • Evita a necessidade de importar, indexar e duplicar dados.
  • Atualização máxima de dados.
  • Não há custos adicionais de indexação e armazenamento.
  • Não é necessário nivelar dados estruturados em registros uniformes.

Considere as seguintes desvantagens de conectar em comparação com importar:

  • Essa abordagem é compatível apenas com consultas estruturadas, não com consultas semânticas ou semissemânticas.
  • A configuração é um pouco mais complexa do que a importação dos dados.

Limitações

A conexão com o AlloyDB tem as seguintes limitações:

  • O Gemini Enterprise oferece controle de acesso no nível dos objetos do banco de dados, como tabelas e colunas, mas não no nível do usuário. Todos os usuários com acesso ao app do Gemini Enterprise podem ver os mesmos dados.
  • A criação de um repositório de dados do AlloyDB é compatível com a API, não com o console do Google Cloud .

Configurar a linguagem natural da IA do AlloyDB

Esse conector depende da linguagem natural da IA do AlloyDB, que traduz consultas em linguagem natural em consultas SQL.

Antes de se conectar, configure a linguagem natural da IA do AlloyDB no seu banco de dados seguindo as etapas em Gerar consultas SQL que respondem a perguntas em linguagem natural na documentação do AlloyDB.

A adição de modelos na linguagem natural da IA do AlloyDB (um conjunto selecionado de perguntas em linguagem natural com as consultas SQL correspondentes) é particularmente útil para a qualidade. Ao adicionar modelos, o Google recomenda o seguinte:

  • Use ORDER BY para evitar o não determinismo. Por exemplo, SELECT customers.id FROM customers ORDER BY customers.id;.

Configurar a autenticação entre o Gemini Enterprise e o AlloyDB

O Gemini Enterprise acessa o AlloyDB usando uma conta de serviço dedicada e um usuário de banco de dados na sua instância do AlloyDB. Com essa abordagem, todos os usuários corporativos do Gemini Enterprise podem ver os mesmos dados, sem controle de acesso específico do usuário.

Uma conta de serviço é usada para se conectar e interagir com sua instância do AlloyDB. Para ativar esse recurso, é preciso definir as configurações do Identity and Access Management (IAM) no projeto do Google Cloud em que a instância do banco de dados está.

Para configurar a autenticação, faça o seguinte:

  1. Acesse a página de configuração do IAM do projeto que hospeda sua instância do AlloyDB.
  2. Conceda o papel Usuário do banco de dados do Cloud AlloyDB ao seguinte principal: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

    Substitua PROJECT_NUMBER pelo número do projeto do Google Cloud em que você usa o Gemini Enterprise.

  3. Na instância do AlloyDB, crie um usuário de banco de dados para ser usado pelo Gemini Enterprise na execução de consultas SQL.

    É muito importante que você conceda a esse usuário acesso somente leitura e apenas para tabelas, visualizações e colunas que devem ser acessíveis no Gemini Enterprise. Isso garante que:

    • As consultas do Gemini Enterprise não podem mudar nem excluir seus dados. O Gemini Enterprise foi projetado para ler apenas dados do seu banco de dados e não mudar nada, mas o Google não pode excluir totalmente a possibilidade de que a IA gere consultas de gravação não intencionais.

    • Os usuários do Gemini Enterprise só podem ver os dados que têm permissão para visualizar.

      Exemplo:

      CREATE ROLE USER_NAME WITH LOGIN PASSWORD 'PASSWORD';
      GRANT SELECT ON TABLE "public"."TABLE_NAME_1" TO USER_NAME;
      GRANT SELECT ON TABLE "public"."TABLE_NAME_2" TO USER_NAME;
      

      Ao vincular o Gemini Enterprise ao AlloyDB, informe o nome de usuário e a senha nos campos Usuário e Senha de alloydbConnectionConfig.

Vincular o Gemini Enterprise ao AlloyDB

Para conectar sua instância do AlloyDB, siga estas etapas:

  1. Crie um repositório de dados no Gemini Enterprise com os detalhes de conexão do AlloyDB usando a API, incluindo federatedSearchConfig.alloyDbConfig.

    No exemplo a seguir:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" -d '{
      "displayName": "DATA_STORE_NAME",
      "federatedSearchConfig": {
        "alloyDbConfig": {
          "alloydbConnectionConfig": {
            "instance": "INSTANCE_PATH",
            "database": "DATABASE_NAME",
            "user": "DATABASE_USER_NAME",
            "password": "DATABASE_USER_PASSWORD",
            "authMode": "AUTH_MODE_SERVICE_ACCOUNT"
          },
          "alloydb_ai_nl_config": { "nlConfigId": "NL_CONFIG_ID" }
        }
      },
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você usa o Gemini Enterprise.
    • LOCATION: o local do repositório de dados. Ele precisa ser o mesmo local da sua instância do Gemini Enterprise.

    • DATA_STORE_ID: o ID do repositório de dados que você quer criar. Esse ID só pode conter letras minúsculas, dígitos, sublinhados e hifens.

    • DATA_STORE_NAME: o nome de exibição do repositório de dados que você quer criar.

    • INSTANCE_PATH: o caminho da instância do AlloyDB, no formato projects/.../locations/.../clusters/.../instances/....

    • DATABASE_NAME: o ID do banco de dados do AlloyDB.

    • DATABASE_USER_NAME: o ID do usuário do banco de dados do AlloyDB.

    • DATABASE_USER_PASSWORD: a senha do usuário do banco de dados do AlloyDB.

    • NL_CONFIG_ID: o ID da configuração de linguagem natural da IA do AlloyDB.

  2. Anexe seu repositório de dados a um app do Gemini Enterprise ou crie um novo app e selecione seu conector, seguindo as etapas em Criar um app.

  3. Para ver como os resultados da pesquisa aparecem depois que o app é configurado, consulte Visualizar resultados da pesquisa.