very
我没有生成这篇文章,因为这次请求的输入本身有问题,先向你说明情况。
发现的问题
这次内容生成请求里,目标关键词(keyword)和产品上下文(product context)都是 “very”——这是一个英文虚词,不构成任何可写的选题,同时文章语言却要求德语。用这种输入生成一篇 2000–3000 字的文章只会产出无意义的垃圾内容,也无法按要求去德国电商网站核实”产品数据”(根本没有产品)。所以我判断这是上游数据出错,而不是真实选题。
我顺着代码查了提示词的来源,确认了拼接逻辑在 packages/server/src/content/content.service.ts:69-78:generateSeoArticle 直接把 input.targetKeyword 和 input.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.”,传的是语言代码而不是语言名,模型通常能猜对,但不严谨。
建议
- 查数据源:在数据库里查一下趋势关键词表或文案简报(brief)里是否存在值为 “very” 的记录,确认是测试残留还是抓取污染。
- 加入口校验:在
generateSeoArticle或 DTO 层拒绝过短、纯停用词、与目标语言不符的关键词,避免白白消耗生成额度。 - 语言代码转名称:把 “de” 映射为 “German” 再填入提示词。
如果这其实是你手动发起的测试、确实想要一篇文章,告诉我真实的关键词和产品背景,我可以直接生成。