Conversational Analytics API を使用してデータソースの認証と接続を行う

デベロッパーは、geminidataanalytics.googleapis.com を介してアクセスできる Conversational Analytics API を使用して、BigQuery、Looker、Looker Studio の構造化データに関する質問に自然言語で回答する人工知能(AI)を活用したチャット インターフェース(データ エージェント)を構築できます。

このページでは、直接 HTTP リクエストまたは SDK を使用して、Conversational Analytics API の認証を行い、LookerBigQueryLooker 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 コマンドは、認可に使用されるアクセス トークンを提供します。コードサンプルで、 は適切な API リソースパスに置き換えます。

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/v1alpha/projects/{billing_project}:method"
  headers = {"Authorization": f'Bearer {access_token[0]}'}

サンプル値を次のように置き換えます。

  • YOUR_BILLING_PROJECT: 必要な API が有効になっている課金プロジェクトの ID。
  • method: ターゲット エンドポイントのリソースパス。例:
    • データ エージェントを作成するには、POST メソッドとリソースパス /v1alpha/projects/{billing_project}/locations/global/dataAgents を使用します。
    • 既存のデータ エージェントの一覧を取得するには、GET メソッドとリソースパス /v1alpha/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 API キー(クライアント ID とクライアント シークレット)またはアクセス トークンを使用できます。

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_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 = "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 データソースの詳細とアクセス トークンを指定する方法です。

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 を使用して BigQuery に接続するには、BigQuery プロジェクトの認証を行い、次の情報を指定する必要があります。

  • BigQuery プロジェクト ID
  • BigQuery データセット ID
  • BigQuery テーブル ID

Conversational Analytics API を使用すると、一度に最大 10 個の BigQuery テーブルに接続してクエリを実行できます。

このセクションでは、直接 HTTP リクエストまたは SDK を使用して、BigQuery に接続するように Conversational Analytics API を構成する方法について説明します。

Python を使用した HTTP

BigQuery プロジェクトの認証を行った後、直接 HTTP リクエストを送信して、BigQuery のデータにアクセスするように Conversational Analytics API を構成できます。次のサンプルコードで示すのは、HTTP リクエストの本文で BigQuery データソースの詳細を指定する方法です。

bigquery_data_sources = {
    "bq": {
      "tableReferences": [
        {
          "projectId": "bigquery-public-data",
          "datasetId": "san_francisco",
          "tableId": "street_trees"
        }
      ]
    }
}

サンプル値を次のように置き換えます。

  • bigquery-public-data: BigQuery プロジェクトの ID
  • san_francisco: BigQuery データセットの ID
  • street_trees: BigQuery テーブルの ID

Python SDK

Colaboratory の auth SDK を使用して、Colaboratory で認証されたユーザーの認証情報で BigQuery に対する認証を行うことができます。

次の Python コードサンプルで示すのは、Colaboratory 内で BigQuery に対して Google アカウントの認証を行い、BigQuery データソースにアクセスするように Conversational Analytics API を構成する方法です。

from google.colab import auth
auth.authenticate_user()

bq_project_id = "YOUR-PROJECT-ID" # @param {type:"string"}
bq_dataset_id = "YOUR-DATASET-ID" # @param {type:"string"}
bq_table_id = "YOUR-TABLE-ID" # @param {type:"string"}

# BigQuery data source
bigquery_table_reference = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference.project_id = bq_project_id
bigquery_table_reference.dataset_id = bq_dataset_id
bigquery_table_reference.table_id = bq_table_id

# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.bq.table_references = [bigquery_table_reference]

サンプル値を次のように置き換えます。

  • YOUR-PROJECT-ID: BigQuery プロジェクトの ID
  • YOUR-DATASET-ID: BigQuery データセットの ID
  • YOUR-TABLE-ID: BigQuery テーブルの ID

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 に置き換えます。