查看 Markdown

样板应用

公开的样板,用来演示 SDK 怎么组合成一个能用的应用。它们都是 AIDC 官方公开应用(namespace: public):登录的成员都可以打开(一律登录:至少是一家公司的 member),不存储任何数据;模型用量记在 AIDC 名下,并受每日额度保护。源码在 aidc-cloud 仓库的 developer/apps/,用 aidc app deploy / aidc app publish 发布——和客户开发者走同一条发布流程。每个样板都照 应用(Apps) 的标准带了 Skills(skills/<名字>/SKILL.md)、示例说法与介绍:打开应用页(…/about)点「复制给智能体」就能让智能体用它。

应用 用到的 SDK Developer(test) Nexus(production)
瑕疵检测 视觉 + 模型(gpt-6-luna) /developer/apps/defect-inspection /nexus/apps/defect-inspection
会议纪要 语音(实时转写)+ 模型(翻译、纪要)+ 连接(智能体) /developer/apps/meeting-minutes /nexus/apps/meeting-minutes
ERP 数据自动分析 连接(数据集)+ 数据 + 模型 /developer/apps/erp-analysis /nexus/apps/erp-analysis
世界模型 · 空间建模 建模(世界模型、查看器、锚点)+ 界面;只看不生成 /developer/apps/world-model /nexus/apps/world-model

瑕疵检测

用摄像头(或上传照片)拍一件产品,视觉模型判断制作工艺有没有瑕疵——污渍、油渍、破洞、划痕、跳线、色差、缺料——给出合格 / 不合格 / 拿不准,并在图上框出每一处问题的位置与严重程度。检查项可以切换(纺织成衣、注塑件、包装、自定义)。

const camera = await vision.openCamera({ video, facingMode: "environment" });
const photo = await camera.capture();
const result = await vision.inspect(photo, { task, criteria, model: "gpt-6-luna" });
const annotated = await vision.annotate(photo, result.findings);

物体检测(视觉 SDK · Semantic 登录绑定)

源码:developer/apps/object-detect/。上传或拍一张照片,vision.detect(缺省 GPT-6 Luna)找出画面里的物体,vision.annotate 画框,表格列出类别、把握与归一化位置。清单 auth.publicLink: "members":发公开链接出去,访客要先用 AIDC 账号(邮箱验证码)登录,只有应用所在公司的人才能用;应用里用 auth.me() 的 member / signedIn 给没登录或不是本公司的人不同的提示。

aidc app deploy developer/apps/object-detect --namespace <你的 cell> && aidc app publish object-detect
aidc share object-detect --public --days 30     # 公开链接:只给本公司成员(登录后判定)
aidc vision detect photo.jpg --labels 人,叉车,托盘   # 不写应用,直接在命令行检测

自进化演示

源码:developer/apps/evolve-demo/(智能问答台)。一个真能用的问答页(DeepSeek Flash 流式回答),页面各区域都用 data-evolve 标成槽位(顶栏、标题、侧边栏、介绍卡片、对话框、消息区、气泡、输入框、发送按钮…),清单 evolve 给它们起了名字,并把对话框宽高、侧边栏宽度、对话字号、气泡圆角、强调色做成带范围的可调参数。右下角「// 改进」:说「对话框变大」「隐藏侧边栏」「标题改成客服工作台」「发送按钮改成深蓝色,气泡圆一点」——页面马上变;「只给我保留」或「提交给所有人」。部署在客户命名空间(AIDC 自己是 cell-aidc),因为保存改进要知道是谁在改:/nexus/cell-aidc/apps/evolve-demo(AIDC 成员登录后打开),公开链接要求先登录(auth.publicLink: "signin")。

aidc app deploy developer/apps/evolve-demo && aidc app publish evolve-demo
aidc evolve list evolve-demo              # 大家在应用里提的改进
aidc evolve bake evolve-demo --dir developer/apps/evolve-demo   # 全员改进固化进代码,版本 +1

会议纪要

点「开始」后边说边出字(实时转写),每一句定稿后同时译成所选语言——日语、英语、埃及阿拉伯语、孟加拉语。结束后一键整理成纪要(议题、决议、待办),可以复制、下载,或者用你自己的 Agent Key 发给指定的智能体归档与跟进。

const session = await voice.startTranscription({ languages: ["zh", "en", "ja", "ar", "bn"], onPartial, onFinal });
const translations = await voice.translate(sentence, ["ja", "en", "ar-EG", "bn"]);
const minutes = await voice.minutes(transcript);
await model.agent(agentKey).send(minutes.markdown);

每场实时转写最长 5 分钟,到点自动续开下一场,逐字稿不中断。

ERP 数据自动分析

连接 AIDC 数据库里的合成 ERP 演示库(aidc-demo-erp,虚构企业 12 个月的经营数据),拉取固定口径的经营报告:营收与毛利趋势、客户集中度、应收账龄、库存风险、采购结构,以及规则化的经营信号;最后由模型把报告写成一段管理层摘要(数字一律以报告为准)。

const report = await connect.datasets.report("aidc-demo-erp", "overview");
el.innerHTML = data.barChartSvg(report.monthly.map((m) => ({ label: m.month.slice(5), value: m.revenue })));
const summary = await model.text({ model: "deepseek-flash", messages: [...] });

数据全部为虚构,客户与供应商名称均为示例。客户自己的 ERP 接入后,报告形状不变。

企业数据(语义层浏览器,部署到你的公司)

Nexus 上的「数据模块」:公司语义层的通用浏览器——左边是对象类型(带数据源健康),中间是对象表(搜索、按列排序、实时更新、改过的属性打点),右边是详情:每个属性的显示名 / 单位 / 同义词、被语义层改过的值与「数据源现为 …」、沿链接找相关对象、变化记录(谁、何时、做了什么),以及按权限出现的 Action 按钮(表单由 Action 定义自动生成)。完全由 semantic.describe() 驱动,不写死任何业务,换一家公司直接能用;ERP / MES 只读。

它不是公开应用(公开命名空间没有语义层),源码在 developer/apps/data-explorer/,清单不写 namespace——用你公司的开发者 Key 部署,就挂在你公司下:

aidc app deploy developer/apps/data-explorer      # → /developer/<cellId>/apps/data
aidc app publish data                             # → /nexus/<cellId>/apps/data(本公司成员可用)
const space = await semantic.describe();                                   // 类型、属性、链接、Action(含我能不能执行)
const page = await data.table(type.apiName).list({ where, sort, limit: 100 });
data.watch({ types: [type.apiName], after: page.seq }, { onChange: reload });
const { object, history } = await data.table(type.apiName).get(pk, { history: true });
await semantic.action(a.apiName).apply(params, { object: pk });

从模板开始一个语义层应用

aidc app init my-board --template semantic        # 读一个对象类型(live)+ 一个 Action 按钮;清单登记好 sdk 与 semantic

把模板里的 production.order_line / production.flag_issue 换成你公司语义层里的类型与 Action(aidc semantic describe),同时改清单的 semantic。完整走一遍见 闭环。

Semantic · Ontology 示例(语义 SDK · 示例)

一套用 AIDC Semantic 建的示例本体:Demo Company(一家虚构的企业 AI 公司),管理它的客户公司、智能体、应用、模型用量与云费用。名字和结构照 Palantir Ontology——5 个 Object Type、4 个 Link Type(applicationAgents 是多对多)、2 个 Interface(Billable 继承 Monthly)、5 个 Value Type、2 个 Shared Property、6 个 Action Type(带提交条件与 Action Log)。数据全部虚构,放在只装示例数据的 Demo Company(cell-demo)里,不进任何真实公司;对外的示例一律只用 Demo Company。

打开:Semantic · Ontology 示例(要先登录 AIDC 账号,只读;不对互联网匿名开放)。

源码:应用在 developer/apps/ontology-demo/,定义、示例数据与灌数脚本在 developer/apps/ontology-demo-data/。在你自己的公司里照做一遍(空的命名空间):

sh developer/apps/ontology-demo-data/seed.sh <你的 cellId>   # define → publish → import → apply-batch → 几次 Action
aidc app deploy developer/apps/ontology-demo && aidc app publish ontology-demo
aidc share ontology-demo --public                              # 可选:公开只读链接

座位申请(语义 SDK · 会执行的 Action · Academy 教程配套)

一个从零做起、能真的执行的 Action 的完整例子,配 Academy 的课程《动手:做一个会执行的 Action》(7 节:地基、第一个 Action、提交条件、命令行 / SDK / REST、做成应用、自动化与 writeback webhook)。客户公司想把座位数提到新的数目:先提交申请,开发者批准(申请和公司的座位数在同一个事务里一起改)或拒绝(必须写批复意见);座位数在 50 以内的申请由自动化批准。数据全部虚构,放在 Demo Company(cell-demo)里。

打开:座位申请台(要先登录 AIDC 账号,只读;不对互联网匿名开放。Demo Company 之外的账号只能看,执行要在你自己的公司里照下面做一遍)。

源码:定义与灌数脚本在 developer/apps/seat-desk-data/(starter/ 是读者自己公司的起点,ontology/ 是座位申请本身,call.mjs 是 SDK 脚本,try-writeback.json 是被拒绝的 writeback 练习),应用在 developer/apps/seat-desk/ 与 developer/apps/seat-auto-approve/;课里的代码块直接取自这些文件,src/server/modules/semantic/seat-desk-flow.test.ts 把每个例子(成功的和被拒绝的)在测试库里跑一遍。在你自己的公司里照做一遍(空的命名空间):

aidc semantic define developer/apps/seat-desk-data/starter && aidc semantic publish --notes "客户"
aidc semantic define developer/apps/seat-desk-data/ontology && aidc semantic publish --notes "座位申请"
aidc semantic apply register-customer --param customerId=acme-east --param name="ACME East" --param stage=试点 --param seats=20 --param members=14
aidc semantic apply submit-seat-request --param customer=acme-east --param seats=30 --param reason="新开两个仓库" --validate-only
aidc app deploy developer/apps/seat-desk && aidc app publish seat-desk
aidc app deploy developer/apps/seat-auto-approve && aidc app publish seat-auto-approve
aidc share seat-desk --public                                  # 可选:公开只读链接

灌 Demo Company:sh developer/apps/seat-desk-data/seed.sh cell-demo(要 cell-demo 的 developer 登录;Demo Company 里已经灌好了,这一条只在 Demo 被清空后重建时用——Action 每跑一次都会再记一次账,重跑之前先确认里面还没有这些申请)。

跨部门报价工作流(Semantic 自动化 · 公开演示)

一个制造企业的新品报价,要用到好几个部门的数据:营业部收到客户询价,设计中心出初始材料清单(BOM),采购部给原材料行情与物流包装费率,制造部给工艺能力(标准 JPH、OEE、小时费率),财务部给核价口径(管理费率、目标利润率、报价汇率、材占比 / 边利率红线)。这个演示把五个部门各自的应用(各是一个 Nexus 应用,数据在语义层)用工作流串起来:

营业 · 询价单 ─┬─▶ 设计 · 初始材料清单 ─┬─▶ 采购 · 原材料行情 ─▶ 采购 · 材料成本 ─┐
               │                        └─▶ 制造 · 工艺能力 ───▶ 制造 · 加工成本 ─┤
               ├─▶ 采购 · 物流包装费率 ─────────────────────────────────────────────┤
财务 · 核价口径 ──────────────────────────────────────────────────────────────────┴─▶ 财务 · 定价与红线
                                                                                        ─▶ 营业 · AI 报价分析 ─▶ 营业 · 报价草稿

源码:developer/apps/quote-demo/——ontology/(demo.* 语义定义)、seed/(演示数据)、apps/<slug>/aidc.app.json(五个部门应用 + 报价工作流),部门看板复用企业数据浏览器的代码、工作流复用画布的代码,由 build.mjs 组装:

aidc semantic define developer/apps/quote-demo/ontology && aidc semantic publish --notes "报价演示"
aidc data import demo.commodity_price developer/apps/quote-demo/seed/demo.commodity_price.json   # 其他类型同理;询价用 --layer edits
node developer/apps/quote-demo/build.mjs                  # → developer/apps/quote-demo/dist/<slug>/
aidc app deploy developer/apps/quote-demo/dist/quote-sales && aidc app publish quote-sales   # 先发布五个部门应用
aidc app deploy developer/apps/quote-demo/dist/quote-workflow && aidc app publish quote-workflow
aidc workflow run quote-workflow --param rfq_no=RFQ-2609-002 --preview

世界模型 · 空间建模(建模 SDK · 公开展示)

打开 /nexus/apps/world-model:用 World Labs Marble 世界模型生成的 3D 世界,在浏览器里实时渲染(高斯溅射),叠加数字孪生锚点。

源码:developer/apps/world-model/(sdk: ["modeling", "ui"]、cdn: ["cdn.jsdelivr.net"],页面头部放 import map);展示用的世界快照与锚点在 developer/apps/world-model-data/(出处与重新登记步骤见其 README)。

从模板开始一个 3D 世界应用(数字孪生)

aidc modeling generate --text "一个整洁的汽车零部件装配工位…" --dry-run   # 先看估价与额度
aidc modeling generate --text "一个整洁的汽车零部件装配工位…"             # 缺省试稿模型,约 5 分钟
aidc app init my-twin --template modeling       # 查看器 + 锚点列表 + 估价;清单已接 modeling / ui / jsDelivr
aidc modeling anchors <世界 id> --file anchors.json   # 把设备、工位的位置(米)绑到语义层对象

应用里要生成世界,在清单 limits 里写 worldCreditsPerDay(每天最多花多少 credits);不写就只能看。

从模板开始一个工作流

aidc app init my-flow --template workflow         # 计算 + AI 分析两步起步;再用 aidc workflow capabilities 找能力,加 use 步骤

本页由 developer/docs/samples.md 生成 · Markdown 原文 · llms.txt