针对 AI 功能(共享资源)使用预算。¶
共享资源是指被多个业务单元或团队共同使用的 Snowflake 资源。AI 功能(例如 AI 函数、Snowflake Intelligence、Cortex Agents 和 Cortex Code)就是共享资源的典型示例。您可以将这些资源添加到预算中,并对预算进行配置,使得只有指定用户使用这些资源所消耗的 Credit 才会计入该预算的支出限额。这样就可以跟踪和控制不同团队或成本中心的使用情况。
例如,假设多个团队使用相同的 AI 函数。您可以根据调用函数的用户,在单独的预算中跟踪每个团队的使用情况,一个预算用于工程用户,另一个预算用于财务用户。
跟踪共享资源使用情况的工作流程¶
根据使用资源的用户跟踪共享资源的使用情况,包括以下工作流程:
为使用共享资源的用户 应用一个标签值对。
将标签应用于用户¶
标签 是一个架构级对象,可以应用于另一个对象。将标签应用于对象时,可以将标签设置为值,从而创建标签值对。
您可以将相同的标签值对应用于每个用户,将用户分组到成本中心等逻辑单元中。跟踪共享资源消耗的第一步,是为某个单元内的每个用户应用一个标签值对。然后,您可以使用预算来跟踪这些用户的使用情况,同时忽略其他用户对同一共享资源的使用情况。
使用 ALTER USER 命令将标签应用于用户。假设您使用 cost_center 标签来识别组织内的成本中心,并且用户 joe 属于成本中心 finance。要将正确的标签值对应用于用户,请运行以下命令:
ALTER USER joe SET TAG cost_management.tags.cost_center = 'FINANCE';
小技巧
如果要自动标记用户,可以通过 SCIM 身份提供商预置用户,并利用 snowflakeTags 属性在创建或更新用户时自动应用标签。有关更多信息,请参阅 通过 SCIM 自动应用用户标签。有关特定于提供商的设置步骤,请参阅:
将用户标签添加到预算¶
标记逻辑单元中的所有用户后,必须将标签值对添加到预算中,以便预算跟踪用户的使用情况。使用 SET_USER_TAGS 方法将标签添加到预算。
在以下示例中,当共享资源消耗 Credit 时,finance_budget 预算将仅使用 cost_center = 'FINANCE' 标签值对跟踪用户的使用情况。
CALL finance_budget!SET_USER_TAGS(
[
[(SELECT SYSTEM$REFERENCE('TAG', 'COST_MANAGEMENT.TAGS.COST_CENTER', 'SESSION', 'APPLYBUDGET')),
'FINANCE']
],
'UNION');
SET_USER_TAGS 方法允许您一次将所有用户标签添加到预算中。它还允许您将预算配置为:只要用户带有 任意 一个用户标签 (UNION),其使用量即被计入;或者配置为仅当用户带有 所有 用户标签 (INTERSECTION) 时,其使用量才被计入。
在以下示例中,my_budget 预算会在共享资源被 同时 带有标签键值组合 cost_center = 'sales' 和标签键值组合 project = 'phoenix' 的用户操作时,跟踪其资源消耗。
CALL budget_db.budget_schema.my_budget!SET_USER_TAGS(
[
[(SELECT SYSTEM$REFERENCE('TAG', 'cost_mgmt_db.tags.cost_center', 'SESSION', 'APPLYBUDGET')), 'SALES'],
[(SELECT SYSTEM$REFERENCE('TAG', 'cost_mgmt_db.tags.project', 'SESSION', 'APPLYBUDGET')), 'PHOENIX']
],
'INTERSECTION');
要验证该方法的结果,请调用 GET_BUDGET_SCOPE 方法。
将 AI 功能(共享资源)添加到预算¶
在配置好使用 AI 功能的用户之后,您必须指定预算将跟踪其中的哪些功能。使用 ADD_SHARED_RESOURCE 方法来将 AI 功能添加到预算。
支持的 AI 功能域包括:
AI FUNCTION– 模型推理函数CORTEX CODE– Cortex Code 工作负载(CLI、Snowsight)CORTEX AGENT– 基于 Cortex Agent 的工作流程(仅限域级)SNOWFLAKE INTELLIGENCE– Snowflake Intelligence 工作负载(仅限域级)
小技巧
您可以使用 SYSTEM$SHOW_BUDGET_SHARED_RESOURCE_CANDIDATES 函数来返回可以作为共享资源添加到预算中的资源的列表。
示例:将全部 AI 函数添加到预算
CALL finance_budget!ADD_SHARED_RESOURCE('AI FUNCTION');
示例:将 AI_CLASSIFY 函数添加到预算
CALL finance_budget!ADD_SHARED_RESOURCE('AI FUNCTION', 'AI_CLASSIFY');
为 Snowsight 中的 AI 工作负载创建预算¶
您可以在 Snowsight 中通过引导式用户界面直接为 AI 工作负载创建和配置预算。
备注
对于 AI 工作负载等共享资源,必须使用标签来定义预算的范围。
登录 Snowsight。
在导航菜单中,选择 Admin » Cost management。
选择 Budgets 选项卡。
选择右上角的 + Budget。
在 Basic Information 页面上,填写必填字段。
在 Budget scope 页面上,添加要包含在预算中的对象。
如需为 AI 功能(共享资源)设置预算,请转到 Budgets Scope 页面并按以下步骤更新。
在 Tags on users 部分中:
搜索并选择相关标签(例如,成本中心或团队)。
这样可以跟踪标记用户的活动,这在监控共享资源时是必需的。
选择要监控的 AI 资源。
在 Select resources to monitor 部分中,启用以下一项或多项:
AI Functions
Cortex Code
Cortex Agents
Snowflake Intelligence
配置 AI 函数。
默认情况下,所有 AI 函数均已选中,并且未来新增的 AI 函数也会自动纳入。
您还可以选择有选择地选择特定函数(例如,
AI_CLASSIFY、AI_COMPLETE)。有关完整列表,请参阅 Snowflake Cortex AI Functions (including LLM functions)。
配置 Cortex Code。
默认情况下,会自动包含未来的 Cortex Code 界面。
您还可以选择特定实例(例如,
CLI、Snowsight)。
配置域级资源。
Cortex Agents 和 Snowflake Intelligence 只能在域级别选择。
请检查您的选择。
确认选择了正确的资源,确保任何选定的标签都正确反映了预期范围。
完成剩余配置,然后点击 Create
备注
AI 工作负载作为共享资源进行跟踪,并根据用户活动和所应用的标签进行归因。
选择 All (auto) 可确保域的新实例在可用时自动包含在内。
限制和注意事项¶
对于 AI 函数,预算跟踪 AI_SERVICES 服务类型。