#!/usr/bin/env node const https = require('https'); const url = require('url'); const AUTHORIZATION = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMiJ9.2XLrkX3Fryw4c1Mn3Peqsp8JOMMOu25GP7yxl0gsIG4w9JjfUzlsharGdm8PDusK1fvwMRs5rc1p6LJe0cSg4w'; const API_URL = 'https://bops.felo.ai/api/home/case/type/add'; const data = [ { name: 'Logo 设计', skill_id: 'logo-and-branding', case_prompt: '请设计一个Logo,品牌名称是:[输入您的品牌名],所属行业是:[如:科技/餐饮/服装]。', case_type: 'logo_design', }, { name: '品牌周边', skill_id: 'logo-and-branding', case_prompt: '基于我们的 Logo 设计一套品牌周边,用在[办公/生活/服饰]上', case_type: 'brand_merchandise', }, { name: '亚马逊套图', skill_id: 'ecommerce-product-image', case_prompt: '用 [$name$] 的视觉风格,生成亚马逊 7 张套图(白底主图 + 信息图 + 生活场景图 + 细节图 + 多角度图),我的产品卖点是:[输入产品卖点]', case_type: 'amazon_product_images', }, { name: '电商 Banner', skill_id: 'ecommerce-product-image', case_prompt: '生成宽幅 Banner 背景图。商品放在[左侧/右侧],卖点是:[输入产品卖点]', case_type: 'ecommerce_banner', }, { name: '名片', skill_id: 'marketing-materials', case_prompt: '设计一套名片,我的要求是:[输入所属行业/职位/风格偏好]', case_type: 'business_card', }, { name: '海报', skill_id: 'marketing-materials', case_prompt: '设计一张海报,我的要求是:[输入活动主题/核心卖点]', case_type: 'poster', }, { name: '折页', skill_id: 'marketing-materials', case_prompt: '设计成一份[三折页宣传册/高级画册],用作活动宣传,活动基础信息为:[输入活动基础信息]', case_type: 'brochure', }, ]; function post(payload, index) { return new Promise((resolve, reject) => { const body = JSON.stringify({ case_prompt: payload.case_prompt, case_type: payload.case_type, name: payload.name, skill_id: payload.skill_id, sort: 0, }); const parsed = new url.URL(API_URL); const options = { hostname: parsed.hostname, path: parsed.pathname, method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(body), 'Authorization': AUTHORIZATION, }, }; const req = https.request(options, (res) => { let data = ''; res.on('data', (chunk) => (data += chunk)); res.on('end', () => { try { resolve({ status: res.statusCode, body: JSON.parse(data) }); } catch { resolve({ status: res.statusCode, body: data }); } }); }); req.on('error', reject); req.write(body); req.end(); }); } async function main() { console.log(`开始提交 ${data.length} 条分类数据...\n`); for (let i = 0; i < data.length; i++) { const item = data[i]; process.stdout.write(`[${i + 1}/${data.length}] ${item.name} (${item.case_type}) ... `); try { const result = await post(item, i + 1); if (result.status >= 200 && result.status < 300) { console.log(`✓ ${result.status}`); } else { console.log(`✗ ${result.status}: ${JSON.stringify(result.body)}`); } } catch (err) { console.log(`✗ 请求失败: ${err.message}`); } } console.log('\n完成。'); } main();