查、算、改都在这里

第 5 课 · 共 6 课 约 5 分钟

对象集把问题写成一句话,聚合回答多少,改只走动作;API、SDK、CLI 是同一套能力。

本课目标

读完这一课,你将能够

  • 用对象集把一个业务问题写成一句话
  • 用聚合回答「多少、多大」
  • 说出 API、SDK、CLI 是同一套能力

对象集:把问题写成一句话

对象集(Object Set)是一组对象:一个对象类型的全部对象,筛一筛,沿关系走一步,和另一组取并集、交集或差集。问题越复杂,拼的步数越多,但每一步都是业务语言。

const client = semantic.ontology();
const paying = client.objects("customer").where({ stage: "付费", seats: { $gt: 30 } });
const agents = await paying.pivotTo("agents").fetchPage({ $pageSize: 20 });

这三行的意思是:座位数超过 30 的付费客户公司,它们的全部智能体。筛选写在 where 里,沿关系走一步是 pivotTo,取回一页是 fetchPage。

聚合:多少、多大

聚合(Aggregate)回答「一共多少」「平均多大」:计数、求和、平均、最大、最小,还可以按某个属性分组。模型用量和云费用都实现了 Billable 接口,所以按月汇总全部成本只要一次:

const byMonth = await client.interface("Billable").aggregate({
  $select: { "costUsd:sum": "desc" },
  $groupBy: { month: "exact" },
});

派生属性也能这样用:给对象集临时加上「每家公司的应用数」,再按它排序、展示,不用另建一张表。

改:只有动作

查和算可以随意组合,改只有一个入口:动作。开发者、应用、智能体调用的是同一个动作,走同样的校验。先只校验,看每一项的结果;没问题再执行。

aidc semantic apply adjust-seats --param customer=cell-lanting --param seats=60 --validate-only
aidc semantic apply adjust-seats --param customer=cell-lanting --param seats=60
API

API

/api/v1/ontologies/…:对象类型、对象、对象集、聚合、动作,一应俱全,字段按通行的 Ontology 接口写法。

SDK

SDK

semantic.ontology():在应用里自动用访客的身份,只看得到清单登记过的对象类型。

CLI

CLI

aidc semantic …:给开发者和智能体,输出 JSON,退出码稳定。

要点

  • 对象集 = 筛选 + 沿关系走 + 并、交、差,每一步都是业务语言。
  • 聚合回答多少、多大,可以按属性分组;接口让不同对象能一起算。
  • 改只有一个入口:动作,先校验再执行。
  • API、SDK、CLI 是同一套能力的三种形态。

练一练

把三个问题写成对象集

用示例本体练习:客户公司、智能体、应用、模型用量、云费用。

写出「座位数超过 30 的付费客户」的 where 条件。

小测

选一个答案,马上看解析。

Q1「付费客户的全部智能体」用对象集怎么表达?

Q2想按月汇总模型用量和云费用的总成本,最简单的是?

Q3应用里的按钮、CLI 命令和智能体都要改同一个属性,规则写在哪里?

延伸阅读