本页面介绍了 Conversational Analytics API 如何支持数据驻留。数据驻留是指数据的物理位置,以及在特定地理区域内存储和处理数据的承诺,以满足监管或政策要求。如需控制数据的位置,请为 API 请求指定区域服务端点。
在本文档中,位置是指数据驻留所在的 Google Cloud 区域或多区域位置,您的数据与服务专用条款的数据位置部分中的“客户数据”含义相同。
Conversational Analytics API 的数据驻留承诺因智能体连接到 BigQuery 还是 Looker 而异。
数据驻留范围
Conversational Analytics API 可让您控制客户数据在不同状态下的存储位置,从而帮助您满足数据驻留要求:
- 当数据存储在永久性存储空间中,而不是正在被处理或传输时,数据处于静态。
- 当数据位于内存中时,例如当机器学习 (ML) 模型处理数据以生成回答或服务执行查询时,数据处于使用中状态。对于 Conversational Analytics API,使用中数据的数据驻留承诺仅适用于管辖区内的机器学习处理,不涵盖所有使用中数据状态的全面驻留。
- 数据在进入或离开 Google 网络边界时处于传输中状态。
Conversational Analytics API 的数据驻留承诺适用于 DataAgent 资源(包括客户配置、上下文、系统指令和示例查询)和 Conversation 资源(包括消息内容和状态历史记录)。这些承诺不适用于服务数据(例如资源标识符和标签)或传输中的数据。
支持的数据位置
Conversational Analytics API 支持全球、区域和多区域位置。使用区域级或多区域级端点时,您可以控制静态数据的存储位置。
在下表中,管辖区机器学习 (ML) 处理(标识为使用中(管辖区))是指对您的数据进行机器学习处理的承诺。如服务专用条款中所定义,Google 仅在您选择的单区域或多区域中对您的数据执行机器学习处理。
以下部分详细介绍了对使用 BigQuery 和 Looker 数据源的代理和对话的数据驻留支持。
BigQuery 数据
对于连接到 BigQuery 的数据代理,区域和多区域端点支持静态数据的数据驻留,以及使用中数据的管辖区机器学习处理。无论您指定哪个端点位置,智能体都可以连接到任何位置或位置组合中的 BigQuery 数据集:
| 位置 | 地点描述 | 端点类型 | 端点网址 | 数据集位置 | 数据驻留支持 |
|---|---|---|---|---|---|
global |
全球 | 全球 | geminidataanalytics.googleapis.com |
任何区域或多区域 | 不支持 |
eu |
欧盟 | 多区域级 | geminidataanalytics.eu.rep.googleapis.com |
任何区域或多区域 | 静态、使用中(管辖区) |
us |
美国 | 多区域级 | geminidataanalytics.us.rep.googleapis.com |
任何区域或多区域 | 静态、使用中(管辖区) |
northamerica-northeast1 |
蒙特利尔 | 区域 | geminidataanalytics-northamerica-northeast1.googleapis.com |
任何区域或多区域 | 静态、使用中(管辖区) |
northamerica-northeast2 |
多伦多 | 区域 | geminidataanalytics-northamerica-northeast2.googleapis.com |
任何区域或多区域 | 静态、使用中(管辖区) |
us-east4 |
北弗吉尼亚 | 区域 | geminidataanalytics-us-east4.googleapis.com |
任何区域或多区域 | 静态、使用中(管辖区) |
Looker 数据
对于连接到 Looker 的数据智能体,区域级和多区域级端点支持静态数据的数据驻留。无论您指定哪个端点位置,代理都可以连接到任何位置或位置组合中的数据源:
| 位置 | 地点描述 | 端点类型 | 端点网址 | 数据集位置 | 数据驻留支持 |
|---|---|---|---|---|---|
global |
全球 | 全球 | geminidataanalytics.googleapis.com |
任何区域或多区域 | 不支持 |
eu |
欧盟 | 多区域级 | geminidataanalytics.eu.rep.googleapis.com |
任何区域或多区域 | 静态 |
us |
美国 | 多区域级 | geminidataanalytics.us.rep.googleapis.com |
任何区域或多区域 | 静态 |
us-east4 |
北弗吉尼亚 | 区域 | geminidataanalytics-us-east4.googleapis.com |
任何区域或多区域 | 静态 |
如需查看可用单区域和多区域端点的完整列表,请参阅 Conversational Analytics API 位置。
通过区域端点强制执行数据驻留
如需为 DataAgent 和 Conversation 资源强制执行数据驻留,请在创建和访问这些资源时使用区域级端点。调用区域级端点时,请求路径或请求父级中的位置必须与您调用的端点的位置一致。例如,如果您调用 geminidataanalytics.us.rep.googleapis.com 端点,则必须在请求路径或请求父级(例如 /locations/us 或 projects/PROJECT_ID/locations/us)中指定 us。
Conversational Analytics API 的服务端点使用以下格式,具体取决于位置类型:
- 全球:
geminidataanalytics.googleapis.com - 多区域:
geminidataanalytics.LOCATION.rep.googleapis.com - 区域:
geminidataanalytics-LOCATION.googleapis.com
将 LOCATION 占位符替换为数据源支持的国家/地区或多区域。如需了解详情,请参阅支持的数据位置。
以下示例展示了如何为 HTTP 和 Python SDK 请求配置区域端点:
HTTP
如需将区域端点与 HTTP 搭配使用,请使用区域基础网址构建请求网址。首先,配置 base_url 以使用您选择的区域级端点,如配置初始设置和身份验证中的以下示例所示:
project_id = "PROJECT_ID"
location = "LOCATION"
# 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"
然后,在为 API 请求构建网址时使用 base_url 变量,例如使用有状态和无状态对话提问中的以下示例:
# Example API request URL construction using base_url:
chat_url = f"{base_url}/v1beta/projects/{project_id}/locations/{location}:chat"
Python SDK
如需将区域级端点与 Python SDK 搭配使用,请在初始化 API 客户端时传递 client_options 和区域级 api_endpoint 参数,如配置设置和初始化客户端中的以下示例所示。
from google.cloud import geminidataanalytics
from google.api_core import client_options
project_id = "PROJECT_ID"
location = "LOCATION"
# Set client options based on location.
if not location or location == "global":
endpoint = "geminidataanalytics.googleapis.com"
elif "-" in location:
# Regional endpoints
endpoint = f"geminidataanalytics-{location}.googleapis.com"
else:
# Multi-regional endpoints
endpoint = f"geminidataanalytics.{location}.rep.googleapis.com"
opts = client_options.ClientOptions(api_endpoint=endpoint)
# Use client options when initializing API clients.
data_agent_client = geminidataanalytics.DataAgentServiceClient(client_options=opts)
data_chat_client = geminidataanalytics.DataChatServiceClient(client_options=opts)
# Use clients to make API requests. For example:
# response = data_chat_client.chat(request=request)
按如下所示替换示例值:
- PROJECT_ID:您的 Google Cloud 项目 ID。
- LOCATION:您要在其中创建资源的区域或多区域。如需了解每个数据源支持的位置,请参阅支持的数据位置。
限制
使用区域端点时,请考虑以下几点:
- 如果您将客户管理的加密密钥 (CMEK) 与 Conversational Analytics API 搭配使用,则 Cloud KMS 密钥必须与区域级端点位于同一位置。
后续步骤
- 查看对话式分析 API 支持的位置列表。
- 了解客户管理的加密密钥 (CMEK)。
- 详细了解Google Cloud 位置。
- 如需了解一般数据位置承诺,请参阅服务专用条款。