# 样板应用

三个公开的样板，用来演示 SDK 怎么组合成一个能用的应用。它们都是 AIDC 官方公开应用（`namespace: public`）：任何人都可以打开，不存储任何数据；模型用量记在 AIDC 名下，并受每日额度保护。源码在 aidc-cloud 仓库的 `developer/apps/`，用 `aidc app deploy` / `aidc app publish` 发布——和客户开发者走同一条发布流程。

| 应用 | 用到的 SDK | Developer（test） | Nexus（production） |
| --- | --- | --- | --- |
| 瑕疵检测 | 视觉 + 模型（`gpt-6-luna`） | [/developer/apps/defect-inspection](https://www.ai-dc.ai/developer/apps/defect-inspection) | [/nexus/apps/defect-inspection](https://www.ai-dc.ai/nexus/apps/defect-inspection) |
| 会议纪要 | 语音（实时转写）+ 模型（翻译、纪要）+ 连接（智能体） | [/developer/apps/meeting-minutes](https://www.ai-dc.ai/developer/apps/meeting-minutes) | [/nexus/apps/meeting-minutes](https://www.ai-dc.ai/nexus/apps/meeting-minutes) |
| ERP 数据自动分析 | 连接（数据集）+ 数据 + 模型 | [/developer/apps/erp-analysis](https://www.ai-dc.ai/developer/apps/erp-analysis) | [/nexus/apps/erp-analysis](https://www.ai-dc.ai/nexus/apps/erp-analysis) |

## 瑕疵检测

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

```js
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);
```

## 会议纪要

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

```js
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 connect.agent(agentKey).send(minutes.markdown);
```

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

## ERP 数据自动分析

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

```js
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 接入后，报告形状不变。
