Os programadores podem usar a API Conversational Analytics, acedida através do geminidataanalytics.googleapis.com
, para criar uma interface de chat ou um agente de dados com tecnologia de inteligência artificial (IA) que responda a perguntas sobre dados estruturados no BigQuery, no Looker e no Looker Studio usando linguagem natural.
Esta página descreve como autenticar na API Conversational Analytics e configurar ligações aos seus dados no Looker, BigQuery e Looker Studio através de pedidos HTTP diretos ou do SDK. A API Conversational Analytics usa Google Cloud métodos de autenticação padrão.
Antes de começar
Antes de poder autenticar-se na API Conversational Analytics e configurar ligações aos seus dados, tem de concluir os pré-requisitos e ativar as APIs necessárias para o seu Google Cloud projeto, conforme descrito no artigo Ative a API Conversational Analytics.
Autentique-se na API Conversational Analytics
Esta secção descreve como fazer a autenticação na API Conversational Analytics (através do geminidataanalytics.googleapis.com
) usando métodos HTTP e Python para obter os tokens de autorização necessários.
HTTP curl
O comando curl
de exemplo seguinte envia um pedido para a API Conversational Analytics. O comando gcloud auth print-identity-token
fornece um token de acesso que é usado para autorização. No exemplo de código, substitua
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
https://geminidataanalytics.googleapis.com/
HTTP com Python
O exemplo de código Python seguinte demonstra como obter um token de acesso para autenticação HTTP através da Google Cloud CLI e do Python.
billing_project = 'YOUR_BILLING_PROJECT'
access_token = !gcloud auth application-default print-access-token
url = f"https://geminidataanalytics.googleapis.com/v1beta/projects/{billing_project}:method"
headers = {"Authorization": f'Bearer {access_token[0]}'}
Substitua os valores de exemplo da seguinte forma:
- YOUR_BILLING_PROJECT: o ID do seu projeto de faturação que tem as APIs necessárias ativadas.
- method: o caminho do recurso para o ponto final de destino. Por exemplo:
- Para criar um agente de dados, use o método
POST
e o caminho do recurso/v1beta/projects/{billing_project}/locations/global/dataAgents
. - Para listar os agentes de dados existentes, use o método
GET
e o caminho do recurso/v1beta/projects/{billing_project}/locations/global/dataAgents
.
- Para criar um agente de dados, use o método
SDK Python
O seguinte exemplo de código Python demonstra como autenticar a sua Conta Google para aceder à API Conversational Analytics no Colaboratory:
from google.colab import auth
auth.authenticate_user()
Associe o Looker à API Conversational Analytics
Para estabelecer ligação ao Looker com a API Conversational Analytics, tem de fornecer as seguintes informações:
- O URL da sua instância do Looker
- O modelo LookML específico e a exploração do Looker que quer usar como origem de dados
Além disso, o utilizador de autenticação ou a conta de serviço tem de ter as autorizações do Looker necessárias.
Escolha o método de autenticação adequado
Em seguida, pode optar por fazer a autenticação através de chaves da API Looker (ID de cliente e segredo do cliente) ou de um token de acesso. Os clientes que usam o Looker (essencial para o Google Cloud) apenas com ligações privadas têm de fazer a autenticação com um token de acesso.
Use a tabela seguinte para escolher o método de autenticação adequado.
Tipo de utilizador | Método de autenticação | Para o Looker (original) | Para o Looker (Google Cloud Core) | Para o Looker (Google Cloud Core) que usa apenas ligações privadas | Descrição |
Incorpore utilizadores | Chave de acesso | login_user |
login_user |
N/A | Respeita as autorizações ao nível da linha e da coluna do LookML (por exemplo, access_filters , access_grants , sql_always_where ) do access_token do utilizador de destino. |
Utilizadores padrão | Chave de acesso |
Ou |
Cliente OAuth | Cliente OAuth | Respeita as autorizações ao nível da linha e da coluna do LookML (por exemplo, access_filters , access_grants , sql_always_where ) do access_token do utilizador de destino. |
Conta de serviço apenas com API do Looker | Chave da API | ID de cliente e segredo | ID de cliente e segredo | N/A | Todos os utilizadores partilham o mesmo nível de acesso ao Looker. |
As chaves de API usam as autorizações e os níveis de acesso do utilizador. As chaves da API podem ser úteis se estiver a criar uma aplicação em que todos partilham o mesmo nível de acesso.
Um token de acesso permite-lhe usar autorizações ao nível da linha e da coluna do LookML (por exemplo,access_filters
, access_grants
, sql_always_where
) do access_token
do utilizador de destino. Um token de acesso é útil para uma aplicação multi-inquilino.
Autorizações do Looker necessárias
O utilizador ou a conta de serviço cujas credenciais são usadas para autenticação tem de ter uma função do Looker que inclua as seguintes autorizações para os modelos que quer consultar:
Pode configurar estas autorizações na secção Administração > Funções da sua instância do Looker.
Autentique com chaves da API Looker
Esta secção descreve como gerar as chaves de API e configurar a API Conversational Analytics para estabelecer ligação ao Looker através de pedidos HTTP diretos ou do SDK.
Para estabelecer uma ligação com uma instância do Looker, precisa de chaves da API Looker válidas, que são criadas pelo Looker e consistem num ID do cliente e num segredo do cliente. O Looker usa estas chaves para autorizar pedidos à API Looker.
Para saber como gerar novas chaves da API Looker, consulte Definições de administração – Utilizadores. Para saber mais sobre os métodos de autenticação e a gestão das chaves da API Looker, consulte o artigo Autenticação da API Looker.
HTTP com Python
Depois de gerar as chaves da API (ID do cliente e segredo), pode configurar a API Conversational Analytics para estabelecer ligação ao Looker através de pedidos HTTP diretos. O código de exemplo seguinte demonstra como especificar os detalhes da origem de dados do Looker e as chaves da API no corpo do pedido HTTP.
looker_credentials = {
"oauth": {
"secret": {
"client_id": "your_looker_client_id",
"client_secret": "your_looker_client_secret",
}
}
}
looker_data_source = {
"looker": {
"explore_references": {
"looker_instance_uri": "https://your_company.looker.com",
"lookml_model": "your_model",
"explore": "your_explore",
}
}
}
Substitua os valores de exemplo da seguinte forma:
- your_looker_client_id: o ID de cliente da chave da API Looker gerada
- your_looker_client_secret: o segredo do cliente da chave da API Looker gerada
- https://your_company.looker.com: o URL completo da sua instância do Looker
- your_model: o nome do modelo LookML que quer usar
- your_explore: o nome da funcionalidade Explorar no modelo especificado que quer usar
SDK Python
Depois de gerar as chaves da API (ID de cliente e segredo), pode configurar a API Conversational Analytics para se ligar ao Looker através do Python. O seguinte exemplo de código Python demonstra como especificar os detalhes da sua origem de dados do Looker e as suas chaves da API para a API Conversational Analytics.
looker_client_id = "YOUR-LOOKER-CLIENT-ID" # @param {type:"string"}
looker_client_secret = "YOUR-LOOKER-CLIENT-SECRET" # @param {type:"string"}
looker_instance_uri = "YOUR-LOOKER-INSTANCE-URI" # @param {type:"string"}
lookml_model = "YOUR-LOOKER-MODEL" # @param {type:"string"}
explore = "YOUR-LOOKER-EXPLORE" # @param {type:"string"}
# Looker data source
looker_explore_reference = geminidataanalytics.LookerExploreReference()
looker_explore_reference.looker_instance_uri = looker_instance_uri
looker_explore_reference.lookml_model = lookml_model
looker_explore_reference.explore = explore
credentials = geminidataanalytics.Credentials()
credentials.oauth.secret.client_id = looker_client_id
credentials.oauth.secret.client_secret = looker_client_secret
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.looker.explore_references = [looker_explore_reference]
Substitua os valores de exemplo da seguinte forma:
- YOUR-LOOKER-CLIENT-ID: o ID de cliente da chave da API Looker gerada
- YOUR-LOOKER-CLIENT-SECRET: o segredo do cliente da chave da API Looker gerada
- YOUR-LOOKER-INSTANCE-URI: o URL completo da sua instância do Looker
- YOUR-LOOKER-MODEL: o nome do modelo do Looker que quer usar
- YOUR-LOOKER-EXPLORE: o nome da opção Explorar do Looker que quer usar
Efetue a autenticação com um token de acesso
Esta secção descreve como configurar a API Conversational Analytics para estabelecer ligação ao Looker através de um token de acesso.
Para estabelecer uma ligação a uma instância do Looker, precisa de um valor access_token
OAuth2 válido, que é criado por um pedido bem-sucedido ao ponto final da API login
do Looker.
Para saber como gerar um token de acesso, consulte o artigo Autenticação da API Looker e como apresentar credenciais do cliente para obter um token de autorização.
HTTP com Python
O exemplo de código seguinte demonstra como especificar os detalhes da origem de dados do Looker e o token de acesso no corpo do pedido HTTP.
Sugerimos que armazene o token de acesso do Looker (access_token
) como uma variável de ambiente para melhorar a segurança.
looker_credentials = {
"oauth": {
"token": {
"access_token": "YOUR-TOKEN",
}
}
}
looker_data_source = {
"looker": {
"explore_references": {
"looker_instance_uri": "https://your_company.looker.com",
"lookml_model": "your_model",
"explore": "your_explore",
}
}
}
Substitua os valores de exemplo da seguinte forma:
- YOUR-TOKEN: o valor
access_token
que gera para autenticar no Looker. - https://your_company.looker.com: o URL completo da sua instância do Looker
- your_model: o nome do modelo LookML que quer usar
- your_explore: o nome da funcionalidade Explorar no modelo especificado que quer usar
SDK Python
O seguinte exemplo de código Python demonstra como definir os detalhes da sua origem de dados do Looker e o seu token de acesso para autenticação através do SDK Python.
Sugerimos que armazene o token de acesso do Looker (access_token
) como uma variável de ambiente para melhorar a segurança.
looker_access_token = "YOUR-TOKEN"
looker_instance_uri = "YOUR-LOOKER-INSTANCE-URI"
lookml_model = "YOUR-LOOKER-MODEL"
explore = "YOUR-LOOKER-EXPLORE"
# Looker data source
looker_explore_reference = geminidataanalytics.LookerExploreReference()
looker_explore_reference.looker_instance_uri = looker_instance_uri
looker_explore_reference.lookml_model = lookml_model
looker_explore_reference.explore = explore
credentials = geminidataanalytics.Credentials()
credentials.oauth.token.access_token = looker_access_token
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.looker.explore_references = [looker_explore_reference]
Substitua os valores de exemplo da seguinte forma:
- YOUR-TOKEN: O valor
access_token
que usa para se autenticar no Looker - YOUR-LOOKER-INSTANCE-URI: o URL completo da sua instância do Looker
- YOUR-LOOKER-MODEL: o nome do modelo do Looker que quer usar
- YOUR-LOOKER-EXPLORE: o nome da opção Explorar do Looker que quer usar
HTTP com JavaScript
O exemplo de código seguinte demonstra como especificar os detalhes da origem de dados do Looker e o token de acesso no corpo do pedido HTTP.
Sugerimos que armazene o token de acesso do Looker (access_token
) como uma variável de ambiente para melhorar a segurança.
const requestBody = {
project: GCP_PROJECT,
messages: [
{
user_message: {
text: inputWithPreviousMessages,
},
},
],
context: {
system_instruction: agentConfig.system_instructions,
datasource_references: {
looker: {
explore_references: [
{
looker_instance_uri: YOUR-LOOKER-INSTANCE-URI,
lookml_model: YOUR-LOOKER-MODEL,
explore: YOUR-LOOKER-EXPLORE,
},
],
credentials: {
oauth: {
token: {
access_token: YOUR-TOKEN,
},
},
},
},
},
},
}
Substitua os valores de exemplo da seguinte forma:
- YOUR-LOOKER-INSTANCE-URI: o URL completo da sua instância do Looker
- YOUR-LOOKER-MODEL: o nome do modelo LookML que quer usar
- YOUR-LOOKER-EXPLORE: o nome da funcionalidade Explorar no modelo especificado que quer usar
- YOUR-TOKEN: o valor
access_token
que gera para autenticar no Looker.
Associe ao BigQuery com a API Conversational Analytics
Para estabelecer ligação a uma ou mais tabelas do BigQuery com a API Conversational Analytics, tem de se autenticar no projeto do BigQuery relevante para cada tabela. Para cada tabela, faculte as seguintes informações:
- O ID do projeto do BigQuery
- O ID do conjunto de dados do BigQuery
- O ID da tabela do BigQuery
Com a API Conversational Analytics, não existem limites rígidos quanto ao número de tabelas do BigQuery às quais se pode ligar. No entanto, a ligação a um grande número de tabelas pode reduzir a precisão ou fazer com que exceda o limite de tokens de entrada do Gemini. As consultas que requerem junções complexas em várias tabelas também podem resultar em respostas menos precisas.
Esta secção descreve como configurar a API Conversational Analytics para se ligar ao BigQuery através de pedidos HTTP diretos ou de um SDK.
HTTP com Python
O seguinte exemplo de código define uma associação a várias tabelas do BigQuery.
bigquery_data_sources = {
"bq": {
"tableReferences": [
{
"projectId": "my_project_id",
"datasetId": "my_dataset_id",
"tableId": "my_table_id"
},
{
"projectId": "my_project_id_2",
"datasetId": "my_dataset_id_2",
"tableId": "my_table_id_2"
},
{
"projectId": "my_project_id_3",
"datasetId": "my_dataset_id_3",
"tableId": "my_table_id_3"
},
]
}
}
Substitua os valores de exemplo da seguinte forma:
- my_project_id: o ID do Google Cloud projeto que contém o conjunto de dados e a tabela do BigQuery aos quais quer estabelecer ligação. Para estabelecer ligação a um conjunto de dados público, especifique
bigquery-public-data
. - my_dataset_id: o ID do conjunto de dados do BigQuery.
- my_table_id: o ID da tabela do BigQuery.
SDK Python
Pode usar o SDK auth
do Colaboratory para se autenticar no BigQuery através das credenciais do seu utilizador autenticado no Colaboratory.
O seguinte código Python de exemplo define uma ligação a várias tabelas do BigQuery e demonstra como autenticar a sua Conta Google no BigQuery no Colaboratory.
from google.colab import auth
auth.authenticate_user()
# BigQuery data source
bigquery_table_reference = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference.project_id = "my_project_id"
bigquery_table_reference.dataset_id = "my_dataset_id"
bigquery_table_reference.table_id = "my_table_id"
bigquery_table_reference_2 = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference_2.project_id = "my_project_id_2"
bigquery_table_reference_2.dataset_id = "my_dataset_id_2"
bigquery_table_reference_2.table_id = "my_table_id_2"
bigquery_table_reference_3 = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference_3.project_id = "my_project_id_3"
bigquery_table_reference_3.dataset_id = "my_dataset_id_3"
bigquery_table_reference_3.table_id = "my_table_id_3"
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.bq.table_references = [bigquery_table_reference, bigquery_table_reference_2, bigquery_table_reference_3]
Substitua os valores de exemplo da seguinte forma:
- my_project_id: o ID do Google Cloud projeto que contém o conjunto de dados e a tabela do BigQuery aos quais quer estabelecer ligação. Para estabelecer ligação a um conjunto de dados público, especifique
bigquery-public-data
. - my_dataset_id: o ID do conjunto de dados do BigQuery. Por exemplo,
san_francisco
. - my_table_id: o ID da tabela do BigQuery. Por exemplo,
street_trees
.
Faça a associação ao Looker Studio com a API Conversational Analytics
Para estabelecer ligação ao Looker Studio com a API Conversational Analytics, primeiro tem de ativar a API Looker Studio. Esta secção descreve como configurar a API Conversational Analytics para estabelecer ligação ao Looker Studio através de pedidos HTTP diretos ou de um SDK.
Ative a API Looker Studio
Para ativar a API Looker Studio, siga as instruções em Ative a API.
Autentique-se no Looker Studio
Para estabelecer ligação ao Looker Studio com a API Conversational Analytics, tem de se autenticar no Looker Studio e fornecer o ID da origem de dados do Looker Studio.
HTTP com Python
Depois de ativar a API Looker Studio, pode autenticar-se no Looker Studio fazendo pedidos HTTP curl com Python. O seguinte código de exemplo demonstra como especificar os detalhes da origem de dados do Looker no corpo do seu pedido HTTP.
Pode autenticar-se no Looker Studio fazendo pedidos HTTP diretos. É apresentado um exemplo de chamada HTTP no bloco de código seguinte.
looker_studio_data_source = {
"studio":{
"studio_references":
[
{
"datasource_id": "your_studio_datasource_id"
}
]
}
}
Substitua your_studio_datasource_id pelo ID da origem de dados real da origem de dados do Looker Studio que quer usar.
SDK Python
Depois de ativar a API Looker Studio, pode autenticar-se no Looker Studio através de um SDK. O seguinte exemplo de código Python demonstra como especificar os detalhes da origem de dados do Looker e autenticar no Looker Studio.
datasource_id = "STUDIO-DATASOURCE-ID"
# Looker Studio
studio_references = geminidataanalytics.StudioDatasourceReference()
studio_references.datasource_id = studio_datasource_id
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.studio.studio_references = [studio_references]
Substitua STUDIO-DATASOURCE-ID pelo ID da origem de dados real da origem de dados do Looker Studio que quer usar.