Developer接入与参考
旧写法与迁移
这一页列出改名前的 SDK 名、命令、API 路径和写法,并给出对应的新写法。旧写法照样能用,已上线的应用不用改。新代码请用新写法。
说明
清单 sdk 里写旧名,部署时归到新名。旧命令照样能用,aidc help 里仍列着它们。
SDK 名
这一节列出旧 SDK 名和对应的新 SDK。1.20.0 把六个 SDK 并入 Semantic。1.22.0 把 improve 并入 evolve。
| 旧名 | 对应的新 SDK | 并入版本 |
|---|---|---|
connect |
semantic:数据流 semantic.stream、semantic.streams;智能体 model.agent |
1.20.0 |
data |
semantic:对象集 semantic.ontology(),见数据层的写法 |
1.20.0 |
auth |
semantic:账号与成员 semantic.admin;资源与分享 semantic.filesystem |
1.20.0 |
workflow |
semantic.automate |
1.20.0 |
log |
semantic.observability |
1.20.0 |
billing |
semantic.usage |
1.20.0 |
improve |
evolve。除 decide 改为 decideProposal 外,其余函数同名 |
1.22.0 |
旧名在浏览器 SDK(aidc.js)里照样导出,写法也照样能用。下面是一个例子:
// 旧
import { log } from "/developer/sdk/v1/aidc.js";
log.track("export", { format: "csv" });
// 新
import { semantic } from "/developer/sdk/v1/aidc.js";
semantic.observability.track("export", { format: "csv" });
代码改成导入 semantic 后,清单的 sdk 也要登记 semantic。aidc app check 会检查这一项。
命令
这一节列出旧命令和新命令。多数旧命令只换了组名,子命令不变。
| 旧命令 | 新命令 | 说明 |
|---|---|---|
aidc stream … |
aidc semantic streams … |
数据流,子命令不变 |
aidc resources … |
aidc semantic filesystem … |
访问和分享,子命令不变 |
aidc members … |
aidc semantic admin members … |
成员,子命令不变 |
aidc workflow … |
aidc semantic automate … |
自动化,子命令不变 |
aidc log … |
aidc semantic observability … |
日志,子命令不变 |
aidc billing … |
aidc semantic usage … |
用量与账单,子命令不变 |
aidc improve … |
aidc evolve … |
子命令不变 |
aidc semantic act <Action> |
aidc semantic apply <Action> |
对象主键写成 --param __object=<主键> |
aidc data query <类型> |
aidc semantic objects <类型> |
--where 的写法不变 |
aidc data get <类型> <主键> |
aidc semantic object <类型> <主键> |
链接用 aidc semantic links,历史用下一行 |
aidc data get … --history |
aidc semantic edits-history <类型> --pk <主键> |
只包含 Action 产生的改动,不覆盖全部旧历史 |
aidc data aggregate |
aidc semantic aggregate <类型> |
用 --select、--where、--group-by |
aidc data watch --types <类型> |
aidc semantic subscribe <类型> |
每次变化打一行 |
aidc data bind <流> <类型> --map … |
aidc semantic datasource set <类型> --stream <流> --map … |
数据源写在类型定义里 |
aidc data bindings |
aidc semantic datasource list |
看各类型的数据源和同步进度 |
aidc data resync |
aidc semantic datasource resync <类型> --stream <流> |
重同步一个数据源 |
aidc data unbind |
aidc semantic datasource remove <类型> --stream <流> |
从类型定义里去掉数据源 |
下面的旧命令没有新命令。它们照样能用:
| 命令 | 说明 |
|---|---|
aidc data create、update、delete、import |
直接写对象,只给开发者。改数据的新写法是 aidc semantic apply <Action> |
aidc data profile、aidc data group |
本地分析,不联网 |
aidc connect datasets、aidc connect report |
固定报告,只含聚合。见固定报告 |
aidc connect send "<消息>" |
和智能体对话。用 AIDC_AGENT_KEY |
语义的旧写法
这一节列出 1.2.x 起的语义写法。这些写法照样能用,和新写法用的是同一份数据和同一套 Action 引擎。
| 旧写法 | 新写法 | 说明 |
|---|---|---|
semantic.describe() |
不变 | 说明书,给智能体读 |
semantic.objects(类型) |
semantic.ontology().objects(类型) |
新代码用 ontology() |
semantic.action(名字).apply(参数, 选项) |
semantic.ontology().action(名字).applyAction(参数, 选项) |
写数据的参数,见读写对象 |
semantic.define(…)、defineAll(…) |
不变 | 智能体改本体要在分支上做,见定义本体 |
semantic.publish(说明) |
不变 | 发布一个语义版本 |
aidc semantic act |
aidc semantic apply |
见命令 |
aidc semantic describe |
不变 | --markdown 输出给大模型读的说明书 |
aidc semantic define、aidc semantic publish |
不变 | 同上 |
数据层的写法
这一节列出旧数据层(data)的写法和对象集的写法。对象集的写法是 OSDK 的形状。下表的 … 代表 semantic.ontology().objects(类型)。改数据请用 Action。
旧写法(data) |
新写法(semantic.ontology()) |
|---|---|
data.table(类型).list({ where, sort, limit }) |
…where(条件).fetchPage({ $pageSize, $orderBy }) |
list() 返回 objects、total、seq |
fetchPage() 返回 data、totalCount、nextPageToken |
data.table(类型).all(…) |
按响应的 nextPageToken 翻页,规则见下文 |
…get(主键) |
…fetchOne(主键) |
…get(主键, { link }) |
client.linked(类型, 主键, 链接) |
…get(主键, { history: true }) |
client.editsHistory(类型, { primaryKey: { … } }) |
…aggregate({ groupBy, metrics }) |
…aggregate({ $select, $groupBy }) |
…live({ onUpdate }) |
…where(条件).subscribe(监听, { properties }) |
data.watch({ types, after }, 监听) |
对象集订阅,见上一行 |
…create、…update、…remove |
没有新函数。改数据用 client.action(名字).applyAction(参数) |
…import(行) |
批量数据走数据流和数据源,见数据接入 |
data.sync.bind、list、resync、unbind |
照样能用,写法不变 |
data.parseCsv、toCsv、profile、groupBy 等 |
照样能用。这些是纯函数,不连平台 |
把响应的 nextPageToken 传给下一次 fetchPage 的 $nextPageToken。响应没有 nextPageToken 时停止。
新编辑历史只包含 Action 产生的改动。它不覆盖同步、导入和直接编辑产生的旧历史。
- 旧数据层的
list({ pks: [主键, …] })只在这些对象里查,最多 100 个。 - 旧数据层的直接写(
create、update、remove、import --layer edits)只对开放了直接编辑的类型有效。见对象的编辑方式。
查询的例子:
// 旧
const page = await data.table("orders.order").list({ where: { status: "open" }, sort: ["-amount"], limit: 50 });
// 新
const client = semantic.ontology();
const page = await client.objects("orders.order").where({ status: "open" }).fetchPage({ $pageSize: 50, $orderBy: { amount: "desc" } });
条件的写法不变:{ 属性: 值 } 表示相等,$or 表示任意一组成立。
固定报告
这一节说明 Semantic 之前的固定报告。这些报告照样能用,只含聚合。
connect.datasets.list() 列出能读的数据集。connect.datasets.report(数据集, 报告) 返回一份固定报告。命令行的 aidc connect datasets 和 aidc connect report 也照样能用。
新应用用对象集的聚合,不用固定报告:semantic.ontology().objects(类型).aggregate(…)。
已停用的效果
这一节列出已停用的自动化效果和它们的替代写法。新建的自动化不接受它们,返回 automate_legacy_effect(422)。已有的自动化照常运行。替换时可以原样保留,迁走之后再去掉。
| 原来的效果(已停用) | 换成 |
|---|---|
notification,channel 为 dingtalk 或 wecom |
action 效果。执行一个发消息的 Action,这个 Action 配 side effect webhook |
agentScript(在客户箱上跑的 Loop 脚本,读 Semantic) |
函数:用 aidc semantic functions publish 发布,function 效果执行它 |
agentScript 的 deliver(脚本输出发消息) |
action 效果,配 side effect webhook |
webhook 挂在钉钉或企业微信的 REST 连接上。收件人和标题作为 Action 的参数传入。发给 AIDC 账号的邮件,仍用 notification 效果,channel 为 email。
效果的全部类型见自动化。
API 路径
这一节列出旧的 API 路径和它们的新路径。旧路径照样能用。
清单 sdk 里的旧名归到新名:
| 旧名 | 归到 |
|---|---|
data、connect、workflow、auth、log、billing |
semantic |
improve |
evolve |
| 旧路径 | 新路径或说明 |
|---|---|
/api/v1/developer/improve/{namespace}/… |
/api/v1/developer/evolve/{namespace}/…。旧路径的响应带 Deprecation 头 |
/api/v1/developer/evolve/{namespace}/{slug}/… |
/api/v1/developer/evolve/{namespace}/apps/{slug}/…。旧路径照样能用 |
/api/v1/ontologies/{ontology}/… |
已标记废弃。有 v2 后继的接口,响应带 Deprecation: true 和指向 v2 的 Link。见 API 参考 |
/api/v1/ontologySubscriptions/… |
已标记废弃。订阅改用 /api/v2/ontologySubscriptions/…(WebSocket) |
/api/v1/developer/data/{namespace}/objects/{type} |
照样能用。改数据请用 Action |
/api/v1/developer/semantic/{namespace}/actions/{apiName} |
照样能用。新接入请用 Ontology 的 Action 接口 |
/api/v1/sqlQueries/executeOntology |
Postgres 方言,照样能用。响应带 Link: rel="successor-version",指向标准方言 /api/v2/sqlQueries/executeOntology?preview=true。见 SQL 与数据库 |
Loop 报告以前用一个单独的发布入口。这个入口仍接受令牌的旧名。一份报告第一次在 AIDC 里发布后,旧入口对它返回 409。改用 aidc semantic loop-report publish。
以前只带 ?embedded=true 的报告全屏链接,在浏览器里直接打开仍是整页报告。新链接写 ?embedded=true&media=html。
缺省值的变化
1.65.0 改了两个缺省值。已经存在的定义不受影响。
| 项目 | 1.65.0 之前 | 现在 | 已有的定义 |
|---|---|---|---|
数据源不写 mode |
mirror |
upsert |
已接好的数据源都存了明确的 mode,行为不变 |
| 新建 Object Type 的直接编辑 | 开放 | 只能经 Action 改 | 之前建的类型没有 editsConfiguration,照旧开放 |
新的 Object Type 名必须是 PascalCase。早先小写开头的名字照常能用,定义时给出警告。
迁移步骤
这一节说明怎么把一个应用从旧写法改到新写法。每一步都可以单独做。
- 把代码里
log、data、connect等的导入改成semantic。在清单sdk里登记semantic。 - 把读对象的代码改成对象集,见数据层的写法。
- 把改数据的代码改成 Action。
- 把脚本和运维命令换成新命令,见命令。
- 运行
aidc app check。检查通过后,内容改了,就升一级清单的version。 - 运行
aidc app deploy部署到 test 通道。测过后运行aidc app publish。
下一步
本页由 developer/docs/migration.md 生成 · Markdown 原文 · llms.txt