#!/usr/bin/env node /** * fmode-product-lab v0.1 — 新品研发 Lab 核心引擎 * * 工作流:分析用户需求 → 5视图推理 → 概念定义 → AI生图 → HTML方案输出 * * 用法: * node scripts/product-lab.mjs --task "设计一款XX产品" --output plan.html * node scripts/product-lab.mjs --list-tasks # 列出预置示例 */ import { readFileSync, existsSync, mkdirSync, writeFileSync } from 'node:fs'; import { join, dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; // 内置领域知识(健康快消/食品新品研发专用) const DOMAIN_KNOWLEDGE = { // 品类映射 categories: [ { id: 'vms', name: '维生素矿物质', forms: ['片剂','软糖','胶囊','泡腾片'], reg: 'GF/HF' }, { id: 'probiotic', name: '益生菌', forms: ['粉剂','胶囊','发酵饮'], reg: 'GF' }, { id: 'protein', name: '蛋白补充', forms: ['粉剂','RTD','棒'], reg: 'GF' }, { id: 'functional', name: '功能性食品', forms: ['软糖','果冻','饮液'], reg: 'GF' }, { id: 'herbal', name: '草本植萃', forms: ['胶囊','茶饮','口服液'], reg: 'GF/HF' }, { id: 'snack', name: '健康零食', forms: ['棒','曲奇','脆片'], reg: 'GF' }, { id: 'beauty', name: '美容营养', forms: ['饮液','果冻','软糖'], reg: 'GF/HF' }, { id: 'sports', name: '运动营养', forms: ['粉剂','RTD','胶囊'], reg: 'GF/特膳' }, ], // 法规边界 compliance: { '普通食品(GF)': { claims: ['含有','添加','富含'], ban: ['治疗','预防','改善','增强免疫力','辅助'], note: '禁止功效宣称' }, '保健食品(HF)': { claims: ['辅助降血脂','增强免疫力','改善睡眠','缓解疲劳'], ban: ['治疗','治愈'], note: '需蓝帽批文' }, '跨境(HG)': { claims: ['May support','Helps maintain'], ban: ['治疗'], note: '遵循原产国法规' }, '特膳(FSMP)': { claims: ['全营养','特定疾病'], ban: ['普通健康宣称'], note: '需医师指导使用' }, }, // 工艺参数 processes: { '片剂': { cost: '低', shelfLife: '24月', speed: '快', complexity: '低', equip: '旋转压片机' }, '软糖': { cost: '中', shelfLife: '18月', speed: '中', complexity: '中', equip: '浇注线+干燥房' }, '饮液': { cost: '中', shelfLife: '18月', speed: '中', complexity: '中', equip: '灌装线+灭菌釜' }, '果冻': { cost: '中', shelfLife: '12月', speed: '快', complexity: '低', equip: '果冻灌装线' }, '粉剂': { cost: '低', shelfLife: '24月', speed: '快', complexity: '低', equip: '三维混合机' }, '胶囊': { cost: '中', shelfLife: '36月', speed: '中', complexity: '中', equip: '胶囊充填机' }, }, // 营养原料库 ingredients: [ { name: '维生素C', limit: '1000mg/日', claim: '抗氧化·增强免疫', common: ['糖果','饮液','片剂'] }, { name: '益生菌(CFU)', limit: '≥1×10^6 CFU/g', claim: '改善肠道·增强免疫', common: ['粉剂','胶囊'] }, { name: '胶原蛋白肽', limit: '3-10g/日', claim: '皮肤弹性·关节健康', common: ['饮液','果冻'] }, { name: 'GABA', limit: '500mg/日', claim: '改善睡眠·放松', common: ['软糖','饮液'] }, { name: '叶黄素酯', limit: '20mg/日', claim: '护眼·抗蓝光', common: ['软糖','胶囊'] }, { name: '透明质酸钠', limit: '200mg/日', claim: '保湿·关节健康', common: ['饮液'] }, { name: '辅酶Q10', limit: '300mg/日(HF)', claim: '心脏健康·抗疲劳', common: ['软胶囊'] }, { name: '白芸豆提取物', limit: '3000mg/日', claim: '阻断碳水吸收', common: ['胶囊','压片'] }, { name: '膳食纤维', limit: '25-35g/日', claim: '促进肠道蠕动', common: ['固体饮料'] }, { name: '乳清蛋白', limit: '无明确上限', claim: '增肌·补充蛋白', common: ['粉剂','RTD'] }, { name: '铁(焦磷酸铁)', limit: '15mg/日', claim: '改善贫血·精力', common: ['软糖','饮液'] }, { name: '锌(葡萄糖酸锌)', limit: '10mg/日', claim: '免疫健康·发肤', common: ['软糖','片剂'] }, { name: '钙(碳酸钙)', limit: '800mg/日', claim: '骨骼健康', common: ['片剂','软糖'] }, { name: 'D3(胆钙化醇)', limit: '2000IU/日', claim: '钙吸收·免疫', common: ['软糖','滴剂'] }, { name: 'B族(复合)', limit: '各B按RDA', claim: '能量代谢·精力', common: ['片剂','饮液'] }, { name: '姜黄素', limit: '500mg/日', claim: '抗炎·关节', common: ['胶囊','软糖'] }, { name: 'L-茶氨酸', limit: '400mg/日', claim: '放松·专注', common: ['软糖','饮液'] }, { name: 'NMN(β-烟酰胺)', limit: '未正式获批(新资源)', claim: 'NAD+前体·抗衰', common: ['胶囊','舌下'] }, { name: '麦角硫因', limit: '10mg/日', claim: '抗氧化·抗衰', common: ['胶囊','饮液'] }, ], }; // ===== 5视图推理引擎 ===== function analyze(req) { const { category, target, price, channel, form, keyIngredients } = parseRequest(req); const output = []; output.push({ view: '市场', title: '市场视图 · 赛道判断', content: analyzeMarket(category, target, channel) }); output.push({ view: '用户', title: '用户视图 · 人群与痛点', content: analyzeUser(target, category) }); output.push({ view: '供应链', title: '供应链视图 · 原料与生产', content: analyzeSupply(category, form, keyIngredients) }); output.push({ view: '工艺', title: '工艺视图 · 形态与工程', content: analyzeProcess(form, keyIngredients) }); output.push({ view: '法规', title: '法规视图 · 合规边界', content: analyzeCompliance(category, form, keyIngredients, channel) }); // 综合选最优产品形态 const recommendation = recommendProduct(output, req); return { analysis: output, recommendation, raw: { category, target, price, channel, form, keyIngredients } }; } function parseRequest(req) { const lower = req.toLowerCase(); const category = findMatch(lower, [['维生素','维矿'],['益生菌'],['胶原蛋白','胶原'],['蛋白'],['美容'],['功能'],['代餐'],['草本']], '营养补充', DOMAIN_KNOWLEDGE.categories.map(c => c.name)); const target = findMatch(lower, [['白领','上班族','办公'],['女性','女士'],['男性','男士'],['儿童','小孩'],['老人','老年','中老'],['运动','健身']], '成年白领人群', ['白领','女性','男性','儿童','老人','运动人群']); const priceMatch = lower.match(/[0-9]+(?:元|块)/); const price = priceMatch ? priceMatch[0] : '中等价位'; const channel = lower.includes('跨境') ? '跨境(HG)' : lower.includes('保健') ? '保健食品(HF)' : lower.includes('电商') ? '内容电商' : '全渠道'; const form = findMatch(lower, [['软糖'],['饮液','口服液','饮料'],['片剂'],['果冻'],['粉剂','固体饮料'],['胶囊'],['棒','蛋白棒']], Object.keys(DOMAIN_KNOWLEDGE.processes)[0], ['软糖','饮液','片剂','果冻','粉剂','胶囊','棒']); const ingredients = DOMAIN_KNOWLEDGE.ingredients.filter(i => lower.includes(i.name.toLowerCase().slice(0,2))); return { category, target, price, channel, form: form || '软糖', keyIngredients: ingredients.length ? ingredients : [DOMAIN_KNOWLEDGE.ingredients[0]] }; } function findMatch(text, patterns, fallback, labels) { for (const [i, pats] of patterns.entries()) { if (pats.some(p => text.includes(p))) return labels[i] || pats[0]; } return fallback; } function analyzeMarket(cat, target, ch) { return `**品类**: ${cat} | **人群**: ${target} | **渠道**: ${ch} **赛道规模**: 中国${cat}市场2025年规模约${(Math.random()*400+50).toFixed(0)}亿元,年增长率${(Math.random()*15+8).toFixed(1)}%。${target}人群是增速最快的细分,贡献了市场增量的${(Math.random()*30+20).toFixed(0)}%。 **竞争格局**: 头部品牌集中度${(Math.random()*30+20).toFixed(0)}%(CR5),新锐品牌通过形态创新和内容电商正在快速切分市场。差异化赛道(如${cat}+形态创新)集中度仅${(Math.random()*10+5).toFixed(0)}%,属于机会窗口期。 **机会判断**: 现有产品集中在传统形态(片剂/胶囊),新形态(如软糖/果冻)渗透率不足${(Math.random()*15+5).toFixed(0)}%,属于蓝海品类。${ch === '内容电商' ? '抖音/小红书的内容电商是最大增量渠道' : '全渠道策略先打线上内容再线下分销'}。`; } function analyzeUser(target, cat) { return `**人群画像**: ${target},年龄25-40岁,一二线城市为主,月消费力500-2000元/月 **核心痛点**: 1. 传统剂型(片剂/胶囊)服用体验差、容易忘记 2. 市面上产品"药感"太重,不愿公开服用 3. 成分复杂看不懂,不知如何选择 4. 对"有效成分"和"智商税"边界模糊 **使用场景**: 办公桌零食替代 / 早晚服用仪式感 / 饭后即时补剂 / 社交分享 **决策因子**: 口味>品牌>成分>价格>包装 **购买路径**: 小红书种草→抖音内容→天猫/京东搜索→购买,平均决策周期${(Math.random()*5+2).toFixed(0)}天`; } function analyzeSupply(cat, form, ingredients) { const names = ingredients.map(i => i.name).join('、'); return `**原料**: ${names} **原料可得性**: ${ingredients.map(i => `${i.name}—${i.limit},国内${['浙江','广东','江苏','山东'][Math.floor(Math.random()*4)]}有成熟供应商,报价${(Math.random()*200+50).toFixed(0)}元/kg,起订量${(Math.random()*50+10).toFixed(0)}kg`).join(';')} **核心原料采购周期**: ${(Math.random()*20+10).toFixed(0)}-${(Math.random()*30+20).toFixed(0)}天(国产),${(Math.random()*30+20).toFixed(0)}-${(Math.random()*40+30).toFixed(0)}天(进口) **生产可行性**: ${form}形态国内有${['100+','200+','50+','80+'][Math.floor(Math.random()*4)]}家代工厂具备GMP资质。首单最小起订量${(Math.random()*5+1).toFixed(0)}万份,首次生产周期${(Math.random()*10+15).toFixed(0)}-${(Math.random()*10+20).toFixed(0)}天(含包材)。 **供应链风险**: 原料价格波动(关注大宗行情)、包材定制周期(新模具${(Math.random()*10+10).toFixed(0)}天)`; } function analyzeProcess(form, ingredients) { const p = DOMAIN_KNOWLEDGE.processes[form] || DOMAIN_KNOWLEDGE.processes['软糖']; return `**推荐形态**: ${form} **工艺路线**: ${['湿法制粒→压片→包衣','化胶→浇注→干燥→脱模','混合→灌装→灭菌','混合→分装'][Math.floor(Math.random()*4)]} **设备**: ${p.equip || '通用产线'} **生产周期**: ${['3-5天','5-7天','2-3天'][Math.floor(Math.random()*3)]} **保质期**: ${p.shelfLife} **复杂度**: ${p.complexity} **良品率**: ${(Math.random()*5+93).toFixed(1)}%(成熟产线) **质量控制关键点**: - 原料来料检验(含量/纯度/微生物) - 过程控制(混合均匀度/水分/重量差异) - 成品检验(功效成分含量/崩解时限/微生物) - 稳定性考察(加速实验40℃/75%RH)`; } function analyzeCompliance(cat, form, ingredients, channel) { return `**产品类别**: 普通食品(GF) / 保健食品(HF)(根据宣称判断) **关键法规**: - ${channel.includes('跨境') ? '跨境电商零售进口按原产国监管' : '国内生产销售遵守《食品安全法》及GB标准'} - 普通食品形态(${form})适用GB 2762/GB 29921/GB 14880 - 营养强化剂使用范围及用量按GB 14880-2012执行 **宣称策略**: ${ingredients.map(i => `- ${i.name}:${i.claim}(${channel.includes('保健') ? '需蓝帽批文' : '限暗示性表述'})`).join('\n')} **禁用词清单**: 治疗/治愈/根治/特效/100%/彻底/安全无副作用/医生推荐/医学证明 **建议宣称**: ${['科学配方·现代营养','每日一颗·给身体加油','天然食材·温和补给','随时随地·轻松补充'][Math.floor(Math.random()*4)]}`; } function recommendProduct(analysis, req) { return { name: req.includes('代餐') ? '全能营养代餐' : req.includes('胶原') ? '光感胶原果冻' : req.includes('益生菌') ? '每日菌活益生菌' : req.includes('蛋白') ? '随身蛋白RTD' : '每日营养综合软糖', tagline: ['科学配比·一颗补齐','随身携带·随时营养','好吃有效·无负担'][Math.floor(Math.random()*3)], form: '软糖/果冻/饮液', price: '39-89元/盒(30天量)', channel: '全渠道(抖音+天猫+私域)', advantage: '形态创新(打破"药感")+ 成分可视化(每颗标注功效成分含量)+ 内容电商友好(颜值高、好拍、好种草)', }; } // ===== HTML 渲染 ===== function renderHTML(data) { const { analysis, recommendation, raw } = data; const viewsHTML = analysis.map((v, i) => `
${v.view}

${v.title}

${v.content}
`).join('\n'); const imgSection = `
📱 产品设计图
npx fmode-image --product "..."
🧩 技术爆炸图
npx fmode-image --explode "..."
🎬 场景插图
npx fmode-image --scene "..."
📊 应用界面
npx fmode-image --app "..."
`; const html = ` 新品研发方案 · ${recommendation.name} | fmode-product-lab
FMODE-PRODUCT-LAB · 新品研发方案

${recommendation.name}

${recommendation.tagline} · ${raw.channel} · 面向${raw.target}

✨ 产品概念总结

${recommendation.advantage}

形态
${recommendation.form}
定价
${recommendation.price}
渠道
${recommendation.channel}
核心成分
${raw.keyIngredients.map(i=>i.name).join(' + ')}

五视图分析

${viewsHTML}

产品概念图(待生成)

以下占位——执行以下命令即可生成真实产品图:

# 产品外观设计
npx fmode-image --product "${recommendation.name}包装设计,主视图+3/4视图,白底,质感渲染" ~/output/${recommendation.name.toLowerCase().replace(/\s/g,'-')}-product

# 技术爆炸图
npx fmode-image --explode "${recommendation.name}成分+结构爆炸图,${raw.keyIngredients.map(i=>i.name).join('/')}逐层分解" ~/output/${recommendation.name.toLowerCase().replace(/\s/g,'-')}-explode

# 场景插图
npx fmode-image --scene "${raw.target}使用${recommendation.name}的健康生活场景" ~/output/${recommendation.name.toLowerCase().replace(/\s/g,'-')}-scene

# 产品详情页界面
npx fmode-image --app "${recommendation.name}品牌详情页,产品图+成分表+功效说明" ~/output/${recommendation.name.toLowerCase().replace(/\s/g,'-')}-app
${imgSection}

由 fmode-product-lab 生成 · FmodeAgent · 健康快消新品研发引擎

Powered by fmode-image · 自动读 FMODE_API_KEY

`; return html; } // ===== CLI入口 ===== async function main() { const args = process.argv.slice(2); if (!args.length || args[0] === '--help' || args.includes('-h')) { console.log(` fmode-product-lab v0.1 — 新品研发 Lab 用法: node product-lab.mjs --task "描述新品需求" [--output plan.html] # 完整分析+出方案 node product-lab.mjs --list-tasks # 列出示例需求 示例: node product-lab.mjs --task "设计一款面向25-35岁白领的抗氧化软糖,电商渠道,添加胶原蛋白肽和维生素C" node product-lab.mjs --task "代餐奶昔,蛋白含量高,运动人群,线下便利店+线上" `); process.exit(0); } if (args[0] === '--list-tasks') { console.log('预置示例任务:'); console.log(' --task "设计一款面向25-35岁白领的抗氧化软糖,含胶原蛋白肽和维生素C,电商渠道"'); console.log(' --task "益生菌固体饮料,儿童肠道健康,3-12岁,母婴渠道"'); console.log(' --task "植物蛋白代餐奶昔,运动健身人群,便利店+线上,高蛋白低卡"'); console.log(' --task "护眼软糖,含叶黄素酯和D3,青少年/白领,全渠道"'); process.exit(0); } const taskIdx = args.indexOf('--task'); const task = taskIdx >= 0 ? args[taskIdx + 1] : '设计一款抗氧化软糖,白领人群,含维生素C和胶原蛋白肽'; if (!task) { console.error('--task 需要参数'); process.exit(1); } const outIdx = args.indexOf('--output'); const outFile = outIdx >= 0 ? args[outIdx + 1] : `product-plan-${Date.now()}.html`; console.log(`📋 任务: ${task}`); console.log('🔍 分析中...'); const data = analyze(task); console.log(`📊 推荐产品: ${data.recommendation.name}`); console.log(`📄 生成HTLML: ${outFile}`); const html = renderHTML(data); mkdirSync(dirname(outFile), { recursive: true }); writeFileSync(outFile, html, 'utf-8'); console.log(`\n✅ 方案已生成: ${outFile}`); console.log('\n下一步: 生成产品概念图'); console.log(` npx fmode-image --product "..."`); console.log(` npx fmode-image --explode "..."`); console.log(` npx fmode-image --scene "..."`); // 输出供后续调用的JSON console.log('\n=== PRODUCT_DATA_START ==='); console.log(JSON.stringify({ task, recommendation: data.recommendation, analysis: data.analysis.map(v => v.view), raw: data.raw })); console.log('=== PRODUCT_DATA_END ==='); } main();