PLM Content Document Generation Planning
Objective
Integrate PLM real-time data (product/BOM/change/supplier) into content generation, upgrading from 'generic hot topic articles' to 'technical documents/reports with business context'
1. PLM Data Capability Inventory
SCSAIClient Queryable ItemTypes
| ItemType | Business Meaning | Typical Fields |
|---|---|---|
| Part | Part/Product | item_number, name, description, classification, unit |
| Document | Document | name, item_number, state, owned_by_id |
| ECR | Change Request | item_number, title, state, created_by, description |
| ECO | Change Order | item_number, title, state, related_ecr |
| Manufacturer | Manufacturer | name, location, status |
| Manufacturer Part | Manufacturer Part | item_number, manufacturer_id, part_id |
| Vendor | Vendor | name, status, contact |
| BOM (Part BOM) | BOM Relationship | 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>`)
// Create/更新
await SCSAIClient.createItem('Document', { name: '...', ... })
await SCSAIClient.updateItem('Part', id, { description: '...' })
二、可生成的文档类型(按优先级)
P0 - 立即可做
1. 产品技术说明文档
- Trigger: Part + Document data → automatically generate product introduction/specification documents
- Data Source: Part (specification parameters) + Document (existing documents as reference)
- Output: Markdown → WeChat draft / CMS article
2. Change Notification / ECR Progress Report
- Trigger: ECR status change → automatically generate change description document
- Data source: ECR (Change Request) + associated Parts (affected components)
- Output: Internal notification email + CMS knowledge base article
P1 - Simple template required
3. BOM Cost Analysis Report
- Data source: Part BOM (hierarchical structure) + Manufacturer Part (procurement price)
- Output: Markdown report (including cost summary table)
4. Supplier Quality Monthly Report
- Data source: Vendor + inspection records (requires extended fields)
- Output: Monthly report document + email notification
P2 - Requires data extension
5. Product Launch Press Release
- Data source: Part (new product) + ECO (released changes)
- Output: External press release → WeChat publication
6. PLM System Usage Analysis Report
- Data source: ECR/ECO statistics + user operation logs
- Output: Management monthly report
III. Architecture Design
┌─────────────────────────────────────────────┐
│ 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: Create plm-content-generator.js
- 输入:ItemType + Item ID
- 处理:调用 SCSAIClient 拉取数据 → 组装 prompt → 调用 LLM Generate
- 输出:结构化 Markdown 内容(复用 ContentEngine 的 LLM 调用逻辑)
Step 2: 扩展 content-engine.js
generate()新增source: 'plm'分支- 新增 API:
POST /api/content/generate-from-plm(body:{itemType, itemId, docType})
Step 3: 在内容中心页面添加"从PLMGenerate"入口
generate.html新增 Tab:"PLM 数据驱动"- 下拉选择 ItemType → 搜索并选择具体 Item → 选择文档类型 → Generate
Step 4: 变更驱动自动生成
- 监听 ECR 状态变更(Digital Staff
DS-DATA-001已同步 ECR 数据) - ECR 状态 →
Released时,自动触发generateEcrReport() - 完成后发邮件通知(已有
sendContentNotification())
五、Prompt 设计要点(以产品文档为例)
你是一名技术文档工程师。请根据以下产品数据,生成一份专业的技术说明文档。
【产品数据】
- 零件编号:{{item_number}}
- 名称:{{name}}
- Category:{{classification}}
- 单位:{{unit}}
- 描述:{{description}}
【已有相关文档】
{{related_documents}}
【要求】
1. 遵循 WorkBuddy 方法论:时间感知、角度陌生化、人称诚意
2. 输出 Markdown 格式,含:摘要、技术参数、应用场景、注意事项
3. 长度 800-1200 字
4. 禁止虚构参数,只基于提供的数据展开
六、文件变更清单
| 文件 | 操作 | 说明 |
|------|------|------|
| server/services/plm-content-generator.js | New | Core logic for PLM document generation |
| server/services/content-engine.js | Modified | Added source: 'plm' branch |
| server/routes/content-api.js | Modified | Added /api/content/generate-from-plm |
| views/workbuddy/generate.html | Modified | Added PLM-driven Tab |
| server/services/email-service.js | Existing | Change notification email (no modification required) |
VII. Open Decision Points
- Document type priority: Start with product documentation + ECR reports, or do them all together?
- Trigger method: Manual only (page-triggered) or also automatic (triggered by ECR status change)?
- Output destination: Publish directly to CMS/WeChat after generation, or only save as draft?
- PLM connection stability: Are the connection pool and error retry in SCSAI-client.js sufficient?
BossAgents