功能规划文档
一、功能架构
┌─────────────────────────────────────────┐
│ 老板智能体工作台 │
├─────────────────────────────────────────┤
│ 普通功能(图形界面) │
│ ├── 登录注册 │
│ ├── 变更管理 (ECR/ECO) │
│ ├── 物料管理 (Part) │
│ ├── BOM管理 │
│ ├── 供应商管理 (Vendor) │
│ ├── 库存管理 (Inventory) │
│ └── 大模型配置 │
├─────────────────────────────────────────┤
│ 智能功能(自然语言) │
│ ├── 自然语言指令 │
│ ├── 对象类创建(基于大模型) │
│ ├── BOM智能处理(创建/比对/修复) │
│ └── 自动化任务 │
└─────────────────────────────────────────┘
二、普通功能
2.1 模块列表
| 模块 | 对象类型 | 功能 |
|------|----------|------|
| 变更管理 | ECR/ECO | 增删改查、状态流转 |
| 物料管理 | Part | 增删改查、物料分类 |
| BOM管理 | BOM | 增删改查、BOM结构 |
| 供应商管理 | Vendor | 增删改查、联系人 |
| 库存管理 | Inventory | 增删改查、出入库 |
| 大模型配置 | ModelConfig | 配置管理、模型切换 |
2.2 统一对象API
文件位置:/app/api/objects/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { queryItems, createItem, updateItem, deleteItem } from '@/app/lib/aml';
// GET /api/objects?type=ECR&status=pending_approval
// POST /api/objects { type: 'ECR', data: {...} }
// PUT /api/objects { type: 'ECR', id: '...', data: {...} }
// DELETE /api/objects?type=ECR&id=...
export async function GET(request: NextRequest) {
const { searchParams } = new URL(request.url);
const type = searchParams.get('type') || 'ECR';
const status = searchParams.get('status');
const result = await queryItems(type, status);
return Response.json(result);
}
export async function POST(request: NextRequest) {
const { type, data } = await request.json();
const result = await createItem(type, data);
return Response.json(result);
}
export async function PUT(request: NextRequest) {
const { type, id, data } = await request.json();
const result = await updateItem(type, id, data);
return Response.json(result);
}
export async function DELETE(request: NextRequest) {
const { searchParams } = new URL(request.url);
const type = searchParams.get('type');
const id = searchParams.get('id');
if (!type || !id) {
return Response.json({ success: false, error: 'Missing type or id' }, { status: 400 });
}
const result = await deleteItem(type, id);
return Response.json(result);
}
三、智能功能
3.1 自然语言指令
流程:
用户输入 → 意图识别 → 参数提取 → AML生成 → 执行 → 结果反馈
示例:
| 用户输入 | 识别结果 | 执行操作 |
|----------|----------|----------|
| "创建ECR,标题是'修改电机'" | 创建ECR | createItem('ECR', {...}) |
| "查看所有待审批的ECR" | 查询ECR | queryItems('ECR', 'pending_approval') |
| "将ECR-001状态改为已审批" | 更新ECR | updateItem('ECR', '...', {status: 'approved'}) |
3.2 基于大模型的对象类创建
文件位置:/app/api/ai/create-object/route.ts
// POST /api/ai/create-object
export async function POST(request: NextRequest) {
const { description } = await request.json();
// 1. 调用大模型生成AML
const prompt = `根据描述生成创建Part的AML:
描述:${description}
请生成完整的AML,包含以下字段:
- part_number(零件编号)
- name(名称)
- description(描述)
- 其他相关字段
只返回AML,不要其他内容。`;
const llmResponse = await fetch('/api/ai-proxy', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ messages: [{ role: 'user', content: prompt }] })
});
const llmResult = await llmResponse.json();
const aml = llmResult.data.content;
// 2. 执行AML
const result = await executeAml(aml);
// 3. 保存到本地数据库
if (result.success) {
saveToLocalDatabase('Part', aml);
}
return Response.json(result);
}
示例:
用户:创建一个汽车零件,编号是PART-CAR-001
↓
大模型生成AML:
<AML>
<Item type="Part" action="add">
<part_number>PART-CAR-001</part_number>
<name>汽车零件</name>
<description>一辆完整的汽车零件</description>
<vehicle_type>SUV</vehicle_type>
<brand>奔驰</brand>
</Item>
</AML>
↓
执行AML,保存到数据库
↓
返回结果给用户
3.3 BOM智能处理
// 创建BOM
async function createBomFromDescription(description: string) {
// 1. 解析描述,提取组件信息
const prompt = `从以下描述中提取BOM信息:
${description}
返回JSON格式:
{
"part_id": "产品ID",
"items": [
{ "item_id": "组件1ID", "quantity": 2, "unit": "个" },
{ "item_id": "组件2ID", "quantity": 1, "unit": "个" }
]
}`;
// 2. 调用大模型
// 3. 生成AML
// 4. 执行并保存
}
// 比对BOM
async function compareBom(bom1Id: string, bom2Id: string) {
// 1. 获取两个BOM的数据
// 2. 调用大模型比对差异
// 3. 返回比对结果
}
四、实现计划
4.1 第一阶段:基础功能(1周)
| 任务 | 文件位置 | 说明 |
|------|----------|------|
| 框架搭建 | /app/layout.tsx | 基础布局 |
| 登录注册 | /app/api/auth/* | 认证功能 |
| 大模型配置 | /app/api/models/* | 模型配置 |
| SCSAI集成 | /app/lib/SCSAI/* | sciot创建 |
| 变更管理 | /app/change-management/* | 第一个CRUD模块 |
4.2 第二阶段:CRUD模块(1周)
| 模块 | 页面 | API |
|---|---|---|
| 物料管理 | /app/materials/* | /api/objects?type=Part |
| BOM管理 | /app/bom/* | /api/objects?type=BOM |
| 供应商管理 | /app/vendors/* | /api/objects?type=Vendor |
| 库存管理 | /app/inventory/* | /api/objects?type=Inventory |
4.3 第三阶段:智能功能(1周)
| 功能 | 文件位置 |
|---|---|
| 自然语言处理 | /app/api/ai/chat/route.ts |
| 对象创建 | /app/api/ai/create-object/route.ts |
| BOM智能处理 | /app/api/ai/bom/* |
| 智能助手界面 | /app/(chat)/chat/* |
五、关键文件位置
| 功能 | 文件位置 |
|---|---|
| 数据库 | /app/lib/db/index.ts |
| SCSAI客户端 | /app/lib/SCSAI/client.ts |
| AML操作 | /app/lib/aml/index.ts |
| 大模型调用 | /app/lib/llm/index.ts |
| AI代理 | /app/api/ai-proxy/route.ts |
| 统一对象API | /app/api/objects/route.ts |
| 自然语言处理 | /app/api/ai/chat/route.ts |
| 对象创建 | /app/api/ai/create-object/route.ts |
六、大模型默认配置
| 提供商 | 模型 | API Key |
|--------|------|---------|
| 讯飞星火 | astron-code-latest | SPARK_API_KEY |
| DeepSeek | deepseek-chat | DEEPSEEK_API_KEY |
配置位置:/app/.env.local
SPARK_API_KEY=<已脱敏-请从.env读取>
DEEPSEEK_API_KEY=your-deepseek-api-key
BossAgents