Eduardo377/argos-wms-digital-twin
GitHub: Eduardo377/argos-wms-digital-twin
Argos 是一个基于 AI 数字孪生技术的自承重仓库控制塔系统,通过 Gemini 智能决策引擎解决集装箱与危险品的堆位路由和分配问题。
Stars: 0 | Forks: 0
# 🏗️ Argos:自承重仓库控制塔


**🔗 在线应用:** [https://terminal-yms-ws.vercel.app/](https://terminal-yms-ws.vercel.app/)
## 📌 概览
**Argos 项目**是 Wilson Sons 堆场管理系统的升级版。与之前针对集装箱的版本不同,本次实现专注于高密度的**自承重仓库**。该系统作为一个数字孪生(Digital Twin),配备了由 AI(Gemini)辅助的决策引擎,将实时界面与自动化物流规则相结合。
## 🧠 决策引擎(业务规则 - 挑战 2)
AI 通过应用三个关键限制来处理仓库的当前状态:
1. **安全(IMO 货物):** 危险品通过 Make.com 的逻辑被隔离在指定位置。
2. **生产力(占用率 < 40%):** 吊臂移动限制:当全局占用率低于 40% 时,AI 会将分配限制在 N1-N4 层级。
3. **仓库物理特性:** 7 层(Z 轴)的扩展矩阵,包含堆叠验证(在 N1 未被占用前,不允许分配至 N2)。
明白了。您提到的关于 API 文档以供独立测试的观点非常到位。
为了让任何人(或者未来的您自己)能够直接通过向 Make 的 Webhook 发送请求来测试 AI 路由器,并使用 ReqBin、Postman 或 Insomnia 等工具,而无需使用 Next.js 界面,我们需要对 **payload 契约(JSON)** 进行文档化。
以下是可直接添加到您的 `README.md` 或发送给挑战评审人员的 Markdown 文档。它已经反映了更新后的葡萄牙语结构字段以及我们新定义的 `IMO` 标签。
### 📡 集成测试(API / Webhook)
要直接通过 HTTP 客户端(如 ReqBin、Postman 或 Insomnia)测试 AI 大脑(路由器),而不使用前端仪表板,请使用以下数据结构向您的 Make.com Webhook URL 发送 `POST` 请求。
**Endpoint(示例):**
`POST [https://hook.us2.make.com/SEU_ID_DE_WEBHOOK](https://hook.us2.make.com/SEU_ID_DE_WEBHOOK)`
**Headers:**
`Content-Type: application/json`
**Body(Raw JSON):**
```
{
"id_conteiner": "MSCU-5544",
"peso_ton": 8.5,
"data_chegada": "2026-07-08",
"data_saida_prevista": "2026-07-12",
"IMO": "Sim"
}
```
**数据字典:**
* `id_conteiner` *(string)*:集装箱唯一的字母数字标识符。
* `peso_ton` *(number)*:货物重量,单位为吨。AI 使用此数据来确定重力限制(重物放在底部)。
* `data_chegada` *(string)*:登记日期,格式为 YYYY-MM-DD。
* `data_saida_prevista` *(string)*:预计出发日期(YYYY-MM-DD)。用于避免将长期存放的货物分配在快速出库的货物之上。
* `IMO` *(string)*:危险品标志(`"Sim"` 或 `"Nao"`)。如果为 `"Sim"`,AI 会将分配严格限制在 5 号街(隔离区)。
**预期响应(200 OK):**
Make.com 将通过 Gemini 1.5 处理逻辑,并以以下格式返回目标位置及理由:
```
{
"targetSlot": "C5-N1"
}
```
## ⚙️ 技术架构
### 数据流
```
graph TD
A[GATILHO: Chegada de Carga] --> B(Frontend: Next.js/Shadcn)
B -->|Webhook| C(Make.com: Webhook Gateway)
C -->|Consulta| D(Google Sheets: Estado da Matriz)
D -->|Payload| E(Motor IA: Gemini Pro 1.5)
E -->|Decisão JSON| F{Make: Roteador Lógico}
F -->|Caminho A: Sucesso| G[Atualiza Sheets e UI]
F -->|Caminho B: Alerta| H[Notifica Operador]
```
## 📂 仓库结构
```
├── app/ # Rotas e Layouts (Next.js App Router)
│ ├── page.tsx
│ ├── layout.tsx
│ └── globals.css
├── components/ # Componentes Shadcn/UI e Lógica de Interface
│ │ ├── ui/
│ │ └── button.tsx
│ ├── terminal-dashboard.tsx
│ ├── yard-map.tsx # Renderização da matriz 3D (7 níveis)
│ └── movement-form.tsx # Input para Carga IMO e dados logísticos
├── lib/ # Utilitários e Tipagens (Yard.ts)
│ ├── utils.ts
│ └── yard.ts
├── backend/ # Blueprint da automação Make.com
│ └── blueprint-roteirizador.json
├── docs/ # Arquitetura e Diagramas
│ ├── fluxo_make_automacao.png
│ └── FLOW_ARCHITECTURE.md
└── public/ # Assets e Icons
├── apple-icon.png
├── placeholder.jpg
├── icon-dark-32x32.png
├── icon-light-32x32.png
├── placeholder-logo.png
├── placeholder-user.jpg
├── icon.svg (300 tokens)
├── placeholder-logo.svg
└── placeholder.svg
```
## 🛠️ 使用的技术
- **Frontend:** Next.js、TypeScript、Tailwind CSS、Shadcn/UI、Lucide React。
- **Backend/编排:** Make.com(低代码/无代码集成)。
- **认知 AI:** Google Gemini API(专注于物流路由的 Prompt Engineering)。
- **Database:** Google Sheets(状态矩阵)。
## 🚀 如何在本地运行
### 前置条件
- Node.js(v18+)
- NPM 或 PNPM
- 活跃的 Make.com 和 Google Cloud 账户(用于 Gemini API)
### 安装步骤
1. **克隆仓库:**
```
git clone https://github.com/Eduardo377/torre-controle-logistico-com-automacao_desafio-2
```
1. **安装依赖:**
```
npm install
```
或
```
pnpm install
```
1. **配置环境变量:**
在根目录下创建一个 `.env.local` 文件,并填入您的 Make.com Webhook 链接。
2. **启动服务器:**
```
npm run dev
```
或
```
pnpm dev
```
## 📝 自动化文档(Backend)
`backend/blueprint-roteirizador.json` 文件包含了 Make.com 的逻辑架构。
- **必要调整:** 在您的 Make.com 场景中导入此 JSON,以复制 Google Sheets 的查询逻辑和对 Gemini API 的调用。
- **自定义:** 40% 规则的逻辑和 IMO 货物的隔离包含在场景的 `Generate a Response`(Gemini)模块中。
## 🎓 致谢与背景
该项目是作为 **KODIE Academy** 与 **Wilson Sons** 合作的技术挑战的一部分而开发的。
- **版本:** 2.0.0
- **状态:** 开发中(7 层轴重构已完成)。
## 👨💻 开发者
Eduarde Andrade
Full Stack Developer
Eduarde Andrade
Full Stack Developer
标签:人工智能, 仓储管理, 数字孪生, 物流管理, 用户模式Hook绕过, 自动化攻击, 自动化编排