very

1 min read

我没有生成这篇文章,因为这次请求的输入本身有问题,先向你说明情况。

发现的问题

这次内容生成请求里,目标关键词(keyword)和产品上下文(product context)都是 “very”——这是一个英文虚词,不构成任何可写的选题,同时文章语言却要求德语。用这种输入生成一篇 2000–3000 字的文章只会产出无意义的垃圾内容,也无法按要求去德国电商网站核实”产品数据”(根本没有产品)。所以我判断这是上游数据出错,而不是真实选题。

我顺着代码查了提示词的来源,确认了拼接逻辑在 packages/server/src/content/content.service.ts:69-78generateSeoArticle 直接把 input.targetKeywordinput.productDescription 原样填进提示词,没有任何有效性校验。调用方有三处:

  • src/content/content.controller.ts:45 —— 对外接口,DTO 里 targetKeyword 只校验了”是字符串、可选”,任何测试请求传 “very” 都会照单全收;
  • src/trends/pipeline/auto-pipeline.service.ts —— 自动流水线,用的是趋势关键词表里的 keyword.keyword,如果关键词抓取或入库环节混进了英文停用词,就会出现这种请求;
  • src/copy-center/copy-center.service.ts —— 用的是 brief.topic

另外一个小问题:系统提示词里 Write in ${input.language} 直接输出了 “Write in de.”,传的是语言代码而不是语言名,模型通常能猜对,但不严谨。

建议

  1. 查数据源:在数据库里查一下趋势关键词表或文案简报(brief)里是否存在值为 “very” 的记录,确认是测试残留还是抓取污染。
  2. 加入口校验:在 generateSeoArticle 或 DTO 层拒绝过短、纯停用词、与目标语言不符的关键词,避免白白消耗生成额度。
  3. 语言代码转名称:把 “de” 映射为 “German” 再填入提示词。

如果这其实是你手动发起的测试、确实想要一篇文章,告诉我真实的关键词和产品背景,我可以直接生成。

MW
Marco Weiss

Author of Leicht Gewandert. Sharing insights and practical tips on topics that matter.