feat:修改生成竞品报告的prompts,让其生成json格式的回复。

This commit is contained in:
cjy 2026-02-28 14:03:29 +08:00
parent d2ee1c86b8
commit cb1345a55d

View File

@ -146,41 +146,73 @@ func AICompetitorReport(ctx *gin.Context) {
// 根据是否有视频来判断作品类型
isVideo := len(req.Videos) > 0
// 根据作品类型设置差异化内容
var extraPoint, extraData string
// 构建文本生成提示词:理解内容 + 用户要求JSON格式
var textPrompt string
if isVideo {
extraPoint = "6. 配乐亮点:"
extraData = "2. 完播率表现:\n3. 点赞/分享/评论表现:"
} else {
extraData = "2. 点赞/分享/评论表现:"
}
// 构建文本生成提示词:理解内容 + 用户要求
textPrompt := fmt.Sprintf(`基于以下视频和图片的内容描述
textPrompt = fmt.Sprintf(`基于以下视频和图片的内容描述
%s
请根据以下要求生成竞品报告注意不要输出markdown格式来进行排版请直接输出纯文本只需要回复竞品报告的内容其他无关的内容不要输出输出的内容第一行不要标题直接输出竞品报告的正文即可
请根据以下要求生成竞品报告输出严格的JSON格式不要输出markdown格式不要输出其他无关内容
我的要求是
%s
请严格按照以下模板输出
请严格按照以下JSON模板输出注意不要修改key只填写value
{
"highlight_analysis": {
"summary": "[78字以内的概述]",
"points": {
"theme": "[标题亮点最多60字]",
"narrative": "[题材亮点最多60字]",
"content": "[内容亮点最多60字]",
"copywriting": "[文案亮点最多60字]",
"data": "[数据亮点最多60字]",
"music": "[配乐亮点仅视频最多60字]"
}
},
"data_performance_analysis": {
"views": "[浏览量表现最多60字]",
"completion_rate": "[完播率表现仅视频最多60字]",
"engagement": "[点赞/分享/评论表现最多60字]"
},
"overall_summary_and_optimization": "[整体总结及可优化建议最多300字]"
}
亮点表现分析
[100字以内的概述]
1. 标题亮点
2. 题材亮点
3. 内容亮点
4. 文案亮点
5. 数据亮点
重要约束
1. 严禁输出 JSON 以外的任何字符包括换行说明注释Markdown
2. 若无法满足字数限制请主动压缩内容而不是省略字段`, vlContent, req.TextPrompt)
} else {
textPrompt = fmt.Sprintf(`基于以下视频和图片的内容描述
%s
数据表现分析
1. 浏览量表现
请根据以下要求生成竞品报告输出严格的JSON格式不要输出markdown格式不要输出其他无关内容
我的要求是
%s
整体总结及可优化建议`, vlContent, req.TextPrompt, extraPoint, extraData)
请严格按照以下JSON模板输出注意不要修改key只填写value
{
"highlight_analysis": {
"summary": "[78字以内的概述]",
"points": {
"theme": "[标题亮点最多60字]",
"narrative": "[题材亮点最多60字]",
"content": "[内容亮点最多60字]",
"copywriting": "[文案亮点最多60字]",
"data": "[数据亮点最多60字]"
}
},
"data_performance_analysis": {
"views": "[浏览量表现最多60字]",
"engagement": "[点赞/分享/评论表现最多60字]"
},
"overall_summary_and_optimization": "[整体总结及可优化建议最多300字]"
}
重要约束
1. 严禁输出 JSON 以外的任何字符包括换行说明注释Markdown
2. 若无法满足字数限制请主动压缩内容而不是省略字段`, vlContent, req.TextPrompt)
}
chatReq, err := buildChatRequest(textPrompt, nil)
if err != nil {