Você pode 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.
- Sem 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 a importação:
- Essa abordagem só é compatível com consultas estruturadas, não semânticas ou semânticas parciais.
- A configuração é um pouco mais complexa do que a importação de dados.
Limitações
A conexão com o AlloyDB tem as seguintes limitações:
- O Gemini Enterprise oferece suporte ao controle de acesso no nível de 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 seu app 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 .
Antes de começar
A conexão com o AlloyDB está em Prévia com uma lista de permissões. Para usar esse recurso, inscreva-se com o seguinte formulário: Ativar/desativar o uso do Gemini Enterprise e conectar dados do AlloyDB
Depois de se inscrever, aguarde a confirmação da ativação antes de seguir as instruções nesta página.
Configurar a linguagem natural da IA do AlloyDB
Esse conector usa a linguagem natural da IA do AlloyDB no AlloyDB, que traduz consultas em linguagem natural para 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.
Adicionar modelos em linguagem natural da IA do AlloyDB (um conjunto selecionado de perguntas em linguagem natural com consultas SQL correspondentes) é especialmente ú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 do banco de dados na sua instância do AlloyDB. Com essa abordagem, todos os usuários 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 isso, configure as definições do Identity and Access Management (IAM) no projeto Google Cloud em que a instância de banco de dados está localizada.
Para configurar a autenticação, faça o seguinte:
- Acesse a página de configuração do IAM do projeto que hospeda sua instância do AlloyDB.
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 Google Cloud em que você usa o Gemini Enterprise.Na sua instância do AlloyDB, crie um usuário do banco de dados para ser usado pelo Gemini Enterprise na execução de consultas SQL.
É muito importante conceder a esse usuário acesso somente leitura e apenas para tabelas, visualizações e colunas que precisam estar 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 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 acessar os dados que têm permissão para ver.
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, forneça 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:
Crie um repositório de dados no Gemini Enterprise com seus 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 seu repositório de dados. 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. Ele só pode conter letras minúsculas, dígitos, sublinhados e hífens.DATA_STORE_NAME
: o nome de exibição do repositório de dados que você quer criar.INSTANCE_PATH
: o caminho da sua instância do AlloyDB, no formatoprojects/.../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 do AlloyDB AI.
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.
Para ver como os resultados da pesquisa aparecem depois que o app é configurado, consulte Visualizar resultados da pesquisa.