デベロッパーは、geminidataanalytics.googleapis.com
を介してアクセスできる Conversational Analytics API を使用して、BigQuery、Looker、Looker Studio の構造化データに関する質問に自然言語で回答する人工知能(AI)を活用したチャット インターフェース(データ エージェント)を構築できます。
このページでは、直接 HTTP リクエストまたは SDK を使用して、Conversational Analytics API の認証を行い、Looker、BigQuery、Looker Studio でデータへの接続を構成する方法について説明します。Conversational Analytics API は、標準の Google Cloud 認証方法を使用します。
始める前に
Conversational Analytics API で認証を行い、データへの接続を構成するには、Conversational Analytics API を有効にするで説明されている前提条件を満たし、 Google Cloud プロジェクトに必要な API を有効にする必要があります。
Conversational Analytics API に対する認証を行う
このセクションでは、HTTP メソッドと Python メソッドを使用して必要な認可トークンを取得し、Conversational Analytics API に対する認証(geminidataanalytics.googleapis.com
経由で)を行う方法について説明します。
HTTP curl
次の curl
コマンドのサンプルは、Conversational Analytics API にリクエストを送信します。gcloud auth print-identity-token
コマンドは、認可に使用されるアクセス トークンを提供します。コードサンプルで、
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
https://geminidataanalytics.googleapis.com/
Python を使用した HTTP
次の Python サンプルコードは、Google Cloud CLI と Python を使用して HTTP 認証用のアクセス トークンを取得する方法を示しています。
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]}'}
サンプル値を次のように置き換えます。
- YOUR_BILLING_PROJECT: 必要な API が有効になっている課金プロジェクトの ID。
- method: ターゲット エンドポイントのリソースパス。例:
- データ エージェントを作成するには、
POST
メソッドとリソースパス/v1beta/projects/{billing_project}/locations/global/dataAgents
を使用します。 - 既存のデータ エージェントの一覧を取得するには、
GET
メソッドとリソースパス/v1beta/projects/{billing_project}/locations/global/dataAgents
を使用します。
- データ エージェントを作成するには、
Python SDK
次の Python コードサンプルは、Colaboratory 内で Conversational Analytics API にアクセスするために Google アカウントを認証する方法を示しています。
from google.colab import auth
auth.authenticate_user()
Conversational Analytics API を使用して Looker に接続する
Conversational Analytics API を使用して Looker に接続するには、次の情報を指定する必要があります。
- Looker インスタンスの URL
- データソースとして使用する特定の LookML モデルと Looker Explore
また、認証を行うユーザーまたはサービス アカウントには、必要な Looker 権限が必要です。
適切な認証方法を選択する
認証には、Looker API キー(クライアント ID とクライアント シークレット)またはアクセス トークンを使用できます。プライベート接続のみで Looker(Google Cloud コア)を使用するお客様は、アクセス トークンで認証する必要があります。
次の表を使用して、適切な認証方法を選択します。
ユーザーの種類 | 認証方法 | Looker(オリジナル)の場合 | Looker(Google Cloud コア)の場合 | プライベート接続のみを使用する Looker(Google Cloud コア)の場合 | 説明 |
埋め込みユーザー | アクセス トークン | login_user |
login_user |
なし | ターゲット ユーザーの access_token の LookML 行レベルと列レベルの権限(access_filters 、access_grants 、sql_always_where など)を尊重します。 |
標準ユーザー | アクセス トークン |
または |
OAuth クライアント | OAuth クライアント | ターゲット ユーザーの access_token の LookML 行レベルと列レベルの権限(access_filters 、access_grants 、sql_always_where など)を尊重します。 |
Looker API 専用のサービス アカウント | API キー | クライアント ID とシークレット | クライアント ID とシークレット | なし | すべてのユーザーが Looker への同じレベルのアクセス権を共有します。 |
API キーは、ユーザーの権限とアクセスレベルを使用します。API キーは、すべてのユーザーが同じレベルのアクセス権を共有するアプリケーションを構築する場合に便利です。
アクセス トークンを使用すると、ターゲット ユーザーの access_token
の LookML 行レベルと列レベルの権限(access_filters
、access_grants
、sql_always_where
など)を使用できます。アクセス トークンはマルチテナント アプリケーションに役立ちます。
必要な Looker の権限
認証に使用される認証情報を持つユーザーまたはサービス アカウントには、クエリするモデルに対する次の権限を含む Looker ロールが付与されている必要があります。
これらの権限は、Looker インスタンスの [管理 > ロール] セクションで構成できます。
Looker API キーを使用して認証する
このセクションでは、直接 HTTP リクエストまたは SDK を使用して API キーを生成し、Conversational Analytics API を構成して Looker に接続する方法について説明します。
Looker インスタンスとの接続を確立するには、有効な Looker API キーが必要です。このキーは Looker によって作成され、クライアント ID とクライアント シークレットで構成されます。Looker は、これらのキーを使用して Looker API へのリクエストを認可します。
新しい Looker API キーの生成については、管理者設定 - ユーザーをご覧ください。認証方法と Looker API キーの管理の詳細については、Looker API の認証をご覧ください。
Python を使用した HTTP
API キー(クライアント ID とシークレット)を生成したら、直接 HTTP リクエストを送信して、Looker に接続するように Conversational Analytics API を構成できます。次のサンプルコードは、HTTP リクエストの本文で Looker データソースの詳細と API キーを指定する方法を示しています。
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",
}
}
}
サンプル値を次のように置き換えます。
- your_looker_client_id: 生成された Looker API キーのクライアント ID
- your_looker_client_secret: 生成された Looker API キーのクライアント シークレット
- https://your_company.looker.com: Looker インスタンスの完全な URL
- your_model: 使用する LookML モデルの名前
- your_explore: 指定されたモデル内で使用する Explore の名前
Python SDK
API キー(クライアント ID とシークレット)を生成したら、Python を使用して Conversational Analytics API を構成し、Looker に接続できます。次の Python コードサンプルは、Looker データソースの詳細と API キーを Conversational Analytics API に指定する方法を示しています。
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]
サンプル値を次のように置き換えます。
- YOUR-LOOKER-CLIENT-ID: 生成された Looker API キーのクライアント ID
- YOUR-LOOKER-CLIENT-SECRET: 生成された Looker API キーのクライアント シークレット
- YOUR-LOOKER-INSTANCE-URI: Looker インスタンスの完全な URL
- YOUR-LOOKER-MODEL: 使用する Looker モデルの名前
- YOUR-LOOKER-EXPLORE: 使用する Looker Explore の名前
アクセス トークンによる認証
このセクションでは、アクセス トークンを使用して Looker に接続するように Conversational Analytics API を構成する方法について説明します。
Looker インスタンスとの接続を確立するには、有効な OAuth2 access_token
値が必要です。この値は、login
Looker API エンドポイントへのリクエストが成功すると作成されます。
アクセス トークンの生成について詳しくは、Looker API の認証と、認証トークンを取得するためにクライアント認証情報を提示する方法をご覧ください。
Python を使用した HTTP
次のサンプルコードで示すのは、HTTP リクエストの本文で Looker データソースの詳細とアクセス トークンを指定する方法です。
セキュリティを強化するため、Looker アクセス トークン(access_token
)を環境変数として保存することをおすすめします。
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",
}
}
}
サンプル値を次のように置き換えます。
- YOUR-TOKEN: Looker の認証用に生成する
access_token
値。 - https://your_company.looker.com: Looker インスタンスの完全な URL
- your_model: 使用する LookML モデルの名前
- your_explore: 指定されたモデル内で使用する Explore の名前
Python SDK
次の Python コードサンプルで示すのは、Looker データソースの詳細とアクセス トークンを定義し、Python SDK を使用して認証する方法です。
セキュリティを強化するため、Looker アクセス トークン(access_token
)を環境変数として保存することをおすすめします。
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]
サンプル値を次のように置き換えます。
- YOUR-TOKEN: Looker の認証に使用する
access_token
値 - YOUR-LOOKER-INSTANCE-URI: Looker インスタンスの完全な URL
- YOUR-LOOKER-MODEL: 使用する Looker モデルの名前
- YOUR-LOOKER-EXPLORE: 使用する Looker Explore の名前
JavaScript を使用した HTTP
次のサンプルコードで示すのは、HTTP リクエストの本文で Looker データソースの詳細とアクセス トークンを指定する方法です。
セキュリティを強化するため、Looker アクセス トークン(access_token
)を環境変数として保存することをおすすめします。
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,
},
},
},
},
},
},
}
サンプル値を次のように置き換えます。
- YOUR-LOOKER-INSTANCE-URI: Looker インスタンスの完全な URL
- YOUR-LOOKER-MODEL: 使用する LookML モデルの名前
- YOUR-LOOKER-EXPLORE: 指定されたモデル内で使用する Explore の名前
- YOUR-TOKEN: Looker の認証用に生成する
access_token
値。
Conversational Analytics API を使用して BigQuery に接続する
Conversational Analytics API を使用して 1 つ以上の BigQuery テーブルに接続するには、テーブルごとに該当する BigQuery プロジェクトの認証を行う必要があります。各テーブルについて、次の情報を指定します。
- BigQuery プロジェクト ID
- BigQuery データセット ID
- BigQuery テーブル ID
Conversational Analytics API では、接続できる BigQuery テーブルの数に上限はありません。ただし、多数のテーブルに接続すると、精度が低下したり、Gemini の入力トークン上限を超える可能性があります。複数のテーブルにわたる複雑な結合を必要とするクエリでも、レスポンスの精度が低下する可能性があります。
このセクションでは、直接 HTTP リクエストまたは SDK を使用して、BigQuery に接続するように Conversational Analytics API を構成する方法について説明します。
Python を使用した HTTP
次のサンプルコードは、複数の 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"
},
]
}
}
サンプル値を次のように置き換えます。
- my_project_id: 接続する BigQuery データセットとテーブルを含む Google Cloud プロジェクトの ID。公開データセットに接続するには、
bigquery-public-data
を指定します。 - my_dataset_id: BigQuery データセットの ID。
- my_table_id: BigQuery テーブルの ID。
Python SDK
Colaboratory の auth
SDK を使用して、Colaboratory で認証されたユーザーの認証情報で BigQuery に対する認証を行うことができます。
次の Python コードサンプルは、複数の BigQuery テーブルへの接続を定義し、Colaboratory 内で BigQuery に対して Google アカウントの認証を行う方法を示しています。
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]
サンプル値を次のように置き換えます。
- my_project_id: 接続する BigQuery データセットとテーブルを含む Google Cloud プロジェクトの ID。公開データセットに接続するには、
bigquery-public-data
を指定します。 - my_dataset_id: BigQuery データセットの ID。例:
san_francisco
- my_table_id: BigQuery テーブルの ID。例:
street_trees
Conversational Analytics API を使用して Looker Studio に接続する
Conversational Analytics API を使用して Looker Studio に接続するには、まず Looker Studio API を有効にする必要があります。このセクションでは、直接 HTTP リクエストまたは SDK を使用して、Looker Studio に接続するように Conversational Analytics API を構成する方法について説明します。
Looker Studio API を有効にする
Looker Studio API を有効にするには、API を有効にするの手順を実施します。
Looker Studio に対する認証
Conversational Analytics API を使用して Looker Studio に接続するには、Looker Studio で認証を行い、Looker Studio のデータソース ID を提供する必要があります。
Python を使用した HTTP
Looker Studio API を有効にすると、Python で HTTP curl リクエストを送信して、Looker Studio の認証を行うことができます。次のサンプルコードで示すのは、HTTP リクエストの本文で Looker データソースの詳細を指定する方法です。
Looker Studio の認証は、直接 HTTP リクエストを送信することで行うことができます。HTTP 呼び出しの例を次のコードブロックに示します。
looker_studio_data_source = {
"studio":{
"studio_references":
[
{
"datasource_id": "your_studio_datasource_id"
}
]
}
}
your_studio_datasource_id は、使用する Looker Studio データソースの実際のデータソース ID に置き換えます。
Python SDK
Looker Studio API を有効にすると、SDK を使用して Looker Studio の認証を行うことができます。次の Python コードサンプルで示すのは、Looker データソースの詳細を指定して 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]
STUDIO-DATASOURCE-ID は、使用する Looker Studio データソースの実際のデータソース ID に置き換えます。