import type { ProductPlanningAnalyzeRequest, ProductPlanningSkuAnalyzeRequest, TaobaoQaRow, TaobaoReviewRow, } from "./types"; import { truncateText } from "./utils"; const MAX_ROWS = 120; function formatReviewRows(rows: TaobaoReviewRow[]) { return rows .slice(0, MAX_ROWS) .map((row, index) => [ `### 评价 ${index + 1}`, `- 商品ID:${row.itemId || "未知"}`, `- 时间:${row.date || "未知"}`, `- 用户:${row.userId || "未知"}`, `- SKU:${row.sku || "未知"}`, `- 内容:${truncateText(row.content, 220) || "无"}`, row.appendComment ? `- 追评:${truncateText(row.appendComment, 180)}` : "", ] .filter(Boolean) .join("\n") ) .join("\n\n"); } function formatQaRows(rows: TaobaoQaRow[]) { return rows .slice(0, MAX_ROWS) .map((row, index) => [ `### 问答 ${index + 1}`, `- 商品ID:${row.itemId || "未知"}`, `- 问题:${truncateText(row.question, 160) || "无"}`, row.questionDetail ? `- 问题补充:${truncateText(row.questionDetail, 160)}` : "", `- 回答:${truncateText(row.answer, 220) || "无"}`, `- 回答用户:${row.answerUser || "未知"}`, `- 回答时间:${row.answerDate || "未知"}`, `- 官方回答:${row.isOfficial ? "是" : "否"}`, ] .filter(Boolean) .join("\n") ) .join("\n\n"); } function formatSkuRows(request: ProductPlanningSkuAnalyzeRequest) { return request.skus .slice(0, MAX_ROWS) .map((sku, index) => [ `### SKU ${index + 1}`, `- 名称:${truncateText(sku.name, 180) || "无"}`, typeof sku.price === "number" ? `- 价格:${sku.price}` : "", ] .filter(Boolean) .join("\n") ) .join("\n\n"); } export function buildProductPlanningAnalyzePrompt( request: ProductPlanningAnalyzeRequest ) { if (request.kind === "review") { return [ "# 淘宝评价数据分析", "", "请基于以下买家评价数据,输出一份适合商品策划与详情页优化使用的中文 Markdown 分析。", "", "输出要求:", "1. 总结核心用户痛点", "2. 提炼高频关注点和决策点", "3. 按质量、做工、外观、功能、场景分别分析", "4. 给出详情页文案与卖点强化建议", "5. 如果数据中存在矛盾反馈,要单独指出", "", "评价数据:", formatReviewRows(request.rows), ].join("\n"); } return [ "# 淘宝问大家数据分析", "", "请基于以下问大家数据,输出一份适合商品策划与详情页优化使用的中文 Markdown 分析。", "", "输出要求:", "1. 总结用户最关心的问题", "2. 提炼最影响转化的疑虑", "3. 区分官方回答与普通回答的价值差异", "4. 给出详情页必须补强的信息点", "5. 给出客服 FAQ 建议", "", "问大家数据:", formatQaRows(request.rows), ].join("\n"); } export function buildProductPlanningSkuAnalyzePrompt( request: ProductPlanningSkuAnalyzeRequest ) { return [ "# 商品 SKU 卖点分析", "", "请基于以下 SKU 命名数据,输出一份适合商品策划与详情页优化使用的中文 Markdown 分析。", "", `平台:${request.platform === "jd" ? "京东" : "淘宝/天猫"}`, `商品ID:${request.itemId}`, request.title ? `商品标题:${request.title}` : "", "", "输出要求:", "1. 提炼 SKU 命名中正在强调的核心卖点与差异点", "2. 判断 SKU 维度是否清晰,是否存在信息堆砌或命名混乱", "3. 总结当前 SKU 命名对转化的帮助与不足", "4. 给出更利于用户理解和转化的 SKU 命名优化建议", "5. 如果适合,补充可同步到主图/详情页/标题的卖点表达", "", "SKU 数据:", formatSkuRows(request), ] .filter(Boolean) .join("\n"); }