From b2b570003eab57b3e58d9bbec7c253c250cc964c Mon Sep 17 00:00:00 2001 From: cjy Date: Sat, 28 Feb 2026 09:16:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=AB=9E=E5=93=81=E6=8A=A5=E5=91=8A=E7=9A=84=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/ai/video_vl.go | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/pkg/service/ai/video_vl.go b/pkg/service/ai/video_vl.go index 1ef21af0..b159719b 100644 --- a/pkg/service/ai/video_vl.go +++ b/pkg/service/ai/video_vl.go @@ -143,8 +143,44 @@ func AICompetitorReport(ctx *gin.Context) { if needText { textChan = make(chan textResult, 1) go func() { + // 根据是否有视频来判断作品类型 + isVideo := len(req.Videos) > 0 + + // 根据作品类型设置差异化内容 + var extraPoint, extraData string + if isVideo { + extraPoint = "6. 配乐亮点:" + extraData = "2. 完播率表现:\n3. 点赞/分享/评论表现:" + } else { + extraData = "2. 点赞/分享/评论表现:" + } + // 构建文本生成提示词:理解内容 + 用户要求 - textPrompt := fmt.Sprintf("基于以下视频和图片的内容描述:\n%s\n\n请根据以下要求生成竞品报告:注意不要输出markdown格式来进行排版,请直接输出纯文本。只需要回复竞品报告的内容,其他无关的内容不要输出,输出的内容第一行不要标题,直接输出竞品报告的正文即可\n我的要求是:\n%s", vlContent, req.TextPrompt) + textPrompt := fmt.Sprintf(`基于以下视频和图片的内容描述: +%s + +请根据以下要求生成竞品报告。注意不要输出markdown格式来进行排版,请直接输出纯文本。只需要回复竞品报告的内容,其他无关的内容不要输出,输出的内容第一行不要标题,直接输出竞品报告的正文即可 + +我的要求是: +%s + +请严格按照以下模板输出: + +一、亮点表现分析 +[100字以内的概述] + +1. 标题亮点: +2. 题材亮点: +3. 内容亮点: +4. 文案亮点: +5. 数据亮点: +%s + +二、数据表现分析 +1. 浏览量表现: +%s + +三、整体总结及可优化建议`, vlContent, req.TextPrompt, extraPoint, extraData) chatReq, err := buildChatRequest(textPrompt, nil) if err != nil {