数据驻留

本页介绍了 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) 处理(标识为使用中(管辖区))是指针对您的数据做出的 ML 处理承诺。根据服务专用条款中的定义,Google 只会在您选择的区域或多区域对您的数据执行机器学习处理。

以下部分详细介绍了对于使用 BigQueryLooker 数据源的代理和对话,数据留存方面的支持情况。

BigQuery 数据

对于连接到 BigQuery 的数据代理,单区域和多区域端点支持静态数据的留存位置,以及使用中数据的管辖区机器学习处理。无论您指定哪个端点位置,代理都可以连接到任何位置或位置组合中的 BigQuery 数据集:

位置 地点描述 端点类型 端点网址 数据集位置 数据驻留支持
global 全球 全球 geminidataanalytics.googleapis.com 任何区域或多区域 不支持
eu 欧盟 多区域级 geminidataanalytics.eu.rep.googleapis.com 任何区域或多区域 静息使用中(管辖区)
us 美国 多区域级 geminidataanalytics.us.rep.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 位置

通过区域端点强制执行数据驻留

如需对 DataAgentConversation 资源强制执行数据驻留要求,请在创建和访问这些资源时使用区域级端点。Conversational Analytics API 的服务端点使用以下格式,具体取决于位置类型:

  • 全球geminidataanalytics.googleapis.com
  • 多区域geminidataanalytics.LOCATION.rep.googleapis.com
  • 区域geminidataanalytics-LOCATION.googleapis.com

LOCATION 占位符替换为受支持的单区域或多区域,例如 euusus-east4

以下示例展示了如何为 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 客户端时传递带有区域 api_endpoint 参数的 client_options,如配置设置并初始化客户端中的以下示例所示。

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:您要在其中创建资源的区域或多区域。如需使用某个区域级端点,请指定 euusus-east4

限制

使用区域端点时,请考虑以下几点:

后续步骤