本页面介绍如何监控和管理 Conversational Analytics API 智能体的 BigQuery 费用,这些智能体会针对 BigQuery 数据运行查询,从而产生费用。您可以使用以下方法来控制支出并避免产生意外费用:
- 为项目和用户设置配额,以便为整个项目或个别用户设置宽泛的支出限额。
- 通过在智能体的配置中设置
big_query_max_billed_bytes
值,限制各查询的费用。
准备工作
如要实施本页面所述费用控制措施,您必须先满足以下要求:
- 您必须有启用了结算功能的 Google Cloud 项目。
- 您必须拥有必要的 Identity and Access Management (IAM) 权限,才能管理 Google Cloud 项目的配额和结算。
为项目和用户设置配额
您可以应用标准 BigQuery 配额,为 Google Cloud 项目或个别用户设置支出限额。这些限额有助于您控制总体费用,并防止个别用户的费用超支。
对于可能会产生高额费用的智能体(例如基于超大型表或未分区表构建的智能体),建议的做法是先将智能体隔离到自己的专用项目中。然后,您可以应用项目级配额来限制该项目的每日费用上限,或应用用户级配额来确保各用户的费用合理,也可以同时应用项目级配额和用户级配额。
为智能体设置专用项目
如需为您的 Conversational Analytics API 智能体设置专用项目,请按以下步骤操作:
- 在 Google Cloud 控制台中,创建一个新的 Google Cloud 项目。此项目将专用于您的一个或多个智能体。
- 确保已为该新项目启用结算功能。
- 确认您的智能体已配置为使用该新项目进行结算。配置智能体时,您需要指定该新项目的项目 ID。
为项目设置配额
设置专用 Google Cloud 项目后,您便可以应用配额来控制整个项目的费用。如需设置项目级配额,请按以下步骤操作:
在智能体的 Google Cloud 项目中,依次前往 IAM 和管理 > 配额。
过滤出 BigQuery API 服务,然后选择每日查询用量配额。
将配额修改为所需的每日限额(例如 10 TiB)。达到此限额时,系统会硬性阻止进一步的查询,以防止项目超出指定的每日费用。
为用户设置配额
为防止任何个别用户产生高额费用,您可以按照以下步骤设置每用户配额:
在智能体的 Google Cloud 项目中,依次前往 IAM 和管理 > 配额。
过滤出 BigQuery API 服务,然后选择每用户每日查询用量配额。
将配额修改为所需的每日限额(例如,每位用户每天 1 TiB)。此限额可确保单个用户不会耗用过量资源。
限制各查询的费用
为防止任何个别用户查询产生意外的高额费用,您可以在智能体上配置 big_query_max_billed_bytes
参数,设置每个查询的费用限额。
智能体在运行任何查询之前,会先进行试运行,以估算查询费用。如果估算的待扫描字节数超过 big_query_max_billed_bytes
值,智能体会阻止查询并向用户发送错误消息。
您可以在创建或配置使用 HTTP 或使用 Python SDK 的智能体时,在 published_context
字段中设置 big_query_max_billed_bytes
参数。以下示例(以 textproto
格式显示)展示了一个为智能体配置了 100 MB 限额的请求的结构,该智能体用来回答有关旧金山行道树的问题:
parent: "projects/sample-project-name/locations/global"
data_agent_id: "sample-agent-id"
data_agent {
name: "projects/sample-project-name/locations/global/dataAgents/sample-agent-id"
data_analytics_agent {
published_context {
system_instruction: "This agent provides information about street trees in San Francisco, including their species, location, and planting date."
options {
datasource {
big_query_max_billed_bytes {
value: 104857600 #100MB
}
}
}
datasource_references {
bq {
table_references {
project_id: "bigquery-public-data"
dataset_id: "san_francisco"
table_id: "street_trees"
}
}
}
}
}
}
在此示例中,big_query_max_billed_bytes
参数设置为 104857600
字节(100 MB)。该值用于限制 sample-agent-id
智能体针对 bigquery-public-data.san_francisco.street_trees
BigQuery 表运行的任何查询。
如需查看有关如何创建和配置智能体的互动式示例,请参阅 Colaboratory 笔记本。如需详细了解 API 字段,请参阅 API 参考文档。
限制
在管理 Conversational Analytics API 智能体的费用时,请注意以下限制:
- 这些费用管理工具仅适用于采用按需结算的项目,而不适用于采用槽预留的项目。
- 不支持为个别智能体设置配额。如为项目和用户设置配额部分所述,建议的做法是将智能体隔离到自己的项目中,然后对该项目应用项目级配额或每用户配额。
- 不支持使用 BigQuery 标签跟踪个别智能体的费用。