本頁說明如何向 Conversational Analytics API 進行驗證。本文也會說明如何使用直接 HTTP 要求或 SDK,在 Looker、BigQuery、數據分析 和 Cloud Databases (AlloyDB、GoogleSQL for Spanner、MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL) 中設定資料連線。Conversational Analytics API 使用標準的Google Cloud 驗證方法。
事前準備
如要對 Conversational Analytics API 進行驗證,並設定資料連線,請先完成必要條件,並為 Google Cloud 專案啟用必要 API,詳情請參閱「啟用 Conversational Analytics API」。
如果您打算使用客戶自行管理的加密金鑰 (CMEK),在搭配 Looker 資料來源使用 Conversational Analytics API 時保護資源,請務必授予 API 服務帳戶使用 Cloud Key Management Service 金鑰的權限。詳情請參閱 CMEK 說明文件中的「事前準備」。
對 Conversational Analytics API 進行驗證
本節說明如何使用 HTTP 和 Python 方法取得必要的授權權杖,以向 Conversational Analytics API 進行驗證。下列範例會根據資源位置使用區域端點邏輯。如要進一步瞭解地區端點,請參閱「資料落地」。
HTTP curl
下列 curl 指令範例會以 API 端點方法為目標,示範如何使用 Google Cloud CLI 產生的 ID 權杖傳送已驗證的要求:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
https://ENDPOINT_URL/v1/projects/PROJECT_ID/locations/LOCATION/METHOD
請依下列方式替換範例值:
- ENDPOINT_URL:與您所在位置對應的服務端點網址,例如
global預設位置的geminidataanalytics.googleapis.com,或us多區域的geminidataanalytics.us.rep.googleapis.com。 - PROJECT_ID: Google Cloud 您啟用必要 API 的專案 ID。
LOCATION:資源的儲存位置 (例如
global或us-east4)。METHOD:目標端點方法或資源路徑 (例如
dataAgents可建立代理程式,或dataAgents/AGENT_ID可取得特定代理程式)。
使用 Python 進行 HTTP
下列 Python 程式碼範例會以 API 端點方法為目標,示範如何取得存取權杖及傳送經過驗證的 HTTP 要求。程式碼會根據指定的地區類型,動態建構端點網址。
billing_project = 'PROJECT_ID'
location = 'LOCATION'
access_token = !gcloud auth application-default print-access-token
# Set the base URL based on location.
if not location or location == "global":
base_url = "https://geminidataanalytics.googleapis.com"
elif "-" in location:
# Regional endpoints
base_url = f"https://geminidataanalytics-{location}.googleapis.com"
else:
# Multi-regional endpoints
base_url = f"https://geminidataanalytics.{location}.rep.googleapis.com"
url = f"{base_url}/v1/projects/{billing_project}/locations/{location}/METHOD"
headers = {"Authorization": f'Bearer {access_token[0]}'}
請依下列方式替換範例值:
- PROJECT_ID: Google Cloud 您啟用必要 API 的專案 ID。
LOCATION:資源的儲存位置 (例如
global或us-east4)。METHOD:目標端點方法或資源路徑。例如:
- 如要建立資料代理程式,請使用
POST方法並指定dataAgents。 - 如要列出現有資料代理程式,請使用
GET方法並指定dataAgents。
- 如要建立資料代理程式,請使用
Python SDK
下列 Python 程式碼範例說明如何在 Colaboratory 中驗證 Google 帳戶,以存取對話式數據分析 API:
from google.colab import auth
auth.authenticate_user()
使用對話式數據分析 API 連線至 Looker
如要透過 Conversational Analytics API 連結至 Looker,請提供下列資訊:
Looker 執行個體也必須符合特定條件:
此外,驗證使用者或服務帳戶必須具備必要 Looker 權限。
選擇適當的連線方法
然後選擇使用 Looker API 金鑰 (用戶端 ID 和用戶端密鑰) 或存取權杖授權要求。如果客戶僅透過私人連線使用 Looker (Google Cloud Core),則必須使用存取權杖連線。
請使用下表選擇授權要求的方式。
| 使用者類型 | 授權方法 | 適用於 Looker (原始版本) | 適用於 Looker (Google Cloud Core) | 僅使用私人連線的 Looker (Google Cloud Core) | 說明 |
| 嵌入使用者 | 存取權杖 | login_user |
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 金鑰連線
本節說明如何產生 API 金鑰,以及如何使用直接 HTTP 要求或 SDK 設定 Conversational Analytics API,以便連線至 Looker。
如要與 Looker 執行個體建立連線,您需要有效的 Looker API 金鑰 (由 Looker 建立,包含用戶端 ID 和用戶端密鑰)。Looker 會使用這些金鑰,針對 Looker API 驗證使用者身分。
如要進一步瞭解如何產生新的 Looker API 金鑰,請參閱「管理設定 - 使用者」。如要進一步瞭解驗證方式和如何管理 Looker API 金鑰,請參閱「Looker API 驗證」。
使用 Python 進行 HTTP
產生 API 金鑰 (用戶端 ID 和密鑰) 後,即可設定 Conversational Analytics API,直接發出 HTTP 要求來連結至 Looker。下列程式碼範例示範如何在 HTTP 要求的內文中,指定 Looker 資料來源詳細資料和 API 金鑰。
looker_credentials = {
"oauth": {
"secret": {
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
}
}
}
looker_data_source = {
"looker": {
"explore_references": {
"looker_instance_uri": "INSTANCE_URI",
"lookml_model": "MODEL",
"explore": "EXPLORE",
}
}
}
請依下列方式替換範例值:
- CLIENT_ID:產生的 Looker API 金鑰用戶端 ID
- CLIENT_SECRET:您產生的 Looker API 金鑰用戶端密鑰
- INSTANCE_URI:Looker 執行個體的完整網址 (例如
https://mycompany.looker.com) - MODEL:要使用的 LookML 模型名稱
- EXPLORE:您要使用的指定模型中「探索」的名稱
Python SDK
產生 API 金鑰 (用戶端 ID 和密鑰) 後,即可使用 Python 設定 Conversational Analytics API,以便連結至 Looker。下列 Python 程式碼範例示範如何指定 Looker 資料來源詳細資料和 API 金鑰給 Conversational Analytics API。
looker_client_id = "CLIENT_ID" # @param {type:"string"}
looker_client_secret = "CLIENT_SECRET" # @param {type:"string"}
looker_instance_uri = "INSTANCE_URI" # @param {type:"string"}
lookml_model = "MODEL" # @param {type:"string"}
explore = "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]
請依下列方式替換範例值:
- CLIENT_ID:產生的 Looker API 金鑰用戶端 ID
- CLIENT_SECRET:您產生的 Looker API 金鑰用戶端密鑰
- INSTANCE_URI:Looker 執行個體的完整網址 (例如
https://mycompany.looker.com) - MODEL:要使用的 Looker 模型名稱
- EXPLORE:要使用的 Looker 探索名稱
使用存取權杖連結
本節說明如何設定 Conversational Analytics API,以便使用存取權杖連線至 Looker。
如要與 Looker 執行個體建立連線,您需要有效的 OAuth2 access_token 值,這個值是透過向 login Looker API 端點提出要求並成功取得回應後建立。
如要進一步瞭解如何產生存取權杖,請參閱「Looker API 驗證」和「提供用戶端憑證以取得存取權杖」。
使用 Python 進行 HTTP
下列程式碼範例示範如何在 HTTP 要求主體中指定 Looker 資料來源詳細資料和存取權杖。
建議您將 Looker 存取權杖 (access_token) 儲存為環境變數,以提升安全性。
looker_credentials = {
"oauth": {
"token": {
"access_token": "ACCESS_TOKEN",
}
}
}
looker_data_source = {
"looker": {
"explore_references": {
"looker_instance_uri": "INSTANCE_URI",
"lookml_model": "MODEL",
"explore": "EXPLORE",
}
}
}
請依下列方式替換範例值:
- ACCESS_TOKEN:您產生的
access_token值,用於授權對 Looker 的要求 - INSTANCE_URI:Looker 執行個體的完整網址 (例如
https://mycompany.looker.com) - MODEL:要使用的 LookML 模型名稱
- EXPLORE:您要使用的指定模型中「探索」的名稱
Python SDK
下列 Python 程式碼範例說明如何定義 Looker 資料來源詳細資料和存取權杖,以便使用 Python SDK 授權要求。
建議您將 Looker 存取權杖 (access_token) 儲存為環境變數,以提升安全性。
looker_access_token = "ACCESS_TOKEN"
looker_instance_uri = "INSTANCE_URI"
lookml_model = "MODEL"
explore = "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]
請依下列方式替換範例值:
- ACCESS_TOKEN:您用來授權 Looker 要求的
access_token值 - INSTANCE_URI:Looker 執行個體的完整網址 (例如
https://mycompany.looker.com) - MODEL:要使用的 Looker 模型名稱
- EXPLORE:要使用的 Looker 探索名稱
使用對話式數據分析 API 連線至 BigQuery
本節說明如何設定 Conversational Analytics API,透過直接 HTTP 要求或 SDK 連線至 BigQuery。對話式數據分析 API 支援連結至 BigQuery 資料表和 BigQuery 圖表 (搶先版)。
使用對話式數據分析 API 時,可連結的 BigQuery 資料表數量沒有硬性限制。不過,如果連結大量資料表,可能會降低準確率,或導致您超出 Gemini 的輸入詞元限制。如果查詢需要在多個表格中進行複雜的聯結,也可能導致回覆不夠準確。
連結至資料表
如要連結一或多個 BigQuery 資料表,請提供每個資料表的專案 ID、資料集 ID 和資料表 ID。
下列範例說明如何使用 HTTP 要求或 Python SDK,連線至一或多個 BigQuery 資料表。
使用 Python 進行 HTTP
下列程式碼範例定義了與多個 BigQuery 資料表的連線:
bigquery_data_sources = {
"bq": {
"tableReferences": [
{
"projectId": "PROJECT_ID",
"datasetId": "DATASET_ID",
"tableId": "TABLE_ID"
},
{
"projectId": "PROJECT_ID_2",
"datasetId": "DATASET_ID_2",
"tableId": "TABLE_ID_2"
},
{
"projectId": "PROJECT_ID_3",
"datasetId": "DATASET_ID_3",
"tableId": "TABLE_ID_3"
},
]
}
}
請依下列方式替換範例值:
- PROJECT_ID、PROJECT_ID_2、PROJECT_ID_3:包含要連結的 BigQuery 資料集和資料表的專案 ID。 Google Cloud 如要連線至公開資料集,請指定
bigquery-public-data。 - DATASET_ID、DATASET_ID_2、DATASET_ID_3:BigQuery 資料集的 ID (或 Lakehouse 執行階段目錄資料表的
catalog.namespace)。 - TABLE_ID、TABLE_ID_2、TABLE_ID_3:BigQuery 資料表的 ID (或 Lakehouse 執行階段目錄資料表的資料表名稱)。
Python SDK
您可以使用 Colaboratory 的 auth SDK,透過 Google 帳戶憑證進行驗證,並授權 Colab 用戶端使用您的憑證存取 BigQuery。
下列 Python 程式碼範例定義了多個 BigQuery 資料表的連線,並示範如何在 Colaboratory 中使用 Google 帳戶憑證進行驗證,以授權要求。
from google.colab import auth
auth.authenticate_user()
# BigQuery data source
bigquery_table_reference = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference.project_id = "PROJECT_ID"
bigquery_table_reference.dataset_id = "DATASET_ID"
bigquery_table_reference.table_id = "TABLE_ID"
bigquery_table_reference_2 = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference_2.project_id = "PROJECT_ID_2"
bigquery_table_reference_2.dataset_id = "DATASET_ID_2"
bigquery_table_reference_2.table_id = "TABLE_ID_2"
bigquery_table_reference_3 = geminidataanalytics.BigQueryTableReference()
bigquery_table_reference_3.project_id = "PROJECT_ID_3"
bigquery_table_reference_3.dataset_id = "DATASET_ID_3"
bigquery_table_reference_3.table_id = "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]
請依下列方式替換範例值:
- PROJECT_ID、PROJECT_ID_2、PROJECT_ID_3:包含要連結的 BigQuery 資料集和資料表的專案 ID。 Google Cloud 如要連線至公開資料集,請指定
bigquery-public-data。 - DATASET_ID、DATASET_ID_2、DATASET_ID_3:BigQuery 資料集的 ID (或 Lakehouse 執行階段目錄資料表的
catalog.namespace)。例如:san_francisco。 - TABLE_ID、TABLE_ID_2、TABLE_ID_3:BigQuery 資料表的 ID (或 Lakehouse 執行階段目錄資料表的資料表名稱)。例如:
street_trees。
連線至圖表
下列範例說明如何使用 HTTP 要求或 Python SDK 連線至 BigQuery 圖表。每個代理程式或對話只能連結一個圖表。
使用 Python 進行 HTTP
下列程式碼範例會定義 BigQuery 圖形的連線:
bigquery_data_sources = {
"bq": {
"propertyGraphReferences": [
{
"projectId": "GRAPH_PROJECT_ID",
"datasetId": "GRAPH_DATASET_ID",
"propertyGraphId": "GRAPH_ID"
}
]
}
}
請依下列方式替換範例值:
- GRAPH_PROJECT_ID:包含 BigQuery 圖表的 Google Cloud 專案 ID。
- GRAPH_DATASET_ID:包含圖表的 BigQuery 資料集 ID。
- GRAPH_ID:BigQuery 圖表的 ID。
Python SDK
您可以使用 Colaboratory 的 auth SDK,透過已向 Colaboratory 驗證的使用者憑證,向 BigQuery 進行驗證。
下列 Python 程式碼範例定義了 BigQuery 圖表的連線:
from google.colab import auth
auth.authenticate_user()
# BigQuery graph reference
bigquery_pg_reference = geminidataanalytics.BigQueryPropertyGraphReference()
bigquery_pg_reference.project_id = "GRAPH_PROJECT_ID"
bigquery_pg_reference.dataset_id = "GRAPH_DATASET_ID"
bigquery_pg_reference.property_graph_id = "GRAPH_ID"
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.bq.property_graph_references = [bigquery_pg_reference]
請依下列方式替換範例值:
- GRAPH_PROJECT_ID:包含 BigQuery 圖表的 Google Cloud 專案 ID。
- GRAPH_DATASET_ID:包含圖表的 BigQuery 資料集 ID。
- GRAPH_ID:BigQuery 圖表的 ID。
使用 Conversational Analytics API 連結至 Google 數據分析
如要透過 Conversational Analytics API 連結至數據分析,請先啟用 Data Studio API。本節說明如何設定 Conversational Analytics API,以便使用直接 HTTP 要求或 SDK 連線至數據分析。
如要在數據分析 Pro 中使用 Conversational Analytics API,Pro 訂閱方案必須位於 VPC-SC 範圍外。
啟用 Data Studio API
如要啟用 Data Studio API,請按照「啟用 API」一文中的操作說明進行。
向數據分析驗證
如要透過 Conversational Analytics API 連線至數據分析,請務必授權已驗證的使用者或服務帳戶存取數據分析資料來源,然後提供資料來源 ID。
使用 Python 進行 HTTP
啟用 Data Studio API 後,您可以使用 Python 提出 HTTP curl 要求,連線至 Data Studio。下列程式碼範例示範如何在 HTTP 要求的內文中指定數據分析資料來源詳細資料。
您可以發出直接 HTTP 要求,連線至數據分析。下列程式碼區塊顯示 HTTP 呼叫範例。
looker_studio_data_source = {
"studio":{
"studio_references":
[
{
"datasource_id": "DATASOURCE_ID"
}
]
}
}
將 your_studio_datasource_id 替換為要使用的數據分析資料來源實際 ID。
Python SDK
啟用 Data Studio API 後,您可以使用 SDK 連結至 Data Studio。下列 Python 程式碼範例說明如何指定數據分析資料來源詳細資料。
datasource_id = "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 替換為要使用的數據分析資料來源實際 ID。
使用 Conversational Analytics API 連線至資料庫
如要透過 Conversational Analytics API 連線至資料庫,您必須具備資料庫執行個體的必要 IAM 權限。
連線至 AlloyDB for PostgreSQL
使用者或服務帳戶必須具備 alloydb.databaseUser 角色。詳情請參閱「AlloyDB、IAM 資料庫驗證」。
使用 Python 進行 HTTP
下列程式碼範例說明如何在 HTTP 要求的內文中,向 queryData 端點指定 AlloyDB 資料來源詳細資料。
alloydb_data_sources = {
"alloydb": {
"database_reference": {
"project_id": alloydb_project_id,
"region": location,
"cluster_id": alloydb_cluster_id,
"instance_id": alloydb_instance_id,
"database_id": alloydb_database_id,
"table_ids":["table1", "table2", "table3"]
},
# Optional: Include this if you have pre-authored context for the agent
# "agent_context_reference": {
# "context_set_id": f"projects/alloydb_project_id/locations/{location}/contextSets/your_context_set_id"
# }
}
}
請依下列方式替換範例值:
- your_table_id:以半形逗號分隔的資料表 ID 清單。如未設定,系統會將資料庫中的所有資料表納入考量。
- your_context_set_id:(選用) 要擷取的內容集完整 ID。如要進一步瞭解如何找出內容集 ID,請參閱「在 AlloyDB 中找出代理程式內容 ID」。
Python SDK
下列 Python 程式碼範例說明如何使用 Python SDK 定義 AlloyDB 資料來源詳細資料。
# AlloyDB data source
alloydb_table_ids = ["your_table_id_1", "your_table_id_2"]
alloydb_context_set_id = "your_context_set_id"
alloydb_reference = geminidataanalytics.AlloyDbReference()
alloydb_reference.database_reference.table_id = alloydb_table_ids
alloydb_reference_database_reference.project_id = billing_project
alloydb_reference_database_reference.region = "us-central1" # Example region
alloydb_reference_database_reference.cluster_id = alloydb_cluster_id
alloydb_reference_database_reference.instance_id = alloydb_instance_id
alloydb_reference_database_reference.database_id = alloydb_database_id
# optional set agent context reference
# alloydb_ref_1.agent_context_reference.context_set_id = f"projects/{billing_project}/locations/{location}/contextSets/your_context_set_id"
alloydb_reference.agent_context_reference.context_set_id = alloydb_context_set_id
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.alloydb.alloydb_reference = alloydb_reference
請依下列方式替換範例值:
- your_table_id_1:AlloyDB 執行個體中第一個資料表的 ID。
- your_table_id_2:AlloyDB 執行個體中第二個資料表的 ID。
- your_context_set_id:要擷取的情境集完整 ID。如要進一步瞭解如何找出內容集 ID,請參閱「在 AlloyDB 中找出代理程式內容 ID」。
連線至 Spanner 適用的 GoogleSQL
使用者或服務帳戶必須具備 spanner.databaseReader 角色。詳情請參閱「套用 IAM 角色」。
使用 Python 進行 HTTP
下列程式碼範例說明如何在 HTTP 要求主體中,為 queryData 端點指定 Spanner 資料來源詳細資料的 GoogleSQL。
spanner_data_sources = {
"spanner_reference": {
"database_reference": {
"project_id": spanner_project_id,
"region": location,
"engine": engine,
"instance_id": spanner_instance_id,
"database_id": spanner_database_id,
},
# Optional: Include this if you have pre-authored context for the agent
# "agent_context_reference": {
# "context_set_id": f"projects/{billing_project}/locations/{location}/contextSets/your_context_set_id"
# }
}
}
請依下列方式替換範例值:
- your_table_id_1:GoogleSQL for Spanner 執行個體中第一個資料表的 ID。
- your_table_id_2:GoogleSQL for Spanner 執行個體中第二個資料表的 ID。
- your_context_set_id:要擷取的情境集完整 ID。如要進一步瞭解如何找出內容集 ID,請參閱「在 GoogleSQL for Spanner 中找出代理程式內容 ID」。
Python SDK
下列 Python 程式碼範例說明如何使用 Python SDK,為 Spanner 資料來源詳細資料定義 GoogleSQL。
# Spanner data source
spanner_table_ids = ["your_table_id_1", "your_table_id_2"]
spanner_context_set_id = "your_context_set_id"
spanner_reference = geminidataanalytics.SpannerReference()
spanner_reference.database_reference.table_id = spanner_table_ids
spanner_reference.agent_context_reference.context_set_id = spanner_context_set_id
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.spanner.spanner_reference = spanner_reference
請依下列方式替換範例值:
- your_table_id_1:GoogleSQL for Spanner 執行個體中第一個資料表的 ID。
- your_table_id_2:GoogleSQL for Spanner 執行個體中第二個資料表的 ID。
- your_context_set_id:要擷取的情境集完整 ID。如要進一步瞭解如何找出內容集 ID,請參閱「在 GoogleSQL for Spanner 中找出代理程式內容 ID」。
連線至 MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL
以下各節提供連線至 MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 的操作說明。使用者或服務帳戶必須具備 cloudsql.studioUser 和 cloudsql.instanceUser 角色。詳情請參閱「使用 MySQL 適用的 Cloud SQL IAM 資料庫驗證機制管理使用者」和「使用 PostgreSQL 適用的 Cloud SQL IAM 資料庫驗證機制管理使用者」。
使用 Python 進行 HTTP
下列程式碼範例說明如何在 HTTP 要求主體中,指定 MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 資料來源詳細資料,傳送至 queryData 端點。
cloudsql_data_source = {
"cloudSqlReference": {
"databaseReference": {
"engine": MYSQL,
"project_id": cloud-db-nl2sql,
"region": us-central1,
"instance_id": nl2sql-birdsql-mysql,
"database_id": financial
},
# Optional: Include this if you have pre-authored context for the agent
# "agent_context_reference": {
# "context_set_id": f"projects/cloud-db-nl2sql/locations/us-central1/contextSets/bdf_pg_all_templates\"
# }
}
}
請依下列方式替換範例值:
- your_table_id_1:MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 執行個體中第一個資料表的 ID。
- your_table_id_2:Cloud SQL for MySQL 和 PostgreSQL 適用的 Cloud SQL 執行個體中第二個資料表的 ID。
- your_context_set_id:要擷取的情境集完整 ID。如要進一步瞭解如何找出內容集 ID,請參閱「在 MySQL 適用的 Cloud SQL 中找出代理程式內容 ID」和「在 PostgreSQL 適用的 Cloud SQL 中找出代理程式內容 ID」。
Python SDK
下列 Python 範例程式碼說明如何使用 Python SDK 定義 MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 資料來源詳細資料。
# Cloud SQL data source
cloudsql_table_ids = ["your_table_id_1", "your_table_id_2"]
cloudsql_context_set_id = "your_context_set_id"
cloudsql_reference = geminidataanalytics.CloudSqlReference()
cloudsql_reference.database_reference.table_id = cloudsql_table_ids
cloudsql_reference.agent_context_reference.context_set_id = cloudsql_context_set_id
# Connect to your data source
datasource_references = geminidataanalytics.DatasourceReferences()
datasource_references.cloudsql.cloudsql_reference = cloudsql_reference
請依下列方式替換範例值:
- your_table_id_1:Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 執行個體中第一個資料表的 ID。
- your_table_id_2:Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 執行個體中第二個資料表的 ID。
- your_context_set_id:要擷取的情境集完整 ID。如要進一步瞭解如何找出內容集 ID,請參閱「在 Cloud SQL 中找出代理程式內容 ID」和「在 PostgreSQL 適用的 Cloud SQL 中找出代理程式內容 ID」。