PLM 内容文档生成规划
目标
将 PLM 实时数据(产品/BOM/变更/供应商)融入内容生成,从"通用热点文章"升级为"带业务上下文的技术文档/报告"
一、PLM 数据能力盘点
SCSAIClient 可查询的 ItemType
| ItemType | 业务含义 | 典型字段 |
|---|---|---|
| Part | 零件/产品 | item_number, name, description, classification, unit |
| Document | 文档 | name, item_number, state, owned_by_id |
| ECR | 变更请求 | item_number, title, state, created_by, description |
| ECO | 变更指令 | item_number, title, state, related_ecr |
| Manufacturer | 制造商 | name, location, status |
| Manufacturer Part | 制造商零件 | item_number, manufacturer_id, part_id |
| Vendor | 供应商 | name, status, contact |
| BOM (Part BOM) | BOM关系 | source_id, related_id, quantity |
SCSAIClient API
// 查询
await SCSAIClient.queryItems('Part', { where: "classification='Raw Material'", maxRecords: 50 })
// AML 原生
await SCSAIClient.sendAML(`<Item type="Part" action="get"><item_number>ABC-001</item_number></Item>`)
// 创建/更新
await SCSAIClient.createItem('Document', { name: '...', ... })
await SCSAIClient.updateItem('Part', id, { description: '...' })
二、可生成的文档类型(按优先级)
P0 - 立即可做
1. 产品技术说明文档
- 触发:Part + Document 数据 → 自动生成产品介绍/规格说明
- 数据来源:
Part(规格参数)+Document(已有文档作参考) - 输出:Markdown → 微信草稿 / CMS 文章
2. 变更通知 / ECR 进展报告
- 触发:ECR 状态变更 → 自动生成变更说明文档
- 数据来源:
ECR(变更请求)+ 关联Part(受影响零件) - 输出:内部通知邮件 + CMS 知识库文章
P1 - 需简单模板
3. BOM 成本分析报告
- 数据来源:
Part BOM(层级结构)+Manufacturer Part(采购价格) - 输出:Markdown 报告(含成本汇总表)
4. 供应商质量月报
- 数据来源:
Vendor+ 质检记录(需扩展字段) - 输出:月报文档 + 邮件推送
P2 - 需扩展数据
5. 产品发布新闻稿
- 数据来源:
Part(新品)+ECO(已发布的变更) - 输出:对外新闻稿 → 微信发布
6. PLM 系统使用分析报告
- 数据来源:ECR/ECO 统计 + 用户操作日志
- 输出:管理月报
三、架构设计
┌─────────────────────────────────────────────┐
│ content-engine.js (已有) │
│ generate() / refine() / publish() │
└──────────────┬──────────────────────────────┘
│ 扩展
┌───────────────▼─────────────────────────────┐
│ plm-content-generator.js (新增) │
│ │
│ generateProductDoc(partNumber) → 产品文档 │
│ generateEcrReport(ecrId) → 变更报告 │
│ generateBomReport(partNumber) → BOM报告 │
│ generateVendorReport(vendorId) → 供应商报告│
│ generateNewsRelease(partNumber) → 新闻稿 │
└──────────────┬───────────────────────────────┘
│ 调用
┌───────────────▼─────────────────────────────┐
│ SCSAI-client.js (已有) │
│ queryItems() / sendAML() │
└─────────────────────────────────────────────┘
与现有 content-engine 的集成点
- 扩展
generate()的source参数:
source: 'hot'(现有,热点话题)source: 'plm'+sourceId: 'Part:ABC-001'(新增,PLM 驱动)
- 复用现有后处理流程:
- 去AI味(
refine()) - 质量检查(
qualityCheck()) - 排版(
typesetHTML()) - 发布(CMS + 微信草稿)
四、实现步骤(建议顺序)
Step 1: 创建 plm-content-generator.js
- 输入:ItemType + Item ID
- 处理:调用 SCSAIClient 拉取数据 → 组装 prompt → 调用 LLM 生成
- 输出:结构化 Markdown 内容(复用 ContentEngine 的 LLM 调用逻辑)
Step 2: 扩展 content-engine.js
generate()新增source: 'plm'分支- 新增 API:
POST /api/content/generate-from-plm(body:{itemType, itemId, docType})
Step 3: 在内容中心页面添加"从PLM生成"入口
generate.html新增 Tab:"PLM 数据驱动"- 下拉选择 ItemType → 搜索并选择具体 Item → 选择文档类型 → 生成
Step 4: 变更驱动自动生成
- 监听 ECR 状态变更(数字员工
DS-DATA-001已同步 ECR 数据) - ECR 状态 →
Released时,自动触发generateEcrReport() - 完成后发邮件通知(已有
sendContentNotification())
五、Prompt 设计要点(以产品文档为例)
你是一名技术文档工程师。请根据以下产品数据,生成一份专业的技术说明文档。
【产品数据】
- 零件编号:{{item_number}}
- 名称:{{name}}
- 分类:{{classification}}
- 单位:{{unit}}
- 描述:{{description}}
【已有相关文档】
{{related_documents}}
【要求】
1. 遵循 WorkBuddy 方法论:时间感知、角度陌生化、人称诚意
2. 输出 Markdown 格式,含:摘要、技术参数、应用场景、注意事项
3. 长度 800-1200 字
4. 禁止虚构参数,只基于提供的数据展开
六、文件变更清单
| 文件 | 操作 | 说明 |
|------|------|------|
| server/services/plm-content-generator.js | 新增 | PLM 文档生成核心逻辑 |
| server/services/content-engine.js | 修改 | 添加 source: 'plm' 分支 |
| server/routes/content-api.js | 修改 | 添加 /api/content/generate-from-plm |
| views/workbuddy/generate.html | 修改 | 添加 PLM 驱动 Tab |
| server/services/email-service.js | 已有 | 变更通知邮件(无需修改)|
七、待确认决策点
- 文档类型优先级:先做产品文档 + ECR报告,还是一起做?
- 触发方式:纯手工(页面触发)还是也要自动(ECR状态变更触发)?
- 输出目标:生成后直接发布到 CMS/微信,还是只保存草稿?
- PLM 连接稳定性:
SCSAI-client.js的连接池和错误重试是否足够?
BossAgents