From 383d0b4c32ae569f89596cdfc06d8250160effc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=82=A5=E7=BE=8A?= <1048382248@qq.com> Date: Tue, 30 Sep 2025 17:09:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E6=9E=90=E5=AD=97=E5=B9=95=E7=9A=84?= =?UTF-8?q?AI=E6=8F=90=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AICore/GPT/DeepSeek/DeepSeek_GPT.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs b/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs index 0103b72..a917021 100644 --- a/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs +++ b/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs @@ -292,14 +292,17 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek postMessages = $"请通过视频字幕内容分析出视频中课堂的授课阶段。" + $"课堂内容与{taskInfo.Subject}学科下的{sections}章节相关。" + - $"授课阶段是每个知识点。" + $"{keyFrameArr}" + $"完整的课堂标准流程包含以下5个阶段:课程引入/新知讲解/例题精讲/课堂练习/知识总结。" + $"但本堂课是习题课,所以大部分阶段是不同的例题讲解内容。" + - $"通过授课阶段的主要讲解内容分析出对应的授课阶段内容总结。" + - $"通过生成的内容总结分析出对应的授课阶段主题。 " + - $"最后请检查每个授课阶段的时长,不允许出现低于50秒的阶段。" + - $"输出内容只返回json格式({resFormat})" + + $"1.初步划分阶段:基于PPT变化时间点,将字幕内容分割成时间段。每个时间段的起始和结束应接近这些时间点(例如,以时间点为中心,扩展至内容自然过渡处)。" + + $"2.内容分析:对每个时间段,提取主要讲解内容:识别关键词(如“例题”“证明”“练习”“总结”)和内容结构。" + + $"3.判断阶段类型:如果内容以解题为主,归类为“例题精讲”;如果涉及新知识讲解,归类为“新知讲解”;以此类推。" + + $"4.生成内容总结与主题:内容总结:用1-2句话简述该阶段的核心讲解内容(例如,“通过例题演示柯西不等式在求最值中的应用”)。" + + $"5.阶段主题:基于内容总结,提炼一个具体主题(例如,“柯西不等式的基本应用”)。" + + $"6.时长检查与调整:计算每个阶段的时长(结束时间减开始时间)。如果阶段时长低于50秒,则合并相邻的类似内容阶段(例如,将两个连续的例题讲解合并为一个阶段),或扩展时间段以确保最低50秒。调整时需保持内容连贯性。" + + $"7.输出要求:最终分析结果应列出每个阶段的开始时间、结束时间、阶段类型、主题和内容总结,确保划分合理、无重叠,且时长符合要求。" + + $"输出格式要求:内容只返回json格式({resFormat})" + $"字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。" + $"字幕列表 {captions.Captions} 字幕结束!"; break; @@ -658,6 +661,10 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek var taskInfo = await videoTaskDB.AsQueryable() .Where(s => s.Id == taskId) .FirstAsync(); + if (taskInfo.VideoType != null) + { + return; + } var subject = taskInfo.Subject.ToString(); var Course_Id = taskInfo.CourseId;